Javaには8つの基本タイプのデータがあり、各基本タイプには対応するパッケージングクラスがあります
ベーシックタイプ
Javaには8つの基本的なデータ型があり、次の表に示します。
基本データ型 | の種類 | 占有バイト数 |
---|---|---|
バイト | 数値 | 1バイト |
ショート | 数値 | 2バイト |
int | 数値 | 4バイト |
長いです | 数値 | 8バイト |
浮く | 数値 | 4バイト |
ダブル | 数値 | 8バイト |
char | 文字タイプ | 2バイト |
ブール値 | ブール値 |
基本タイプが占めるスペース
- バイト(バイト)は符号なし8ビットで表され、その値の範囲は[-2 ^ 7、2 ^ 7-1]です。これは最小の整数型であり、通常、ネットワーク伝送、ファイル、またはその他のI / Oデータストリームに使用されます。デフォルト値は0です。
- short(短整数)は符号付き16ビットで表され、その値の範囲は[-2 ^ 15、2 ^ 15-1]です。日常の観察から、短いタイプは最も一般的に使用されていないタイプである可能性があります。通常、メモリ容量についてあまり心配する必要がないため、intに置き換えることができます。デフォルト値は0です。
- Int(整数)は符号付き32ビットで表され、その値の範囲は[-2 ^ 31、2 ^ 31-1]です。コンピューターは、整数値の2の補数を格納します。デフォルト値は0です。
- long(長整数)は符号付き64ビットで表され、その値の範囲は[-2 ^ 63、2 ^ 63-1]です。そのリテラルは、long a = 45454Lのように、lまたはLで終わることを意味します。デフォルト値は0Lです。
- 浮動小数点(単精度浮動小数点型)は32ビットで表され、IEEE754仕様に準拠しています。このタイプは、数値精度が高くない場合に使用できます。タイプfloatのリテラル値は通常fまたはFで終わります。整数は自動的にfloat型に変換できるため、整数リテラル値をfloat型変数に直接割り当てることもできます。デフォルト値は0Fです。
- Double(倍精度浮動小数点型)は64ビットで表され、IEEE754仕様に準拠しています。floatよりも高い精度で値を表すことができます。Doubleは、Javaの基本タイプで達成できる最高の精度です。要件が満たされていない場合は、JavaでBigDecimalクラスを使用できます。デフォルト値は0.0です。
- 文字(文字)は符号なし16ビットで表され、その値の範囲は[0、2 ^ 16-1]です。JavaはUnicode文字セットを使用して文字を表します。Unicodeは人間の言語で知られているすべての文字を16ビットの数値にマップするため、Javaの文字は16ビットです。デフォルト値は\ u00000です。
- trueとfalseの2つのリテラル値を論理的な判断に使用できる限り、ブール値(ブール値)。ブール値は1ビットの情報量のみを表すことができますが、そのサイズは正確に定義されていません。
型変換
Javaのブール型に加えて、他の7つの型を相互に変換できます。変換は、自動変換と強制変換に分けられます。自動変換(暗黙的)の場合、操作は必要ありませんが、強制型変換には明示的な変換、つまり変換演算子(型)の使用が必要です。7つの型は、占有スペースのサイズに従ってソートされ
ます。byte<(short = char)<int <long <float <double
型変換の一般的な規則は次のとおりです。smallは直接largeに変換でき、largeからsmallwillは精度を失います。
包装
Javaの各基本型は、一意のパッケージングクラスに対応しており、基本型とそのパッケージングクラスは、パッケージングクラスの静的メソッドまたはメンバーメソッドを介して変換できます。各基本タイプとそのパッケージングクラスの対応する関係は次のとおりです。すべてのパッケージングクラスが最終的に変更される、つまり継承および再書き込みできないことに注意してください。
基本データ型 | 包装 |
---|---|
バイト | バイト |
ショート | ショート |
int | 整数 |
長いです | 長いです |
浮く | 浮く |
ダブル | ダブル |
char | キャラクター |
ブール値 | ブール値 |
開封と梱包
ボクシング:基本的なタイプをパッケージングクラスに変換するプロセス
ボックス化解除:パッケージングクラスを基本タイプに変換するプロセス
jdk1.5以降の自動開梱と梱包を提供する
違い
- 基本型は値を格納するために直接使用され、すばやく簡単に使用できるようにスタックに配置されます。パッケージ型はクラスであり、そのインスタンスはヒープに配置されるオブジェクトです。
- 基本型はオブジェクトではないのでメソッドはなく、パッケージ型はクラスなのでメソッドがあります
- 基本タイプは直接割り当てることができ、パッケージタイプは新しいキーワードで作成する必要があります
- パッケージタイプの初期値はnullであり、基本タイプの初期値はnullではありません。これはタイプによって異なります。
パッケージタイプは、オブジェクト内の基本タイプの値をラップするため、オブジェクトのメソッドで基本タイプを操作できます。タイプ間の変換は、パッケージタイプのメソッドで完了する必要があるため、パッケージタイプは次のようになります。必須。
public static void main(String[] args) {
Integer i1 = 100;
Integer i2 = 100;
Integer i3 = 200;
Integer i4 = 200;
System.out.println(i1==i2); //①true
System.out.println(i3==i4); //②false
}
①結果は真、②は偽
Integer i1 = 100;実行される操作は100です。最初に、ボクシング操作はvalueOf()メソッドを介して実行されます。Integer.valueOf()のソースコードは次のとおりです。
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
整数は特別です。-128から127の間でキャッシュされます。この間隔にない数値は、新しいInteger(i)に移動します。つまり、新しいオブジェクトが作成されます。したがって、100を比較すると、trueになります。 、および200を比較した場合。false
基本型と文字列間の変換
プログラム開発では、基本的なデータ型と文字列の間で変換する必要があることがよくあります。
基本型を文字列に変換する方法は3つあります。
- ラッパークラスInteger.toString(10)のtoString()メソッドを使用します
- StringクラスString.valueOf(10)のvalueOf()メソッドを使用します
- 基本型に空の文字列を追加すると、基本型データに対応する文字列が得られます10 + ""
文字列を基本型に変換する方法は2つあります。
- ラッパークラスInteger.parseInt( "10");のparseXxx静的メソッドを呼び出します。
- ラッパークラスのvalueOf()メソッドを呼び出して、ラッパークラスの基本タイプに変換すると、自動的にInteger.valueOf( "10");のボックスが解除されます。