30.1 String常量池 及 String类型在内存中的存在2020-01-20

这里说一下步骤 

    1.str1 str2是直接创建的字符串,以这种形式创建的字符串都在字符串常量池中,那么str1 str2栈内保存的地址就是堆内的字符串常量池里的字符串对象,这时都是指向同一个常量池内的对象,而常量池内的对象也是保存了一个地址,保存的地址是在堆内的byte[] 数组. 所以str1== str2 比较地址是成立的

    2.str3是new出来的并不在常量池内则在堆内正常创建一个字符串对象,str3指向这个字符串对象地址为0x999, 而之前创建的char[]类型数组则指向内存中对应的char[]数组对象,String类型会将这个char[]数组转化为一个byte[]数组再在内存中划出一块区域然后字符串对象指向的是这个转化出的byte[]数组

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容