Javaには、基本型と参照型の2つの型システムがあります。基本型の使用は効率にあります。ただし、多くの場合、オブジェクトはより多くの機能を実行できるため、オブジェクトが作成および使用されます。基本型をオブジェクトのように動作させたい場合は、次のように、基本タイプに対応するパッケージングクラスを使用できます。
知識ポイントの想起:ArrayListの一般的な要件は、参照型のみであり、基本型ではありません。したがって、基本タイプは自動的に箱詰めされ、パッケージタイプに変換される必要があります。
パッケージングクラス:クラスを使用して、基本的なタイプのデータをパックし、クラス内のいくつかのメソッドを定義できます。このクラスは、パッケージングクラスと呼ばれます。
クラスのメソッドを使用して、これらの基本的なタイプのデータを操作できます。
ベーシックタイプ | 対応するパッケージングクラス(java.langパッケージにあります) |
---|---|
バイト | バイト |
ショート | ショート |
int | 整数 |
長いです | 長いです |
浮く | 浮く |
ダブル | ダブル |
char | キャラクター |
ブール値 | ブール値 |
基本タイプと対応するパッケージオブジェクト間の変換プロセスは、「ボックス化」および「ボックス化解除」と呼ばれます。
梱包:基本タイプから対応する梱包オブジェクトに変換します。
ボックス化解除:パッケージオブジェクトから対応する基本タイプに変換します。
例としてintとIntegerを取り上げましょう。
梱包:
構築方法:Integer(int value)は、指定されたint値を表す新しく割り当てられたIntegerオブジェクトを構築します。
Integer(String s)は、Stringパラメーターで示されるint値を表す新しいIntegerオブジェクトを作成します。(この文字列は基本的なタイプの文字列である必要があります。そうでない場合、例外がスローされます)
静的メソッド:static Integer valueOf(int i)は、指定されたint値を表すIntegerインスタンスを返します。
static Integer valueOf(String s)は、指定されたStringの値を保持するIntegerオブジェクトを返します。
開封:
メンバーメソッド:int intValue()は、この整数の値をint型で返します。
public static void main(String [] args){ //ボクシング:基本型から対応するパッケージングクラスオブジェクトに変換します。??????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????? //構築メソッド:Integer(int value)は、指定されたint値を表す新しく割り当てられたIntegerオブジェクトを構築します。 Integer integer1 = new Integer(1); //メソッドはマークされて古くなっています System.out.println(integer1); // 1印刷オブジェクトはアドレス値ではなく、toString()メソッドは書き直されます // Integer( String s)構造新しい整数オブジェクト Integer integer2 = new Integer( "222"); System.out.println(integer2); // 222 //静的メソッド:static Integer valueOf(int i)は、指定された整数インスタンスを返しますint値。 Integer integer3 = Integer.valueOf(3); //静的メソッド。クラス名は System.out.println(integer3); // 3 // static Integer valueOf(String s)を直接呼び出し、の値を保持するIntegerオブジェクトを返します。指定された文字列。 //開封 Integer integer4 = Integer.valueOf( "222"); //静的メソッド、クラス名を直接呼び出す System.out.println(integer4); // 222 //メンバーメソッド:int intValue()は、この整数の値をint型で返します。 int i = integer1.intValue(); System.out.println(i); // 1 }
自動ボックス化と自動ボックス化解除
JDK 1.5以降では、基本タイプとパッケージクラスの間で変換が必要になることが多いため、基本タイプとパッケージクラスのボックス化およびアンパックアクションを自動的に完了することができます。
private static void demo01(){ //自動ボクシングint- > Integer //整数に相当integer = new Integer(1) Integer integer = 1; System.out.println(integer); //自動ボックス解除Integer-> int // inはパッケージングクラスであり、計算に直接関与することはできません。基本データタイプに自動的に変換してから計算でき ます。// 整数+ int =整数//-> int + int =整数は自動的にボックス化されません。これにより、 Integer .intValue()+ int //-> int = Integer //-> Integer = Integer auto-boxing integer = integer + 2; System.out.println(integer); }と同等です。
基本型と文字列間の変換
1.基本型を文字列に変換します
基本型を文字列に変換する方法は3つあります。
A.基本タイプは、34 + ""などの ""と直接接続できます。
B.ラッパークラスの静的メソッドtoString(パラメーター)は、ObjectクラスのtoString()のオーバーロードとは関係ありません。
static String toString(int i)は、指定された整数のStringオブジェクトを返します。
C.String静的メソッドvalueOf(パラメーター)
static String valueOf(int i)は、intパラメーターの文字列表現を返します。
//基本型を文字列に変換します // 1。基本型の値+ "" String str1 = 23 + ""; System.out.println( "str1:" + str1); // 23 // 2 。パッケージングクラス静的メソッドtoString(parameter) String str2 = Integer.toString(3); System.out.println( "str2:" + str2); // 3 // 3. StringクラスvalueOf(parameter)の静的メソッド) String str3 = String.valueOf(23); System.out.println( "str3:" + str3); // 23
2.文字列型を基本型に変換します
Charaterクラスを除いて、他のすべてのラッパークラスには、文字列パラメーターを対応する基本型に変換できるparseXxx静的メソッドがあります。
例:public static byte parseByte(String s):文字列パラメータを対応する基本型に変換します。
//文字列は基本型に変換され ます intnum1 = Integer.valueOf( "222"); float num2 = Float.valueOf( "22.3");