標籤:sys 編譯器最佳化 nal int test public nbsp 字串 div
package com.swift;public class Douhao_String_Test { public static void main(String[] args) { /* * 如何把一段逗號分割的字串轉換成一個數組? * String s = "a" +"b" + "c" + "d";產生幾個對象? */ String str="sdjkfl,sldfj,abc,ei3,239d"; String[] arr=str.split(","); for(String s:arr) { System.out.println(s); } String s1 = new String("hello"); //新對象不同堆空間 String s2 = new String("hello"); String ss1 = "hello"; //指向同一常量池 String ss2 = "hello"; System.out.println(s1==s2); System.out.println(ss1==ss2); String t1= "a"; String t2= t1 + "b"; String t3= "a" + "b"; System.out.println(t2== "ab"); //t1 是final類型字串 不能改變,如要改變要建立新對象 t2是新對象 final String tt1="a"; String tt2=tt1+"b"; //編譯器最佳化把能確定的tt1當成了"a" 所以tt2=tt1+"b" 成了tt2="ab"; System.out.println(tt2=="ab"); System.out.println(t3== "ab"); //編譯器把String t3= "a" + "b"; 最佳化成String t3="ab"; String s = "a" +"b" + "c" + "d"; System.out.println(s =="abcd");//只產生一個對象"abcd" }}
java基礎面試題:如何把一段逗號分割的字串轉換成一個數組? String s = "a" +"b" + "c" + "d";產生幾個對象?