String 基礎面試題
阿新 • • 發佈:2018-10-18
oid clas div 內容 dem 代碼 sta false []
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 }
String 基礎面試題