java中赋值问题

Strings1="hello";Strings2=newString(s1);//Strings2="hello";这两句话是否相等呢??如果相等但他们分别代表什么意思... String s1="hello";
String s2=new String(s1);//String s2="hello";
这两句话是否相等呢??
如果相等但他们分别代表什么意思啊??
展开
 我来答
海里的泥鳅
推荐于2017-09-16 · TA获得超过480个赞
知道小有建树答主
回答量:110
采纳率:0%
帮助的人:0
展开全部
效果是一样的没有错!
但是实质就不一样了~~
String s1="hello"; 以后
用String s2=new String(s1);
表示以s1的内容分配一段新的内存空间存放"hello"
s1 s2指向的内存是不同的
但是如果你用String s2="hello";
JVM会发现存在一个s1="hello";
那么他会把s2 也指向 s1 这个时候 s1 s2 指向一个内存空间!

class T{

public static void main(String [] s){
String s1="hello";
String s2="hello";
System.out.println(s1==s2);
String s3=new String(s1);
System.out.println(s1==s3);
System.out.println(s1.equals(s3));
}

}
这个例子 打印 true false true 可以参考理解一下!
通亮又飒爽灬君子兰l
2007-05-30 · TA获得超过353个赞
知道小有建树答主
回答量:314
采纳率:0%
帮助的人:0
展开全部
效果是一样的,
在Java中字符串就是作为一个对象来处理,
构造和赋值都是生成一个相同的对象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式