对字符串的一点疑问,谢谢 String aa="abc"; if(aa=="abc"){ System.out.print("dddddddddd"); }这个会打印出来 String aa=new String("abc"); if(aa=="abc"){ System.out.print("dddddddddd"); }而这个不会打印,请问这是为什么啊,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用aa.equals("abc")不要用aa=="abc"又是equals和==的区别的问题 第一个都是 串池 中的 是同一个对象 第2个中有一个是new的对象,另一个为串池中的string 的 == 是比较对象的 String aa="abc";aa=="abc"都是字符串 他们在内存中都是一个,地址相同String aa=new String("abc");会创建一个新的对象 和 “abc”地址不同 对的。Java为了提高效率,对程序中直接写出来的字面量字符串,只要值一样的,都共享池中同一个对象,导致程序中"abc"都是同一个对象。而new String("abc")就不是了,是按照用户的意图新实例化的另一个对象。 用aa.equals("abc")不要用aa=="abc"又是equals和==的区别的问题 首先 ==是用内存地址比较,equals是对象内容比较(就是逻辑相等) String aa="abc"; if(aa=="abc"){ System.out.print("dddddddddd"); }中的"abc"是字符串产量共享,所以地址一样。aa=="abc"为真String aa=new String("abc"); if(aa=="abc"){ System.out.print("dddddddddd"); }aa新开辟了空间地址与"abc"不一样,所以aa=="abc"为假 new就新分配内存,显然不等。。用equals 不想加班 有没有添加新闻的控件? 关于“实在太难看了,能不能让这段代码好看一点?需要实现相同的功能:每一条语句都要执行”的一种解决方案 请教:环境变量问题 线程问题!! 我想在swing写的框架里面,内置一个浏览器,不知道如何实现,高分求问 谁有SOCKET 通讯的 程序 仍个过来。。。 请问那里有《数据结构与算法分析(Java版)》下载? 请问:为什么我写的applet 程序用appletviewer 可以运行,但用IE就是不行,java控制台有提示... java GUI 求一些数的有机组合的算法 java怎样调用IDEA算法?
不要用aa=="abc"又是equals和==的区别的问题
是同一个对象
第2个中有一个是new的对象,另一个为串池中的string 的 == 是比较对象的
aa=="abc"都是字符串 他们在内存中都是一个,地址相同String aa=new String("abc");
会创建一个新的对象 和 “abc”
地址不同
Java为了提高效率,对程序中直接写出来的字面量字符串,只要值一样的,都共享池中同一个对象,导致程序中"abc"都是同一个对象。而new String("abc")就不是了,是按照用户的意图新实例化的另一个对象。
不要用aa=="abc"又是equals和==的区别的问题
String aa="abc";
if(aa=="abc"){
System.out.print("dddddddddd");
}
中的"abc"是字符串产量共享,所以地址一样。aa=="abc"为真String aa=new String("abc");
if(aa=="abc"){
System.out.print("dddddddddd");
}
aa新开辟了空间地址与"abc"不一样,所以aa=="abc"为假