还是这个程序

来源:百度知道 编辑:UC知道 时间:2024/05/24 22:36:56
class 例1{
public static void main(String args []){
String s1,s2;
s1=new String("we are student");
s2=new String("we are student");
System.out.println(s1.equals(s2));
System.out.println(s1==s2);
String s3,s4;
s3="how are you";
s4="how are you";
System.out.println(s3.equals(s4));
System.out.println(s3==s4);}}
请教高手后两个打印,
1. s3和s4声明是怎么不用new?
2. 最后一个打印为什么是正确的?谢谢
不用new是什么?

String不属于基本数据类型
所以也可以用new,相当于构造一个新对象
用new的话是当成对象来用的,两个的地址是不一样的
很当然的两个是不相等的

但是如果不用new的话也就相当于char型指针,指向的是同样的东西,系统并未再去开辟空间另外输入
所以就一样了

很明显 用new就错!