Java-String类常见面试题
2016-12-30 15:39
603 查看
1.判断定义为String类型的s1和s2是否相等
运行结果为
==比较基本数据类型的时候比较的是值,比较引用类型的时候比较的是地址值。这里是比较的引用类型。
创建“abc”的时候先到常量池看看有没有,没有的话就创建一个,有的话就直接用。所以s1和s2的存的地址值相同,指向的是同一个。
equals是Object中的方法,只能用于引用类型,也是比较的地址值。但String类重写了equals方法,来比较字符串是否相等。
2.这句话在内存创建了几个对象
答案是两个
执行“abc”的之后在常量池创建一个,new的时候在堆里创建一个,并把常量池中的“abc”复制了一份过去。然后将其引用赋给了s1。
3.判断定义为String类型的s1和s2是否相等
运行结果为
4.判断定义为String类型的s1和s2是否相等
运行结果为
先通过StingBuffer将“ab”和“c”合并成“abc”,然后通过toString将其转换成字符串。
Java 语言提供对字符串串联符号(”+”)以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,该方法由 Object 类定义,并可被 Java 中的所有类继承。
String s1="abc"; String s2="abc"; System.out.println(s1==s2); System.out.println(s1.equals(s2));
运行结果为
true true
==比较基本数据类型的时候比较的是值,比较引用类型的时候比较的是地址值。这里是比较的引用类型。
创建“abc”的时候先到常量池看看有没有,没有的话就创建一个,有的话就直接用。所以s1和s2的存的地址值相同,指向的是同一个。
equals是Object中的方法,只能用于引用类型,也是比较的地址值。但String类重写了equals方法,来比较字符串是否相等。
2.这句话在内存创建了几个对象
String s1=new String("abc");
答案是两个
执行“abc”的之后在常量池创建一个,new的时候在堆里创建一个,并把常量池中的“abc”复制了一份过去。然后将其引用赋给了s1。
3.判断定义为String类型的s1和s2是否相等
String s1=new String("abc");//堆内存的地址
String s2="abc";//常量池的地址
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
运行结果为
false true
4.判断定义为String类型的s1和s2是否相等
String s1="ab"; String s2="abc"; String s3=s1+"c"; System.out.println(s3==s2); System.out.println(s3.equals(s2));
运行结果为
false true
先通过StingBuffer将“ab”和“c”合并成“abc”,然后通过toString将其转换成字符串。
Java 语言提供对字符串串联符号(”+”)以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,该方法由 Object 类定义,并可被 Java 中的所有类继承。
相关文章推荐
- java面试题中常见的关于String类问题总结
- Java中String类的常见面试题
- java面试题中常见的关于String类问题总结
- 【java】String类常见面试题
- Java中String类的常见面试题
- Java常见面试题(收集)
- Java常见面试题(基础) 1
- Java常见面试题集--面试题全面综合(二)
- Java常见面试题集--面试题全面综合(三)
- Java常见面试题(含答案)
- Java常见面试题
- 常见的JAVA面试题
- Java常见面试题集
- 常见JAVA基础面试题1
- java常见面试题
- Java常见的面试题
- Java常见面试题集
- Java常见面试题集--面试题全面综合(一)
- Java常见面试题(含答案)
- Java常见面试题(含答案)