Core Java 中内存管理机制

来源:百度知道 编辑:UC知道 时间:2024/09/28 12:26:38
在Java 中 对于内存管理及分配机制如何??
“=”、new 运算符 对内存操作分配如何?? 越详细越好,把底层的机制尽量说明白, 谢谢!!(数据结构和java底层内存操作方面的吧…………)

内存应该是 自动 管理分配的

例如
String s1=new String("abc");
String s2=new String("abc");
String s3=s2;

s1=s2 false 内存地址不同(虽然里面的值是相同的)
s2=s3 true 内存地址相同(引用s2的)

new 是在内存中新开辟一个空间
= 是比较内存地址是否相同(数字的话是 比较是否值相同) 引用其他的内存地址

别的我也不清楚了
望达人指点....

JAVA中的对象运行在堆里,堆的意义用另一个存储方式“栈”来说明更好。从表面可以这样理解,如果对象存在栈里,那么以下对象:
{
A a; // java 里不是这样建对象的我们这里候设是新建了对象a(其实
// a只是一个引用。它指向在堆中存放的对象)
...// a的一些操作
}
在执行到后面的反花括号时,因为出了a的生存空间,且a是在栈中的,那么a在这就一定被施放了。而JAVA对象是在堆中的,也就是说在运行到}时,a不一定被删除,比如在花括号之前a的引用被传给了其它方法。垃圾回收器发现a这个对象还被别人引用,它不应该被释放。

new就是在堆中创建对象。
=是把对象赋值给引用