A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gczsjj 中级黑马   /  2017-1-16 23:29  /  902 人查看  /  6 人回复  /   4 人收藏 转载请遵从CC协议 禁止商业使用本文

1.        判断定义为String类型的s1和s2是否相等:
String s1 = “abc”;               
String s2 = “abc”;
System.out.println(s1 == s2);                                        //true
System.out.println(s1.equals(s2));                                //true
//常量池中没有这个字符串常量,没有就创一个,有就用已有的.
2.        下面这句话中在内存中创建了几个对象?
String s1 = new String(“abc”);
//两个,”abc”在常量池,new 的在堆内存中
3.        判断定义为 String 类型的s1和s2是否相等:
String s1 = new String(“abc”);                                        //s1在堆内存中
String s2 = “abc”;                                                        //s2在方法区的常量池中
System.out.println(s1 == s2);                                        //false
4.        判断定义为String 类型的s1和s2是否相等.
String s1 = “a” + “b” + “c”;
String s2 = “abc”;
System.out.println(s1 == s2);                                        //true,java中有常量优化机制
   System.out.println(s1.equals(s2));                                //true
5.        判断定义为String类型的s1和s2是否相等:
String  s1 = “ab”;
String  s2 = “abc”;
String  s3 = s1 + “c”;
System.out.println(s3 == s2);                                        //false
System.out.println(s3.equals(s2));                                //true
//s1 +  “c”        是先在堆内存中创建一个StringBuffer sb对象,然后将s1的内容的”ab”与”c”通过append()方法sb对象中,当sb调用toString()方法时,再创建一个String  s对象,存放其内容”abc”,并将对象s的地址值赋给s3.
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端

6 个回复

倒序浏览
回复 使用道具 举报
可以,很细节
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
谢谢了,以前没理解的这么深。
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马