永发信息网

java中 String s = "123abc";与String s7= new String("123abc");的区别

答案:4  悬赏:10  手机版
解决时间 2021-03-05 12:18
  • 提问者网友:刺鸟
  • 2021-03-04 12:19
java中 String s = "123abc";与String s7= new String("123abc");的区别
最佳答案
  • 五星知识达人网友:夜余生
  • 2021-03-04 13:55
String s = "123abc";
存在于方法区的常量池中,值不可改变
String s7= new String("123abc")
存在于堆内存中,s7有自己的内存地址,其中存在引用指向常量池中s的内存地址
全部回答
  • 1楼网友:七十二街
  • 2021-03-04 16:22
建议你去了解 堆和栈的知识 了解后你就会永远都记住了
  • 2楼网友:动情书生
  • 2021-03-04 15:19
java运行环境有一个字符串池,由string类维护。执行语句string s="abc"时,首先查看字符串池中是否存在字符串"abc",如果存在则直接将"abc"赋给s,如果不存在则先在字符串池中新建一个字符串 "abc",然后再将其赋给s。 执行语句string s=new string("abc")时,不管字符串池中是否存在字 符串"abc",直接新建一个字符串"abc"(注意:新建的字符串"abc"不是在字符串池中),然后将其付给s。 前一语句的效率高,后一语句的效率低,因为新建字符串占用内存空间。
  • 3楼网友:污到你湿
  • 2021-03-04 15:05
不用管,其实用起来一样。只是理论上第二个慢一点。不过你感觉不到的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯