有关于java对象的讨论

在java中 有一个与C++明显的不同。
String AK = new String();
声明 Ak 是一个新对象。在存储区域上是不同的。C++中这样写 String Ak;就可以了,会主动赋予一个随机值。 java中 不允许没有初始化的变量 ,在程序中会报错。并且仅仅这样声明占用的空间是栈,无法调用对象方法(c++中函数)。声明对象后占用的空间是堆,并且可以调用String()对象的方法。
在列举一个看到的例子;
当我们用String str = 'str'时,会先到内存中找有没有'str'这个对象,如果没有就new String('str');如果有那么就用str指向该对象就可以了。
用String str = new String('str')时会直接在内存中new一个'str'对象,不管内存中有没有。如果内存中已经有'str'这个对象了,那么就存在两个。

猜你喜欢

转载自www.cnblogs.com/sk244/p/12380823.html
今日推荐