string new和直接赋值的区别

 我来答
好程序员
2016-07-28 · HTML5前端培训/大数据培训/Java
好程序员
好程序员是IT高端课程培训基地,从平凡到卓越,为梦想而拼搏。
向TA提问
展开全部
关于字符串String赋值,String a="123", 这种方式比String a = new String("123");效率高多了。后者其实会创建两个对象。 "123"是一个常量池里的对象,new出来的对象是存放在内存堆中的,new出来的又是一个对象。

String a = "aaa";
用这种方式的时候java首先在内存中寻找"aaa"字符串,如果有,就把aaa的地址给它
如果没有则创建
String a = new String("aaa");
是不管内存中有没有"aaa"
都开辟一块新内存保存它
可以用以下方法验证下
String a = "aaa";
String b = "aaa";
String c = new String("aaa");
System.out.println(a==b);
System.out.println(a==c);
结果应该是:
true
false
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式