Intern方法
存在的目的就是为了节省空间,让存相同字符串(equals方法相同)的多个对象去指向同一个对象,要么是常量池,要么是第一次创建(常量池中没有)的这个对象


图1:常量池中有“hello”、“world”;
S2与s3因为已经有常量池的 “hello”或者“world”了(即便不是显示赋值,只要填了,那就有),所以调用方法以后返回的对象是直接指向常量池的,但是s4是个新的对象,那时候没有helloworld这个词,只有这么一个对象,所以s4.intern,也是指向这个helloword,返回true
图2:
常量池中有“hello”“world”“helloworld”三个词,str3指向了一个拼接完的string对象,但如果调用方法intern方法,因为常量池中有“helloworld”,str3.intern就相当于指向了常量池的对象,返回false
本文探讨了Java Intern方法如何节省内存,通过实例说明了常量池在重复字符串引用中的角色,并关注了字符串拼接与Intern方法对内存的影响。
1289

被折叠的 条评论
为什么被折叠?



