JAVA里面 String a = "aaa"; 和 String a = new String("aaa");有什么区别?

 我来答
匿名用户
2011-03-26
展开全部
"aaa " 是一个字符串常量,它应该放在静态存储区,和 static, final变量放在一块而new String( "aaa ") 创建了一个和字符串 "aaa "内容一样的字符串,不过这个字符创放在堆上的。

String str=new String( "aaa "); 在这条语句中产生了两个字符串,第一个字符串是字符串常量 "aaa ",第二个字符串是new String语句产生的字符串,它的内容和 "aaa "一样。
给你一段程序,就可以看出他们的区别
String s1 = "aaa ";
String s2 = "aaa ";
String s3 = new String( "aaa ");
System.out.println(s1 == s2);//true 同样使用的是常量,地址相同
System.out.println(s1 == s3);//false 使用常量与使用对象(new出来的)是不同的
System.out.println(s1.equals(s3));//true 内容相同,都是 "aaa "
234369425
2011-03-26 · TA获得超过814个赞
知道小有建树答主
回答量:433
采纳率:0%
帮助的人:183万
展开全部
楼上两个说的不完全正确
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
此题作为java程序员笔试题几率比较高。
你要好好记住哦!O(∩_∩)O~

参考资料: 原创

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大楞佬
2011-03-26 · TA获得超过313个赞
知道小有建树答主
回答量:245
采纳率:0%
帮助的人:188万
展开全部
String a=“aaa”创建了一个String对象。对象的值是aaa
String a=new String(“aaa”)创建了2个String对象。相当于
String a1=new String();
String a=new String();
a1=“aaa”
a=a1;
需然结果值一样但是,创建过程不一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pepper916
2011-03-26
知道答主
回答量:18
采纳率:0%
帮助的人:0
展开全部
String a = "aaa";是字符串常量的表示,字符串常量是用“ ”括起来的字符序列,如“How are you"。字符串常量可用来直接初始化一个String对象。
String a = new String("aaa");是用String类表示字符串,String类所提供的构造方法生成一个字符串,并分配内存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-02-25
展开全部
那么String a = "aaa";创建a这个对象时,使用的是哪个构造器?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式