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

我们老师说字符串存在了字符串池里面,不是堆内存里啊?到底哪个正确?

String str1 = "imooc";        //存到字符串池

String str2 = new String("imooc");        //存到堆内存

正在回答

2 回答

老是说的是对的 。 直接定义放在字符串池。 new string ("") 需要先放到堆内存中。其实是一个指向的过程。

String str1 = "imooc";  String str2 = "imooc";  String str3 = new String("imooc");   String str4 = new String("imooc");    str3 和 str2 不相等 ,和 str4也不想等。  但是 str1=str2  因为他们指向同一个串池中同一个“imooc”

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

那你可以问问你们老师,字符串池又存在哪里,你看看他怎么说?

这里可以告诉你,定义的字符串都会存放在堆内存中的


1 回复 有任何疑惑可以回复我~
#1

Rily 提问者

可是如果String str1 = "imooc"; String str2 = "imooc";这样的话,str1 = str2了,如果在堆内存中的话该怎么解释
2015-01-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我们老师说字符串存在了字符串池里面,不是堆内存里啊?到底哪个正确?

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