标签:cas 规范化 浅谈 str image 计算 常量 bsp equals
3、浅谈一下String, StringBuffer,StringBuilder的区别?(面试题)
6、下面的代码将创建几个字符串对象?
String s1 = new String("Hello");
String s2 = new String("Hello");
String s=hello;
String s1=new String(s);
String s2=new String(s);
3个字符串对象
7、在java中,String s=new String("xyz");创建了几个对象?(B)
A 1个 B 1个或2个 C 2个 D 以上都不对
你不知道前面有没有生成一个xzy
如果生成就是1个对象
没有生成就是2个对象
8、下面的代码输出什么?
String s1 = new String("abc");
String s2 = new String("abc");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
False 指向地址,new相当于开辟了一个新的空间
True 看结果
9、下面的代码输入什么?
String s1 = "abc";
String s2 = new String("abc");
s2.intern();
System.out.println(s1 ==s2);
intern() 方法返回字符串对象的规范化表示形式。
False
如果s2=s2.intern()返回则是True
10、下面的代码输出什么?
String s1= "abc";
String s2= "abc";
String s3 = new String("abc");
String s4 = new String("abc");
System.out.println("s3 == s4 : "+(s3==s4));
System.out.println("s3.equals(s4) : "+(s3.equals(s4)));
System.out.println("s1 == s3 : "+(s1==s3));
System.out.println("s1.equals(s3) : "+(s1.equals(s3)));
System.out.println(s1==s2);
False
True
False
True
True
11、下面的代码输出什么?
String str1 = "ab" + "cd"; //常量池中计算出
String str11 = "abcd"; //常量池中计算出
System.out.println("str1 = str11 : "+ (str1 == str11));
.java --- 编译 --- .class ----运行----
Str1在编译时就将”ab”+”cd”计算出 =”abcd” 在常量池里面得算出
True
12、下面的代码输出什么?
String str2 = "ab";
String str3 = "cd";
String str4 = str2+str3; //内存中计算出
String str5 = "abcd"; //常量池中计算出
System.out.println("str4 = str5 : " + (str4==str5));
False
Str4是在运行时才开始计算 =”abcd”,在编译时不知道
13、下面的代码输出什么?
final String str2 = "ab";
final String str3 = "cd";
String str4 = str2+str3; //常量池中计算出
String str5 = "abcd"; //常量池中计算出
System.out.println("str4 = str5 : " + (str4==str5));
Final 为常量 不会改变
在编译时计算出 Str4=”abcd” //常量池中计算出
True
14、下面的代码输入什么?
String str6 = "b";
String str7 = "a" + str6; //内存中计算出
String str67 = "ab"; //常量池中计算出
System.out.println("str7 = str67 : "+ (str7 == str67));
False
15、下面的代码输入什么?
final String str8 = "b";
String str9 = "a" + str8; //常量池中计算出
String str89 = "ab"; //常量池中计算出
System.out.println("str9 = str89 : "+ (str9 == str89));
True
16、String s1=”Hello”;
String s2=”hello”;
String s3=s1.toLowerCase();
String s4=s2.toLowerCase();
下面选项结果为true的是:
A.S1==s3
B.S2==s3
C.S2==s4
D.S3==s4
18、StringBuffer、StringBuilder的区别是什么?
StringBuffer多线程安全的,效率低。StringBuilder多线程不安全,效率高。
标签:cas 规范化 浅谈 str image 计算 常量 bsp equals
原文地址:https://www.cnblogs.com/beimo/p/11942913.html