常見物件-基本型別包裝類
引入:
package cn.itcast_01;
/*
* 需求1:我要求大家把100這個資料的二進位制,八進位制,十六進位制計算出來
* 需求2:我要求大家判斷一個資料是否是int範圍內的。
* 首先你得知道int的範圍是多大?
*
* 為了對基本資料型別進行更多的操作,更方便的操作,Java就針對每一種基本資料型別提供了對應的類型別。包裝類型別。
* byte Byte
* short Short
* int Integer
* long Long
* float Float
* double Double
* char Character
* boolean Boolean
*
* 將基本資料型別封裝成物件的好處在於可以在物件中定義更多的功能方法操作該資料。
* 常用的操作之一:
* 用於基本資料型別與字串之間的轉換。
*/
public class IntegerDemo {
public static void main(String[] args) {
// public static String toBinaryString(int i)
System.out.println(Integer.toBinaryString(100));
// public static String toOctalString(int i)
System.out.println(Integer.toOctalString(100));
// public static String toHexString(int i)
System.out.println(Integer.toHexString(100));
// public static final int MAX_VALUE
System.out.println(Integer.MAX_VALUE);
// public static final int MIN_VALUE
System.out.println(Integer.MIN_VALUE);
}
}
package cn.itcast_02;
/*
* Integer的構造方法:
* public Integer(int value)
* public Integer(String s)
* 注意:這個字串必須是由數字字元組成
*/
public class IntegerDemo {
public static void main(String[] args) {
// 方式1
int i = 100;
Integer ii = new Integer(i);
System.out.println("ii:" + ii); //100,引用型別
// 方式2
String s = "100";
Integer iii = new Integer(s);
System.out.println("iii:" + iii);//100
// String s = "abc";字串必須是由數字字元組成
Integer iii = new Integer(s);
System.out.println("iii:" + iii);// NumberFormatException
}
}
int型別和String型別的相互轉換:
package cn.itcast_03;
/*
* int型別和String型別的相互轉換
*
* int -- String
* String.valueOf(number)
*
* String -- int
* Integer.parseInt(s)
*/
public class IntegerDemo {
public static void main(String[] args) {
// int -- String
int number = 100;
// 方式1
String s1 = "" + number;
System.out.println("s1:" + s1); //100
// 方式2,推薦
String s2 = String.valueOf(number);
System.out.println("s2:" + s2); //100
// 方式3
// int -- Integer -- String
Integer i = new Integer(number);
String s3 = i.toString();
System.out.println("s3:" + s3); //100
// 方式4
// public static String toString(int i)
String s4 = Integer.toString(number);
System.out.println("s4:" + s4); //100
System.out.println("-----------------------------");
// String -- int
String s = "100";
// 方式1
// String -- Integer -- int
Integer ii = new Integer(s);
// public int intValue()
int x = ii.intValue();
System.out.println("x:" + x); //100
//方式2,推薦
//public static int parseInt(String s)
int y = Integer.parseInt(s);
System.out.println("y:"+y); //100
}
}
Integer中進位制轉換的操作,瞭解就行:
package cn.itcast_04;
/*
* 常用的基本進位制轉換
* public static String toBinaryString(int i)
* public static String toOctalString(int i)
* public static String toHexString(int i)
*
* 十進位制到其他進位制
* public static String toString(int i,int radix)
* 由這個我們也看到了進位制的範圍:2進位制到36進位制
* 為什麼呢?0,...9,a...z,總共加起來36個
*
* 其他進位制到十進位制
* public static int parseInt(String s,int radix)
*/
public class IntegerDemo {
public static void main(String[] args) {
// 十進位制到二進位制,八進位制,十六進位制
System.out.println(Integer.toBinaryString(100));
System.out.println(Integer.toOctalString(100));
System.out.println(Integer.toHexString(100));
System.out.println("-------------------------");
// 十進位制到其他進位制
System.out.println(Integer.toString(100, 10));
System.out.println(Integer.toString(100, 2));
System.out.println(Integer.toString(100, 8));
System.out.println(Integer.toString(100, 16));
System.out.println(Integer.toString(100, 5));
System.out.println(Integer.toString(100, 7));
System.out.println(Integer.toString(100, -7));
System.out.println(Integer.toString(100, 70));
System.out.println(Integer.toString(100, 1));
System.out.println(Integer.toString(100, 17));
System.out.println(Integer.toString(100, 32));
System.out.println(Integer.toString(100, 37));
System.out.println(Integer.toString(100, 36));
System.out.println("-------------------------");
//其他進位制到十進位制
System.out.println(Integer.parseInt("100", 10));
System.out.println(Integer.parseInt("100", 2));
System.out.println(Integer.parseInt("100", 8));
System.out.println(Integer.parseInt("100", 16));
System.out.println(Integer.parseInt("100", 23));
//NumberFormatException
//System.out.println(Integer.parseInt("123", 2));
}
}
JDK5的新特性自動裝箱和拆箱:
package cn.itcast_05;
/*
* JDK5的新特性
* 自動裝箱:把基本型別轉換為包裝類型別
* 自動拆箱:把包裝類型別轉換為基本型別
*
* 注意一個小問題:
* 在使用時,Integer x = null;程式碼就會出現NullPointerException。
* 建議先判斷是否為null,然後再使用。
*/
public class IntegerDemo {
public static void main(String[] args) {
// 定義了一個int型別的包裝類型別變數i
// Integer i = new Integer(100);
Integer ii = 100;
ii += 200;
System.out.println("ii:" + ii);
// 通過反編譯後的程式碼
// Integer ii = Integer.valueOf(100); //自動裝箱
// ii = Integer.valueOf(ii.intValue() + 200); //自動拆箱,再自動裝箱
// System.out.println((new StringBuilder("ii:")).append(ii).toString());
Integer iii = null;
if (iii != null) {//建議先判斷是否為null,然後再使用
iii += 1000;
System.out.println(iii);
}
}
}
Integer直接賦值的面試題:
package cn.itcast_06;
/*
* 看程式寫結果
*
* 注意:Integer的資料直接賦值,如果在-128到127之間,會直接從緩衝池裡獲取資料
*/
public class IntegerDemo {
public static void main(String[] args) {
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2); //false
System.out.println(i1.equals(i2)); //true
System.out.println("-----------");
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4); //false
System.out.println(i3.equals(i4)); //true
System.out.println("-----------");
Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6); //false
System.out.println(i5.equals(i6)); //true
System.out.println("-----------");
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8); //true
System.out.println(i7.equals(i8)); //true
// 通過檢視原始碼,我們就知道了,針對-128到127之間的資料,做了一個資料緩衝池,如果資料是該範圍內的,每次並不建立新的空間
// Integer ii = Integer.valueOf(127);
}
}
相關文章
- 【Java】基本型別包裝類Java型別
- Java 包裝類和基本型別Java型別
- 二十八、基本型別包裝類型別
- 基本資料型別及其包裝類(二)資料型別
- 基本資料型別及其包裝類(一)資料型別
- 14.Java-Arrays(類)、基本型別包裝類、Integer(類)Java型別
- Java-API-基本資料型別包裝類JavaAPI資料型別
- Java中的基本型別包裝類 Integer 類該怎麼使用?Java型別
- Java基礎-基本型別和包裝型別Java型別
- 【Java】基本資料型別包裝類面試題之一Java資料型別面試題
- java基本型別和包裝型別的“==”和equals()方法Java型別
- 物件,包裝類物件
- 你不知道的JavaScript--Item4 基本型別和基本包裝型別(引用型別)JavaScript型別
- JS中資料型別、內建物件、包裝型別物件、typeof關係JS資料型別物件
- java- 型別-轉換:基本型別以及包裝型別的轉換Java型別
- Java中基本資料型別和包裝型別有什麼區別?Java資料型別
- 面試官:兄弟,說說基本型別和包裝型別的區別吧面試型別
- 原子更新基本型別類型別
- 常見的型別命名型別
- 包裝類型別,跳脫字元,BigDecimal,BigInteger,Ca型別字元Decimal
- SQL 常見資料型別SQL資料型別
- mysql常見資料型別MySql資料型別
- 常見的資料型別資料型別
- TypeScript 之常見型別(上)TypeScript型別
- TypeScript 之常見型別(下)TypeScript型別
- ERP整合常見的型別型別
- Java 包裝類:原始資料型別與迭代器Java資料型別
- 安裝R包常見的方法
- 詳解Java 虛擬機器(第④篇)——8 種基本型別的包裝類和常量池Java虛擬機型別
- DDOS攻擊常見的型別型別
- DDOS常見的型別有哪些?型別
- 常見指標型別入門指標型別
- 《JavaScript物件導向精要》之一:基本型別和引用型別JavaScript物件型別
- C#.Net築基-型別系統②常見型別C#型別
- cheerp資料型別包裝資料型別
- Calendar日曆型別常見方法(必看!!)型別
- 常見的網路攻擊型別型別
- 常見的錯誤日誌型別型別
- 常見的代理IP型別介紹型別