面試題:Integer和int的區別?在什麼時候用Integer和什麼時候用int
阿新 • • 發佈:2019-02-08
/*
* int是java提供的8種原始資料型別之一。Java為每個原始型別提供了封裝類,Integer是java為int提供的封裝類。int的預設值為0,
* 而Integer的預設值為null
* ,即Integer可以區分出未賦值和值為0的區別,int則無法表達出未賦值的情況,例如,要想表達出沒有參加考試和考試成績為0的區別
* ,則只能使用Integer
* 。在JSP開發中,Integer的預設為null,所以用el表示式在文字框中顯示時,值為空白字串,而int預設的預設值為0,所以用el表示式在文字框中顯示時
* ,結果為0,所以,int不適合作為web層的表單資料的型別。
* 在Hibernate中,如果將OID定義為Integer型別,那麼Hibernate就可以根據其值是否為null而判斷一個物件是否是臨時的
* ,如果將OID定義為了int型別,還需要在hbm對映檔案中設定其unsaved-value屬性為0。
* 另外,Integer提供了多個與整數相關的操作方法,例如,將一個字串轉換成整數,Integer中還定義了表示整數的最大值和最小值的常量。
* int是java提供的8種原始資料型別之一。Java為每個原始型別提供了封裝類,Integer是java為int提供的封裝類。int的預設值為0,
* 而Integer的預設值為null
* ,即Integer可以區分出未賦值和值為0的區別,int則無法表達出未賦值的情況,例如,要想表達出沒有參加考試和考試成績為0的區別
* ,則只能使用Integer
* 。在JSP開發中,Integer的預設為null,所以用el表示式在文字框中顯示時,值為空白字串,而int預設的預設值為0,所以用el表示式在文字框中顯示時
* ,結果為0,所以,int不適合作為web層的表單資料的型別。
* 在Hibernate中,如果將OID定義為Integer型別,那麼Hibernate就可以根據其值是否為null而判斷一個物件是否是臨時的
* ,如果將OID定義為了int型別,還需要在hbm對映檔案中設定其unsaved-value屬性為0。
* 另外,Integer提供了多個與整數相關的操作方法,例如,將一個字串轉換成整數,Integer中還定義了表示整數的最大值和最小值的常量。
*/
package java基礎題目; /** * 問題:要想表達出沒有參加考試和考試成績為0的區別?我們應該用Integer表示還是用int表示? */ public class A2015年6月4日_Integer和int { private static int score; private static Integer score2; // private static boolean ss; public static void main(String[] args) { System.out.println("int型別的預設值score2:" + score);// 0 System.out.println("Integer型別的預設值score:" + score2);// null /* * if(score==null){//報錯因為score是int型別的不能和null比較 * * } */ // if(ss==true) // score2 = 0; if (score2 == null) { System.out.println("沒有參加考試!!!"); } else if (score2 == 0) { System.out.println("考試成績為0分!!!"); } else { System.out.println("考試成績為" + score2); } integer(); } public static void integer() { String string = "12345"; Integer i = Integer.parseInt(string);// 把字串解析為Integer型別 Integer max = Integer.MAX_VALUE; Integer min = Integer.MIN_VALUE; System.out.println("Integer.parseInt(string)=" + i); System.out.println("integer的最大值:"+max+",最小值:"+min); } }