JAVA - 小知識
1. int和Integer的區別
Integer是int的封裝類,int則是java的一種基礎資料型別 (Elementary Data Type)
Integer變數必須執行個體化後才能使用,而int變數不需要
Integer實際是對象的引用,當new一個Integer時,實際上是產生一個指標指向此對象;而int則是直接儲存資料值
Integer的預設值是null,int的預設值是0
由於Integer變數實際上是對一個Integer對象的引用,所以兩個通過new產生的Integer變數永遠是不相等的(因為new產生的是兩個對象,其記憶體位址不同)。
Integer i = new Integer(100); Integer j = new Integer(100); System.out.print(i == j); //false
Integer是int的封裝類,int則是java的一種基礎資料型別 (Elementary Data Type)
Integer變數和int變數比較時,只要兩個變數的值是向等的,則結果為true(因為封裝類Integer和基礎資料型別 (Elementary Data Type)int比較時,java會自動拆封裝為int,然後進行比較,實際上就變為兩個int變數的比較)
非new產生的Integer變數和new Integer()產生的變數比較時,結果為false。(因為非new產生的Integer變數指向的是java常量池中的對象,而new Integer()產生的變數指向堆中建立的對象,兩者在記憶體中的地址不同)
Integer i = new Integer(100); Integer j = 100; System.out.print(i == j); //false
2. String類型
數字—>轉換成—->String: String a = “”+num;
String 類型 不能用str[i] , 而是用 str.charAt(i)
haystack.substring(i,i+l2).equals(needle) //取子串並判斷是否等於needle
return new StringBuffer(s).reverse().toString(); //反向轉換字串
StringBuffer 對該字串本身進行操作在記憶體上優於String,是安全執行緒的。
StringBuffer 和String之間的轉換:
String s = “abc”; StringBuffer sb1 = new StringBuffer(“123”); StringBuffer sb2 = new StringBuffer(s); //String轉換為StringBuffer String s1 = sb1.toString(); //StringBuffer轉換為String
3. 進位轉換
java.lang.Integer這個API包中有進位轉換的函數:
這3個函數都可以將十進位的整數轉換成二、一六、八位元
public static String toBinaryString(int i) // String a = Integer.toBinaryString(n) public static String toHexString(int i) // String a = Integer.toHexString(n) public static String toOctalString(int i) // String a = Integer.toOctalString(n)
Stack st = new Stack();
4.棧
聲明: