java3题是什么答案,为什么,解析看不懂耶 10
3个回答
展开全部
猜测一下题目应该是:
String str1 = "hello";
String str2 = new String("hello");
System.out.println(str1 == str2);
解析:==是比较两个字面量对象在内存中的地址。str1指向的"hello"存在于字符串常量池(也在堆区),而str2使用了关键字new,意思是直接在堆开辟一个空间,指向的"hello"存在堆区(但不在字符串常量池)。
如果加两行代码:
String str3 = "hello";
System.out.println(str1 == str3);
会输出true
String str1 = "hello";
String str2 = new String("hello");
System.out.println(str1 == str2);
解析:==是比较两个字面量对象在内存中的地址。str1指向的"hello"存在于字符串常量池(也在堆区),而str2使用了关键字new,意思是直接在堆开辟一个空间,指向的"hello"存在堆区(但不在字符串常量池)。
如果加两行代码:
String str3 = "hello";
System.out.println(str1 == str3);
会输出true
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询