假设我有一个简单的不可变Point
类;它包含两个int
字段(x
和y
),一个构造函数和两个getter方法。现在让我说我在我的应用程序中的某处编写以下代码:
Point p1 = new Point(1, 2);
Point p2 = new Point(1, 2);
我的问题是,在运行代码之后,内存中有多少Point
个对象? Java是否只是在内存中创建了两个独立的(但相同的)Point
实例,或者它是否“足够智能”来创建对内存中单个对象的两个引用?最后,如果前者是真的,并且创建了两个单独的实例,我的点类是否有办法确保所有相同的实例实际上是对内存中同一对象的引用?