当前位置: 技术问答>java相关
关于String 的"=="
来源: 互联网 发布时间:2015-04-05
本文导语: String a1="1"; String a2="1"; System.out.println(a1==a2); 为什么会打印出true呀?难道String重载了"=="? 谢了先 :) | String a1="1"; String a2="1"; 程序编译的时候,在程序数据区开了一块内存存放“1”,然...
String a1="1";
String a2="1";
System.out.println(a1==a2);
为什么会打印出true呀?难道String重载了"=="?
谢了先 :)
String a2="1";
System.out.println(a1==a2);
为什么会打印出true呀?难道String重载了"=="?
谢了先 :)
|
String a1="1";
String a2="1";
程序编译的时候,在程序数据区开了一块内存存放“1”,然后a1指向它,a2也指向它。你用
“==”比较a1, a2,当然是true了。
如果String a1 = new String("1");
String a2 = new String("1");
程序编译的时候,在程序数据区开了一块内存存放“1”,然后新建一个String对象,用那块
内存去初始化,让a1指向该String对象;再新建一个String对象,用那块内存去初始化,让a2
指向第二个String对象;用“==”比较,则为false;
String a2="1";
程序编译的时候,在程序数据区开了一块内存存放“1”,然后a1指向它,a2也指向它。你用
“==”比较a1, a2,当然是true了。
如果String a1 = new String("1");
String a2 = new String("1");
程序编译的时候,在程序数据区开了一块内存存放“1”,然后新建一个String对象,用那块
内存去初始化,让a1指向该String对象;再新建一个String对象,用那块内存去初始化,让a2
指向第二个String对象;用“==”比较,则为false;
|
是不是这样的,
String a1,a2时,只是定义了a1,a2是String的数据类型,和int,double
一样的,它们是变量,这样当然“==”时是TRUE。
如果String a1=new String("1");
String a2=new String("1");时,给他们分配了地址,
这时“==”是计算他们的地址是否一致,而equals则是
计算他们的值是否相等……
String a1,a2时,只是定义了a1,a2是String的数据类型,和int,double
一样的,它们是变量,这样当然“==”时是TRUE。
如果String a1=new String("1");
String a2=new String("1");时,给他们分配了地址,
这时“==”是计算他们的地址是否一致,而equals则是
计算他们的值是否相等……
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。