Java中的基本型別包裝類 Integer 類該怎麼使用?
1 、概述
Integer 類在物件中包裝了一個基本型別 int 值
Integer 類提供了很多方法,能在 int 型別和 String 型別之間相互轉換
package zhengshu;
public class IntegerDm {
public static void main(String[] args){
System.out.println(Integer.toBinaryString(100));// 轉換成二進位制數: 1100100
System.out.println(Integer.toOctalString(100));// 轉換成八進位制數: 144
System.out.println(Integer.toHexString(100));// 轉換成十六進位制數: 64
System.out.println("---------------------------");
System.out.println(Integer.MAX_VALUE);// 代表 int 所能表示的最大值
System.out.println(Integer.MIN_VALUE);// 代表 int 所能表示的最小值
}
}
String 型別轉換成 int 型別:
package zhengshu;
public class IntegerDm {
public static void main(String[] args){
int i1 = 100;
System.out.println("i1 的值為: "+i1);
Integer i2 = new Integer(i1);
System.out.println("i2 的值為: "+i2);
String s1 = "100";
Integer i3 = new Integer(s1);// 字串轉換成數字,前提是這個字串是由陣列字元組成
System.out.println("i3 的值為: "+i3);
}
}
2 、構造方法
public Integer(int value)
public Integer(String s)
3 、成員方法
public int intValue()
public static int parseInt(String s)
public static String toString(int i)
public static Integer valueOf(int i)
public static Integer valueOf(String s)
package zhengshu;
public class IntegerDm {
public static void main(String[] args){
//int -> Stirng
int i1 = 100;
String s1 = ""+ i1;//int -> Stirng
System.out.println(s1);// 輸出字串
String s2 = String.valueOf(i1);//int -> Stirng, 返回給定引數的原生 Number 物件值
System.out.println(s2);
Integer i2 = new Integer(i1);
System.out.println(i2);
String s3 = Integer.toString(i1);
System.out.println(s3);
System.out.println("------------------------");
//String -> int
String st1 = "200";
Integer in1 = new Integer(st1);
System.out.println(in1);
int in2 = in1.intValue();
System.out.println(in2);
System.out.println(Integer.parseInt(st1));//parseInt() 方法用於將字串引數作為有符號的十進位制整數進行解析
}
}
4 、常用的基本進位制轉換
public static String toBinaryString(int i)
public static String toOctalString(int i)
public static String toHexString(int i)
5 、十進位制轉到其他進位制
public static String toString(int i,int radix)
6 、其他進位制轉到十進位制
public static int parseInt(String s,int radix)
package zhengshu;
public class IntegerDm {
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,2));// 十進位制轉二進位制
System.out.println(Integer.toString(100,8));// 十進位制轉八進位制
System.out.println(Integer.toString(100,16));// 十進位制轉十六進位制
System.out.println(Integer.toString(100,7));// 十進位制轉七進位制
System.out.println(Integer.toString(100,30));// 十進位制轉三十進位制
System.out.println("============================");
// 其他進位制轉到十進位制
System.out.println(Integer.parseInt("100",10));// 那個數字的 10 進位制是 100 , 100
System.out.println(Integer.parseInt("100",2));// 那個數字的 2 進位制是 100 , 4
System.out.println(Integer.parseInt("100",8));// 那個數字的 8 進位制是 100 , 64
System.out.println(Integer.parseInt("100",16));// 那個數字的 16 進位制是 100 , 256
}
}
7 、自動裝箱與拆箱
Integer x = new Integer(4); 可以寫成 Integer x = 4; (自動裝箱)
x = x + 5; (自動拆箱),通過 intValue 方法
JDK 1.5 新特性(自動裝箱):把基本型別轉換為包裝類型別
JDK 1.5 新特性(自動拆箱):把包裝類型別轉換為基本型別
package zhengshu;
public class IntegerDm {
public static void main(String[] args){
byte b1 = 100;
byte b2 = b1;
Integer i1 = new Integer(200);// 定義一個 int 型別的包裝型別變數 i1
Integer i2 = 300;
i2 = i2 + 400;
System.out.println("i2 的值為: "+i2);// 輸出: 700
Integer i3 = Integer.valueOf(500);// 自動裝箱
i3 = Integer.valueOf(i3.intValue() + 60);// 自動拆箱,再自動裝箱
System.out.println((new StringBuilder("i3 的值為: ")).append(i3).toString());// 輸出: 560
}
}
package zhengshu;
function(){ //外匯返傭:http://www.fx61.com/
public class IntegerDm {
public static void main(String[] args){
Integer i1 = new Integer(128);
Integer i2 = new Integer(128);
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));
System.out.println("-----------------------");
Integer i3 = 128;
Integer i4 = 128;
System.out.println(i3 == i4);
System.out.println(i3.equals(i4));
System.out.println("=========================");
Integer i5 = 127;
Integer i6 = 127;
System.out.println(i5 == i6);
System.out.println(i5.equals(i6));
System.out.println("+++++++++++++++++++++++++");
int i7 = 1280;
Integer i8 = 1280;
System.out.println(i7 == i8);
// 針對 -128 到 127 之間的資料,做了一個資料緩衝池,如果資料是該範圍內的,每次並不建立新的空間
}
}
注意:
Integer 的資料直接賦值,如果在 -128 到 127 之間,會直接從緩衝池裡獲取資料
在使用時,Integer x = null; 上面的程式碼就會出現 NullPointerException (空指標異常)
8 、為了對基本資料型別進行更多的操作,Java 針對每一種基本資料型別提供了對應的類型別:包裝類型別。
byte Byte
short Short
int Integer
long long
float Float
double Double
char Character
boolean Boolean
JDK5 中新增了新特性(下面給出例項):
自動裝箱:把基本型別轉化為包裝類型別
自動拆包:把包裝類型別轉換為基本型別
注意:
使用時如果設定 Integer x=null 程式碼會出現空指標異常。
9 、Integer 型別的靜態成員方法(主要用到 D 、 E 兩個方法)
A 、 public static String toBinaryString(int i)
B 、 public static String toOctalString(int i)
C 、 public static String toHexString(int i)
將 int 型別轉換為常用的基本進位制的字串型別如: Integer.toHexString(100)
D 、 public static String toString(int i , int radix) 將 int 型別轉換為指定的 radix 進位制的字串型別,進位制範圍是 2~36 因為 0-9 , a-z 一共 36 個數,
E 、 public static int parseInt(String s , int radix) 將radix 進位制的字串到十進位制
F 、 public static int parseInt(String s) 將字串型別轉化為int 型別,用相似的方法可以實現字串型別轉換為基本型別,下面 int-String 型別轉換例項中有介紹。
G 、 public static String toString(int i) 將 int 型別轉換為字串型別
H 、 public static Integer valueOf(int i) 將int 型別轉換為 Integer 型別
I 、 public static Integer valueOf(String s) 將String 型別轉換為 Integer 型別
10 、Integer 型別的靜態成員變數
Integer.MAX_VALUE //int 範圍的最大值
Integer.MIN_VALUE //int 範圍的最小值
11 、Integer 類中的成員方法
public int intValue(); 將 Integer 型別返回為 int 型別
12 、Character 類
Character 類在物件中包裝了一個基本型別 char 的單個欄位,
public static boolean isUpperCase(char ch)// 大寫
public static boolean isLowerCase(char ch)// 小寫
public static boolean isDigit (char ch)// 數字
public static char toUpperCase(char ch)// 轉換為大寫字元
public static char toLowerCase(char ch)// 轉換為小寫字元
13 、int 和 String 的相互轉換例項
package test07_Integer;
//int 和 String 型別的相互轉換
//
public class IntegerDemo {
public static void main(String[] args) {
// int->String
int number=96;
// 方式 1
String s1=""+number;
System.out.println("s1:"+s1);
// 方式 2( 常用 )
String s2=String.valueOf(number);
System.out.println("s2:"+s2);
// 方式 3
String s3=Integer.toString(number);
System.out.println("s3:"+s3);
// 方式 4 int->Integer->String
Integer i=Integer.valueOf(number);
String s4=i.toString();
System.out.println("s4:"+s4);
//Sting->int
String s="96";
// 方式一
int i1=Integer.parseInt(s);
System.out.println("i1:"+i1);
// 方式 2
Integer ii=Integer.valueOf(i1);
int i2=ii.intValue();
System.out.println("i2:"+i2);
// 注意此方法,如果將一個字串型別轉換為 float 型別
float f=Float.parseFloat(s);
System.out.println("f:"+f);
// 同理字串轉換為基本型別都可以呼叫基本型別對應的包裝型別中的靜態方法
// 基本型別 x= 包裝型別 .parse 基本型別 (String s);
}
}
14 、 自動拆箱、自動裝箱時儲存方式例項:
package test07_Integer;
public class IntegerDemo2 {
public static void main(String[] args) {
// 自動裝箱:把基本資料型別轉化為包裝類型別
Integer ii=100;
// 自動拆箱:把包裝類型別轉換為基本型別
ii+=200;
System.out.println("ii:"+ii);
// 原因 Integer 資料直接賦值,如果在 -128~127 之間會從直接從資料池中獲取資料,不在此範圍內的資料需要呼叫 new integer() 方法建立物件
Integer ii1=127;
Integer ii2=127;
// 比較 ii1 和 ii2 的值
System.out.println(ii1.equals(ii2));//true
// 比較 ii1 和 ii2 的地址值
System.out.println(ii1==ii2);//true
Integer ii3=128;
Integer ii4=128;
System.out.println(ii3.equals(ii4));//true
System.out.println(ii3==ii4);//false
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946279/viewspace-2657541/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 14.Java-Arrays(類)、基本型別包裝類、Integer(類)Java型別
- 【Java】基本型別包裝類Java型別
- Java 包裝類和基本型別Java型別
- java基本資料型別包裝類Java資料型別
- Java中Integer類的基本方法Java
- Java-API-基本資料型別包裝類JavaAPI資料型別
- (2)Java基本資料型別和包裝類Java資料型別
- 二十八、基本型別包裝類型別
- 常見物件-基本型別包裝類物件型別
- 【Java】基本資料型別包裝類面試題之一Java資料型別面試題
- 基本資料型別及其包裝類(一)資料型別
- 基本資料型別及其包裝類(二)資料型別
- Java開發學習--Java 中基本型別和包裝類之間的轉換Java型別
- 再學Java 之 Integer 包裝類快取Java快取
- Java中基本資料型別和包裝型別有什麼區別?Java資料型別
- Java中的包裝類Java
- 原始型別與包裝類型別
- java學習之基本包裝類Java
- Java基礎-基本型別和包裝型別Java型別
- Java 包裝類:原始資料型別與迭代器Java資料型別
- java中的抽象類abstract怎麼使用?Java抽象
- Java學習--Java 中的包裝類Java
- java基本型別和包裝型別的“==”和equals()方法Java型別
- JAVA API:ArrayList(泛型類)基本使用JavaAPI泛型
- javascript基本型別 引用型別 基本包裝型別JavaScript型別
- Java--包裝類(基本型別和字串之間的轉換)、進位制轉換Java型別字串
- Java 包裝類Java
- 原子更新基本型別類型別
- java- 型別-轉換:基本型別以及包裝型別的轉換Java型別
- 詳解Java 虛擬機器(第④篇)——8 種基本型別的包裝類和常量池Java虛擬機型別
- 為什麼資料庫表的int型別欄位對映到實體類中要使用Integer型別,而不是int型別?...資料庫型別
- Javascript 之基本包裝型別JavaScript型別
- python中calss(類)的使用,類的教程,類中的函式怎麼呼叫。Python函式
- Java基本資料型別和Integer快取機制Java資料型別快取
- Java Integer型別比較Java型別
- 【Java】基本資料、包裝類間轉換與處理Java
- [Java] 基本資料、包裝類間轉換與處理Java
- 類例項物件的class型別卻不屬於該類,何解?物件型別