当前位置: 技术问答>java相关
String a="123"与String a=new String("123")出来的两个a,b之间有什么区别???
来源: 互联网 发布时间:2015-04-17
本文导语: 请问 String a="123" 与 String a=new String("123") 有什么区别??????? 也就是说下列程序为什么结果是 true; true; false; true; String a="123"; String b="123"; System.out.println(a==b); System.out.p...
请问
String a="123"
与
String a=new String("123")
有什么区别???????
也就是说下列程序为什么结果是
true;
true;
false;
true;
String a="123";
String b="123";
System.out.println(a==b);
System.out.println(a.equals(b));
String a1=new String("123");
String b1=new String("123");
System.out.println(a1==b1);
System.out.println(a1.equals(b1));
String a="123"
与
String a=new String("123")
有什么区别???????
也就是说下列程序为什么结果是
true;
true;
false;
true;
String a="123";
String b="123";
System.out.println(a==b);
System.out.println(a.equals(b));
String a1=new String("123");
String b1=new String("123");
System.out.println(a1==b1);
System.out.println(a1.equals(b1));
|
String a="123"; String b="123;
a 和 b 都指向常量“123“的地址
String a=new String("123"); b=new String("123");
a 和 b 开辟了各自的内存空间~~
a 和 b 都指向常量“123“的地址
String a=new String("123"); b=new String("123");
a 和 b 开辟了各自的内存空间~~
|
"System.out.println(a1==b1);" is false is because a1 and b1 are not the some objects though they have same value
|
和c一样,new 操作也是分配一块内存。虽然java说他没有指针,但是java中的
许多数据类型都使用名字作为指针的,比如 String,Vector,Hashtable等
a==b是指内存位置相等
a.equles(b)是指变量内容相等
我曾经写过一段代码:
String a;
Vector v=new Vector();
for(i=0;i
许多数据类型都使用名字作为指针的,比如 String,Vector,Hashtable等
a==b是指内存位置相等
a.equles(b)是指变量内容相等
我曾经写过一段代码:
String a;
Vector v=new Vector();
for(i=0;i