String 基础面试题

1.     JAVA 中字符串内容得到比较用的是 专门的比较方法 equals 。 == 比较的是字符串的引用是否相同。

2.     查看一下代码运行的结果

 1 public class Demo {
 2            public static void main(String[] args) {
 3             // new 创建的对象是存储在堆中的,每次都会创造一个对象,所以  h1==h2 false   
 4             String h1=new String("hello");
 5             String h2=new String("hello");
 6             System.out.println(h1==h2);
 7             // String a="abc" 是  从 String 常量池中拿对象,a 是实体就是 abc 
 8             // String b="abc" JVM 会拿b 在String 常量池中找是否存在内容相同的字符串对象
 9             // 如果不存在,则在常量池中创建一个对象b,否则不添加,所以 a==b  true
10             String a="abc";
11             String b="abc";
12             System.out.println(a==b);
13             //JAVA 常量优化机制,String 是 final 修饰的,为常量,编译的时候c 已经为 abc 所以 a==c  true
14             String c="ab"+"c";
15             System.out.println(a==c);
16             // JAVA 语言中提供了对字符串串联符号,("+")子符串串联是通过StringBuilder以及append 方法实现的
17             // 不是同一个对象   a==d3  false
18             String d1="ab";
19             String d2="c";
20             String d3=d1+d2;
21             System.out.println(a==d3);
22             // 结果是
23             //false
24             //true
25             //true
26             //false    
27         }      
28 }

 

posted @ 2018-10-17 21:47  雪落无痕1  阅读(191)  评论(0编辑  收藏  举报