您的位置:首页 > 其它

内存解析

2018-11-18 18:01 92 查看

内存区域:

程序运行过程
基本数据类型重新赋值:
开辟一个新空间来储存新的值,将原先的指针删除,将变量指向新值,程序运行结束时原先的值被回收;
引用数据类型:
例:Birth d = new Birth(1,2,2014);
栈空间先分配一个变量d,d是实例。堆空间存放new出来的Birth类型对象。变量指向对象的地址;修改一个变量所指向的对象,那么指向相同的其他变量也会改变。
栈中的数据和堆中的数据销毁并不是同步的。方法一旦结束,栈中的局部变量立即销毁,但是堆中对象不一定销毁。因为可能有其他变量也指向了这个对象,直到栈中没有变量指向堆中的对象时,它才销毁,而且还不是马上销毁,要等垃圾回收扫描时才可以被销毁。

常量池技术:
整型数据,内存中有-128 ~ 127。
String类型,内存中已经有的时候直接可以用,没有时new出来
和equals的区别:
== 是比较内存地址是否相等,equals比较的是值是否相同
Object的equals方法与“”相同。而大多数java类中都重写了equals方法,达到比较属性值的目的。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: