English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
変数は値を格納するためのメモリを請求するものです。つまり、変数を作成する際には、メモリで空間を請求する必要があります。
メモリ管理システムは変数の型に基づいて変数にストレージ空間を割り当て、割り当てられた空間はその型のデータのみを格納するために使用されます。
したがって、異なる型の変数を定義することで、メモリに整数、小数、または文字を格納することができます。
Java の二大データ型:
内蔵データ型
参照データ型
Java 言語には 8 種の基本型があります。6 種の数字型(4 種の整数型、2 種の浮点型)、1 種の文字型、そして 1 種のボルン型があります。
byte:
byte データ型は8ビット、符号付き、二進数補码で表現された整数;
最小値は -128(-2^7);
最大値は 127(2^7-1);
デフォルト値は0;
byte 型は大規模な配列に使用され、主に整数の代わりに使用され、byte 型の変数が占める空間は int 型の四分の一のみです;
例:byte a = 100,byte b = -50。
short:
shortデータ型は 16 ビット、符号付きの二進数補码で表される整数
最小値は -32768(-2^15);
最大値は 32767(2^15 - 1);
Shortデータ型もbyteのようにスペースを節約できます。short変数はint型変数の半分のスペースを占めます;
デフォルト値は0;
例:short s = 1000、short r = -20000。
int:
intデータ型は32ビット、符号付きの二進数補码で表される整数;
最小値は -2,147,483,648(-2^31);
最大値は 2,147,483,647(2^31 - 1);
一般的に整数型の変数はデフォルトでint型とされます;
デフォルト値は0;
例:int a = 100000、int b = -200000。
long:
longデータ型は 64 ビット、符号付きの二進数補码で表される整数;
最小値は -9,223,372,036,854,775,808(-2^63);
最大値は 9,223,372,036,854,775,807(2^63 -1);
このタイプは大きな整数を比較するシステムに主に使用されます;
デフォルト値は0L;
例:long a = 100000L、Long b = -200000L。
「L」は理論的には大文字と小文字を区別しませんが、「l」に書かれると数字1「混同しにくく、区別しにくい。したがって、大文字にすることをお勧めします。
float:
floatデータ型は単精度の32ビット、IEEEに準拠しています 754標準の浮動小数点数;
floatは大きな浮動小数点数の配列を保存する際にメモリ空間を節約できます;
デフォルト値は0.0f;
浮動小数点数は正確な値、例えば通貨を表すことはできません;
例:float f1 = 234.5f。
double:
doubleデータ型は双精度の64 ビット、IEEEに準拠しています 754標準の浮動小数点数;
浮動小数点数のデフォルトのデータ型はdoubleです;
doubleデータ型は正確な値、例えば通貨を表すことはできません;
デフォルト値は0.0d;
例:double d1 = 123.4。
boolean:
booleanデータ型は1ビットの情報を表します;
trueとfalseの2つの値しかありません;
このタイプはtrueを記録するシグナルとしてのみ使用されます;/falseの状況;
デフォルト値はfalse;
例:boolean one = true。
char:
char型は単一の 16 ビットUnicode文字;
最小値は\u0000(それとも0);
最大値は\uffff(それとも\uffff)65,535);
charデータ型はどんな文字も保存できます;
例:char letter = 'A';。
数値型の基本データ型の値の範囲については、強制的に覚える必要はありません。なぜなら、それらの値は既に対応するパッケージクラスに定数として定義されているからです。以下の例を見てください:
public class PrimitiveTypeTest { public static void main(String[] args) { // byte System.out.println("基本类型:byte 二进制位数:") + Byte.SIZE); System.out.println("包装クラス:java.lang.Byte"); System.out.println("最小値:Byte.MIN_VALUE=" + Byte.MIN_VALUE); System.out.println("最大値:Byte.MAX_VALUE=" + Byte.MAX_VALUE); System.out.println(); // short System.out.println("基本型:short バイナリ位数:" + Short.SIZE); System.out.println("包装クラス:java.lang.Short"); System.out.println("最小値:Short.MIN_VALUE=" + Short.MIN_VALUE); System.out.println("最大値:Short.MAX_VALUE=" + Short.MAX_VALUE); System.out.println(); // int System.out.println("基本型:int バイナリ位数:" + Integer.SIZE); System.out.println("包装クラス:java.lang.Integer"); System.out.println("最小値:Integer.MIN_VALUE=" + Integer.MIN_VALUE); System.out.println("最大値:Integer.MAX_VALUE=" + Integer.MAX_VALUE); System.out.println(); // long System.out.println("基本型:long バイナリ位数:" + Long.SIZE); System.out.println("包装クラス:java.lang.Long"); System.out.println("最小値:Long.MIN_VALUE=" + Long.MIN_VALUE); System.out.println("最大値:Long.MAX_VALUE=" + Long.MAX_VALUE); System.out.println(); // float System.out.println("基本型:float バイナリ位数:" + Float.SIZE); System.out.println("包装クラス:java.lang.Float"); System.out.println("最小値:Float.MIN_VALUE=" + Float.MIN_VALUE); System.out.println("最大値:Float.MAX_VALUE="); + Float.MAX_VALUE); System.out.println(); // double System.out.println("基本型:double 二進数ビット数:"); + Double.SIZE); System.out.println("パッケージ:java.lang.Double"); System.out.println("最小値:Double.MIN_VALUE="); + Double.MIN_VALUE); System.out.println("最大値:Double.MAX_VALUE="); + Double.MAX_VALUE); System.out.println(); // char System.out.println("基本型:char 二進数ビット数:"); + Character.SIZE); System.out.println("パッケージ:java.lang.Character"); // Character.MIN_VALUEをコンソールに出力する際には数値形式でなく文字形式で出力します System.out.println("最小値:Character.MIN_VALUE="); + (int) Character.MIN_VALUE); // Character.MAX_VALUEをコンソールに出力する際には数値形式でなく文字形式で出力します System.out.println("最大値:Character.MAX_VALUE="); + (int) Character.MAX_VALUE); } }
以下のコードをコンパイルして出力結果は次の通りです:
基本型:byte 二進数ビット数:8 パッケージ:java.lang.Byte 最小値:Byte.MIN_VALUE=-128 最大値:Byte.MAX_VALUE=127 基本型:short 二進数ビット数:16 パッケージ:java.lang.Short 最小値:Short.MIN_VALUE=-32768 最大値:Short.MAX_VALUE=32767 基本型:int 二進数ビット数:32 パッケージ:java.lang.Integer 最小値:Integer.MIN_VALUE=-2147483648 最大値:Integer.MAX_VALUE=2147483647 基本型:long 二進数ビット数:64 パッケージ:java.lang.Long 最小値:Long.MIN_VALUE=-9223372036854775808 最大値:Long.MAX_VALUE=9223372036854775807 基本データ型:float 二進位ビット数:32 パッケージクラス:java.lang.Float 最小値:Float.MIN_VALUE=1.4E-45 最大値:Float.MAX_VALUE=3.4028235E38 基本データ型:double 二進位ビット数:64 パッケージクラス:java.lang.Double 最小値:Double.MIN_VALUE=4.9E-324 最大値:Double.MAX_VALUE=1.7976931348623157E308 基本データ型:char 二進位ビット数:16 パッケージクラス:java.lang.Character 最小値:Character.MIN_VALUE=0 最大値:Character.MAX_VALUE=65535
FloatとDoubleの最小値と最大値は科学記数法で表示され、最後に"E"があります。+数字"はEの前の数字をその倍数にします。10の何乗です。例えば3.14E3というのは3.14 × 103 =3140、3.14E-3 というのは 3.14 x 10-3 =0.00314。
実際には、JAVAにはvoidという別の基本データ型があり、それに対応するパッケージクラスjava.lang.Voidもありますが、それらに対して直接操作することはできません。
以下の表にJavaの各データ型のデフォルト値を示します:
データ型 | デフォルト値 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
char | 'u0000' |
String (またはどんなオブジェクトでも) | null |
boolean | false |
public class Test { static boolean bool; static byte by; static char ch; static double d; static float f; static int i; static long l; static short sh; static String str; public static void main(String[] args) { System.out.println("Bool: ") + bool); System.out.println("Byte: ") + by); System.out.println("Character: ") + ch); System.out.println("Double: ") + d); System.out.println("Float : ") + f); System.out.println("Integer : ") + i); System.out.println("Long : ") + l); System.out.println("Short : ") + sh); System.out.println("String : ") + str); } }
例出力結果は:
Bool : false Byte : 0 Character: Double : 0.0 Float : 0.0 Integer : 0 Long : 0 Short : 0 String : null
Javaでは、参照データ型の変数はC/C++のポインタです。参照データ型はオブジェクトを指し、オブジェクトを指す変数は参照変数です。これらの変数は宣言時に特定のタイプ(例えばEmployee、Puppyなど)として指定され、一旦宣言されるとそのタイプは変更できません。
オブジェクトや配列は参照データ型です。
すべての参照型はデフォルトでnullです。
参照型変数は、互換のどんなタイプにも参照することができます。
例:Site site = new Site("w3codebox")。
定数はプログラムの実行中に変更することはできません。
Javaでは、finalキーワードを使用して定数を修飾し、宣言方法は変数と似ています:
final double PI = 3.1415927;
定数名は小文字でも使用できますが、識別しやすくするために通常大文字を使用します。
リテラルは、どんな内蔵型の変数にも割り当てることができます。例えば:
byte a = 68; char a = 'A'
byte、int、long、およびshortは十進数で、16進数および8進数で表現する方法です。
定数を使用する場合、前缀 0 は 8 進数で、前缀 0x は 16 進数、例えば:
int decimal = 100; int octal = 0144; int hexa = 0x64;
他の言語と同様に、Javaの文字列定数は二つの引用符間に含まれる文字列シーケンスです。以下は文字列リテラルの例です:
"Hello World" "two\nlines" "\"This is in quotes\""
文字列定数と文字定数は、どんなUnicode文字も含むことができます。例えば:
char a = '\u000'1'; String a = "\u0001";
Java言語は、特殊なエスケープシーケンスをサポートしています。
シンボル | 文字の意味 |
---|---|
\n | ラインフィード (0x0a) |
\r | エンターキー (0x0d) |
\f | フォームフィード(0x0c) |
\b | バックスペース (0x08) |
\0 | null文字 (0x0) |
\s | スペース (0x20) |
\t | タブ |
\" | ダブルクォート |
\' | シングルクォート |
\\\ | アンダースコア |
\ddd | 8進数文字 (ddd) |
\uxxxx | 16進数Unicode文字 (xxxx) |
整型、実型(定数)、文字型データは混在して演算できます。演算では、異なるデータ型はまず同じデータ型に変換され、その後演算が行われます。
変換は低いレベルから高いレベルに向かって行われます。
低い ------------------------------------> 高い byte,short,char—> int —> long—> float —> double
データ型の変換には以下のルールが適用されます:
1. boolean型に対する型変換はできません。
2. オブジェクト型を関係のないクラスのオブジェクトに変換することはできません。
3. 大きいデータ型を小さいデータ型に変換する場合、強制的な型変換を使用する必要があります。
4. 変換プロセス中にオーバーフローまたは精度の損失が発生する可能性があります。例えば:
int i =128; byte b = (byte)i;
ビットのデータ型であるため、 8 ビットで、最大値は127、そのためint型をbyte型に強制的に変換するとき、値 128 の場合、オーバーフローが発生します。
5. 浮点数から整数への変換は小数点以下を切り捨てることで行われ、四捨五入ではありません。例えば:
(int)23.7 == 23; (int)-45.89f == -45
ビットのデータ型のビット数が変換前のデータ型のビット数よりも低く16ビットであれば、自動的に32のint型に変換できます。同様にfloatデータ型のビット数は32、自動的に64のdouble型。
public class ZiDongLeiZhuan{ public static void main(String[] args){ char c1='a';//char型 int i1 = c1;//charが自動的にintに変換 System.out.println("charが自動的にintに変換された後の値は"+i1); char c2 = 'A';//char型 int i2 = c2+1;//char型とint型の計算 System.out.println("char型とintの計算後の値は"+i2); } }
実行結果は:
charが自動的にintに変換された後の値は97 char型とintの計算後の値は66
解析:c1 の値は文字 a 、ASCIIコード表を調べると、対応するint型の値は 97、Aの値は 65、したがってi2=65+1=66。
1。条件は、変換するデータ型が互換的である必要があります。
2。形式:(type)value typeは強制型変換後のデータ型です。 例:
public class QiangZhiZhuanHuan{ public static void main(String[] args){ int i1 = 123; byte b = (byte)i1;//強制型変換 System.out.println("intを強制型変換したbyteの値は、"+b); } }
実行結果:
intを強制型変換したbyteの値は、123
1。整数のデフォルトの型はintです。
2。フロート型にはこのようなことはありません。なぜなら、float型を定義する際には、数字の後にFまたはfを追加する必要があるからです。
このセクションでは、Javaの基本データ型について説明しました。次のセクションでは、異なる変数の種類とその使用法について説明します。