String类常见面试题1

字符串类常见面试题

1.判断定义为String类型的s1和s2是否相等

1      String s1="abc";//常量池中没有这个对象就去创建,如果有就使用.
2         String s2="abc";//第一次创建了,有对此对象,直接指向他
3         System.out.println(s1==s2);//true
4         System.out.println(s1.equals(s2));//true,字符串内容比较

2.下面这句话在内存中创建了几个对象

1      // 创建了两个对象,一个在常量池里,另一个在堆内存里;根据构造方法String(String original)可知,但两个对象的地址不同
2         String s1 = new String("abc");
3         System.out.println(s1);

3.判断定义为String类型的s1和s2是否相等

1      String str1=new String("abc");//记录的是堆内存里的对象地址
2          String str2="abc";//记录的是常量池里的对象地址
3          System.out.println(str1==str2);//false
4          System.out.println(str1.equals(str2));//true

4.判断定义为String类型的s1和s2是否相等

1      String str1 = "a" + "b" + "c";
2         String str2 = "abc";
3         System.out.println(str1 == str2);// true,java中有常量优化机制
4         System.out.println(str1.equals(str2));// true

5.判断定义为String类型的s1和s2是否相等

1         /*
2          * Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。 字符串串联是通过 StringBuilder(或
3          * StringBuffer)类及其 append 方法实现的。 字符串转换是通过 toString 方法实现的.
4          */
5         String str1 = "ab";
6         String str2 = "abc";
7         String str3 = str1 + "c";
8         System.out.println(str2 == str3);// false
9         System.out.println(str2.equals(str3));// true                
原文地址:https://www.cnblogs.com/le-ping/p/7399741.html