当前位置: 首页 > 面试题库 >

在Java中分配对象ID的优雅方法

席乐童
2023-03-14
问题内容

我有一类关于物体的东西……拉特说苹果。

每个苹果对象都必须具有唯一的标识符(id)…如何(高效且有效率地)确保新创建的对象具有唯一的ID。

谢谢


问题答案:

static int nextId在Apple类中有一个,并在构造函数中增加它。

确保您的递增代码是原子的可能是谨慎的做法,因此您可以执行以下操作(使用AtomicInteger)。这将确保如果两个对象完全同时创建,则它们不会共享相同的ID。

public class Apple {
    static AtomicInteger nextId = new AtomicInteger();
    private int id;

    public Apple() {
        id = nextId.incrementAndGet();
   }
}


 类似资料:
  • 除了字符串解析之外,将字符串格式的日期“YYYY-MM”转换为Java中的日期对象的最佳方法是什么。 我试过的在下面。 然后提取month和year来创建Date对象。

  • 问题内容: 经过大量搜索,我发现有几种方法可以向现有实例对象添加绑定方法或未绑定类方法 此类方法包括以下代码采用的方法。 让我烦恼的是,输入该函数的名称,或两次。 有什么简单的方法可以将现有功能添加到类或实例中,而无需再次键入该功能的名称? 例如, 将现有功能添加到实例或类将是一种非常优雅的方法,因为该功能已经具有属性。 问题答案: 通常,当您使用点分访问查找对象字典时,存储在对象字典中的函数不会

  • 问题内容: 我是Java的新手,因此我对对象分配有一些疑问。例如, 假设变量的测试类中定义的,我说得对假设T1和T2点到修改同一个对象会影响和?其实我测试了一下,似乎我是对的。但是,当我尝试相同的操作时,修改仅发生在不影响另一侧的一侧。这是什么原因呢? 编辑:我尝试使用String的情况。 我通过测试String的大小写来意识到我的错误,因为它是不可变的。我认为修改字符串的情况实际上是将对“ 1”

  • 问题内容: 调试时,在Eclipse中对象值附近显示一个对象ID。 例如:28332是会话对象的ID。另一个示例:显示在“调试”面板中。这些ID既不是哈希码,也不是。 有人知道吗-如何获取对象的ID? 问题答案: 我假设它们在内部具有,为每个对象分配一个唯一的(但无意义的)整数。这应该在Eclipse调试器的内部(而不是对象具有的特殊ID)。您在问如何达到目标吗? 编辑 :我会这样设置断点(请注意

  • 到目前为止,在阅读一些Java教程时,我一直在使用以下语法分配数组: 但自从我开始使用类以来,事情一直让我困惑: 我在main函数中使用这个类,如下所示: 这一行应该给我一个由构造函数默认初始化的三个对象组成的数组。 当我执行以下操作时,运行时会出现异常。 在C语言中,这非常简单,不需要额外的新代码: 所以,在进一步搜索后,我发现我仍然需要为数组中的每个元素分配内存才能真正开始使用它们。如果是这样

  • 本文向大家介绍Java中对象的销毁方法分析,包括了Java中对象的销毁方法分析的使用技巧和注意事项,需要的朋友参考一下 本文较为详细的分析了Java中对象的销毁方法。分享给大家供大家参考。具体分析如下: Java中的基本数据类型变量和对象的名称引用变量如定义在方法中,都为局部变量。但对象本身不一定是局部生命周期。如函数外存在其他对该对象的引用变量,则该对象的生命周期延伸至该其他引用变量所在的块。