String 轉 Integer
valueOf
String s = "123";
Integer a = Integer.valueOf(s);
String 轉 int
parseInt 都講得很清楚了 是parse解析到int 而不是Integer!
String s = "123;
int a = Integer.parseInt(s);
int Integer 轉 String
valueOf 最通用 語義上最順的寫法 請看s1 s2
你看Integer的valueOf也是同樣含義——把别的類型轉成或者包裝成自己類型
int a1 = Integer.MAX_VALUE;
Integer a2 = Integer.MAX_VALUE;
String s1 = String.valueOf(a1);
String s2 = String.valueOf(a2);
String s3 = ""+a1+a2;
當然了 你也可以用s3的寫法 注意每次+都會産生臨時的String對象,如果是循環多次 耗性能 此時建議使用Stringbuilder 避免臨時String對象的産生 最好還能一開始固定StringBuilder大小,這樣不會導緻其擴容造成的性能損耗。
parseInt用于實作valueOf的效果?
我這麼寫呢?對嗎?
String s = "123";
Integer a = Integer.parseInt(s);
回答:對的 但是有valueOf盡量用valueOf 因為語義上不是很直覺
一般某個對象 比如String的valueOf 結果就要是String,Integer也是如此 valueOf是專門用于幹對象轉換的
自動裝箱 自動拆箱 int Integer互轉
那這個代碼為什麼能用?
這裡int自動轉換到 Integer 被稱為自動裝箱過程,從原生類型到這個對象執行個體,java會幫我們自動包裝 自動裝箱 把原生類型這個值int 封裝為Integer對象執行個體
是以 int轉Integer 隻需要直接指派即可
那反過來呢?也可以的 java會幫我們自動拆箱
int Integer的差別
Integer是對象,其中一個屬性為int(真正的int值)
int是java原生的 基礎資料類型 在記憶體 堆裡邊就是32bit = 4Byte 這麼放着的 它是實體 存的就是具體的值
Integer對象執行個體 比如本例子中的a,是一個Integer執行個體的引用,類似C語言的指針 它指向的是對象執行個體。是以你看到
ArrayList<Integer>
你可以想象一下,ArrayList裝了一車子的對象引用(指針)罷了
後記
這個部落客要面向萌新 比如我這種菜雞 大佬們請勿凡爾賽說
這不就是常識?
不會把不會吧都2021年了還不會呢?
諸如此類的話 我們這些萌新生存艱難 剛開始上手敲代碼還各種小錯誤 剛學了什麼就忘了什麼 可能基礎的東西 一上手敲就忘了。。