为了账号安全,请及时绑定邮箱和手机立即绑定

关于开辟内存的问题

请问String s1="imooc";

与String s2=new String("imooc");有什么区别?

正在回答

2 回答

汗 上面说的有点问题  回复不能删除

String s1 ="imooc"; 是讲s1指向堆内存中的字符串常量"imooc";

而String s2=new String("imooc") 是在堆内存中开辟一个对象,对象中有一个变量记录的字符串是"imooc",s2指向这个对象

0 回复 有任何疑惑可以回复我~

可以这么理解上面一个是将s1指向堆内存中的"imooc"变量,如果堆内存中已经有这个字符串了,s1就会直接指向这个字符串,没有则会新建一个

下面这行通过new关键字 在堆内存中新开辟一个空间,空间中有个字符串为"imooc"

每当你new 一次,堆内存中就会开辟一个新空间,


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于开辟内存的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信