当你试图给一个类的每个对象一个唯一的标识符时,有没有什么聪明的解决方案来避免整数溢出的风险?例如,在java中:如果我有这样的属性
private static int nextID = 0;
我的构造器看起来像
public MyClass() { this.id = nextID++; }
很可能,如果我创建了太多的对象,我会得到一个整数溢出,id将不再是唯一的值。我怎样才能避免这种行为?
hfsqlsce1#
你不能。即使使用long,如果创建的对象超过2^64个,最终也会耗尽唯一的id。如果您想使用在很长一段时间内不会耗尽的id,请使用uuids。
1条答案
按热度按时间hfsqlsce1#
你不能。即使使用long,如果创建的对象超过2^64个,最终也会耗尽唯一的id。
如果您想使用在很长一段时间内不会耗尽的id,请使用uuids。