java 如何进行内存分配和管理
1、我们首先启动Java的IDE,这里以常用的Eclipse软件为例,在一个创建好了的Java工程中,点击File-New-Class,即可新建一个普通类
2、在弹出来的“New Class”中,可以对欲添加的普通类的类名和实现的接口进行定义,注意要符合Java标识符的命名规则,可以就命名为“MemoryTest”,可以选择勾选上主方法“public static void main(String[] args)”
3、点击“Finish”按钮后,可以看到我们已经创建了一个空白的内存管理测试类,只包含了包名和类名,还包含了自动生成的主方法,具体的实现过程还要我们添加详细内容
4、相同内容的对象在Java里是否指向同一份内存空间呢?我们用new语句创建两个字符串对象分别为s1和s2,并赋以相同的初值“abc”,其中变量名和初始值可以自行定义
5、在平常情况下,我们可以调用Object类的Hashcode()方法来获取对象的散列码来区分在内存中的存储位置,但是对于字符串对象而言不可以,因为计算方法是根据字符进行计算的
6、所以需要调用System.identityHashCode()这个本地方法,可以返回无差别的内存空间,这里可以看到打印出来的两个地址值是不同的,表明此时Java已经为这两个旎髂坑若同名的字符串对象分配了不同的内存空间
7、当要释放内存的空间时,只需要将当前对象的值赋值为null(空),即可将它的引用从内存中删除,可以再次调用散列码方法来获得它在内存中的地址,可以发现此时地址已经为0了,表明此时已经被垃圾收集器gc给清理了
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:62
阅读量:85
阅读量:86
阅读量:90
阅读量:56