【发布时间】:2012-07-11 07:49:05
【问题描述】:
所以我在读这本书时说,如果我创建一个 Point 类,然后通过 Point p1 = new Point(); 实例化它,那么我将拥有:
- 堆上的一个 Point 对象(作为“new”关键字的结果);
- 对此对象的引用 (p1);
- 当一个对象没有引用时,它可以被垃圾收集器处理掉。
我想我明白了意思,但它让我思考。原始类型和字符串在“内存方面”会发生什么,即:
- int x1 = 100;
- String s1 = "hello";
和
- int x2 = new Integer(100);
- String s2 = new String("hello");
在第一种情况下,'100' 和 'hello' 会被实例化并存储在堆上吗?否则,x1 和 s1 引用的是什么?
谢谢!
【问题讨论】:
-
字符串不是原语,
Integer也不是。但是int是。 -
我知道,这就是我区分“原始类型和字符串”的原因,我的问题特别针对 x1 和 s1。
标签: java heap-memory instantiation