A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

String 定义字符串

new 关键字定义的字符串有什么区别?

从内存分配的角度来理解!

还有 有时候 一个对象 被打印出来的一串字符 (地址码) 有什么深层的作用?
而且同一个对象多次重新运行时 为什么那个地址码会变化?


评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
String定义一个字符串是定义一个引用,此引用放在栈内存中,而New出来的对象则定义在堆内存中,存储的位置不一样
一个对象打印出字符串,而这个字符串就是此对象在堆内存中的地址
因为对象的地址是随机分配的,一次运行完之后垃圾回收机制会回收内存
等你重新运行,又会重新随机分配内存
回复 使用道具 举报
String 定义字符串 与new 关键字定义的字符串没有区别吧,String不是可以自动装箱的嘛,所以用不用new都没区别。
有时候 一个对象 被打印出来的一串字符 (地址码) ,那是内存地址。
而且同一个对象多次重新运行时那个地址码会变化是因为每次运行系统都会重新分配给对象一个新的内存地址。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马