データ型は3つのコンポーネントによって決定されます。
- 値またはオブジェクトのセット;
- セット内のすべての値に適用できる一連の操作;
- データの提示、ストレージの定義。
Javaのデータのタイプは何ですか?
プログラミング言語には、事前定義された組み込み型がいくつか含まれており、プログラマーは独自のカスタム型を定義できます。
Javaでは、データ型はプリミティブ型と参照型に分けられます。
「プリミティブ」とは、分割はできません。そのプログラミング言語では、拡張や変更はできません。このデータ型は、プリミティブ型およびその他のユーザー定義型によって記述されます。
プリミティブ型の変数には値が含まれ、参照変数にはメモリ内のオブジェクトのアドレスが含まれます。
Java言語。データ型:時刻と日付
複合データは、クラス、インターフェース、配列に分かれています。インターフェース型のメンバーは、抽象メソッドと定数です。 Javaでは、日付と時刻のデータ型はDate()コンストラクターによって指定されます。
- d =新しい日付()。
文字列もリンクの例です。
Java言語。データ型:文字列
文字列はJavaライブラリで定義されたクラスであり、テキスト(文字のシーケンス)を操作するために使用できます。
参照文字列変数の宣言は次のとおりです。
そのような変数にオブジェクトへの参照を割り当てる前に、new演算子を使用してそれを作成する必要があります。たとえば、「Hello」というテキストを含むStringクラスのオブジェクトを作成できます。
- str =新しい文字列( "こんにちは")。
このコードが実行されるとどうなりますか? まず、メモリが割り当てられ、strという名前がそのメモリ位置に関連付けられます。これは、プリミティブ変数の宣言と同じです。 2番目のコードは、メモリ内に "Hello"というテキストを含むStringオブジェクトを作成し、それへの参照(またはメモリアドレス)をstrに格納します。
Java参照データ型でも許可ある変数に格納されているオブジェクト参照を別の変数に割り当てます。どちらもメモリ内の同じオブジェクトを参照します。これは次のようにして実現できます。
- 文字列str1;
- 文字列str2;
- str1 =新しい文字列( "こんにちは");
- str2 = str1;
参照変数に割り当てることができるnullの永続的な参照があります。オブジェクトを参照しません。
Stringオブジェクトは、new演算子を使用して作成されます。 しかし、文字列は頻繁に使用されるため、作成する簡単な方法があります。すべての文字列リテラル、つまり二重引用符で囲まれた文字のシーケンスは、Stringオブジェクトとして扱われます。したがって、new演算子の代わりに、文字列リテラルを使用できます。
- 文字列str1 = "Hello"。
Javaプリミティブデータ型-バイト、ショート、整数、long、char、float、double、boolean。これらは、論理と数値の2つのカテゴリに分類されます。後者は整数と浮動小数点数に分割できます。
Java整数データ型は、値が整数である数値型です。それらには、byte、short、int、long、charの5つがあります。
Int
Intは、32ビットの符号付きプリミティブデータ型です。変数は32ビットのメモリを占有します。有効な範囲は-2147483648〜2147483647(-231 2まで31 -1)。この範囲の整数はすべて、整数リテラルまたは定数です。たとえば、10、-200、0、30、19はintリテラルです。それらはint変数に割り当てることができます:
- int num1 = 21;
整数リテラルは、2進数、8進数、10進数、および16進数として表すことができます。
リテラルがゼロで始まり、2桁以上ある場合、リテラルは8進形式と見なされます。 0と00は同じ値-ゼロを表します。
16進形式のすべてのintリテラルは0xまたは0xで始まり、少なくとも1つの16進数字が含まれている必要があります。
- int num1 = 0x123。
バイナリ形式のintリテラルは0bまたは0Bで始まります。
- int num1 = 0b10101。
長いです
これは64ビットの符号付きプリミティブ型です。計算結果がint範囲を超える可能性がある場合に使用されます。長距離--2から63 2まで63-1.この範囲のすべての整数はlong型リテラルです。
Javaのintデータ型とlongデータ型を区別するために、後者の型リテラルは常にLまたはlで終わります。
long型整数リテラルは、8進、16進、および2進形式で表すこともできます。
長いリテラルが長い変数に割り当てられると、Javaコンパイラーは割り当てられた値をチェックし、それが許容範囲内であることを確認します。そうしないと、コンパイルエラーが発生します。
intの範囲はlongの範囲よりも小さいので、int変数の値は、常にlong型の変数に割り当てることができます。ただし、intの範囲内でも逆代入はできません。これには、明示的な表示が使用されます。
- num1 =(int)num2;
バイト
バイトは8ビット整数プリミティブ型です。範囲は-128〜127(-27 2まで7 -1)。これは、Javaで使用できる最小の整数型です。 原則として、バイト変数は、プログラムに-128から127の範囲の多くの値が含まれる場合、またはバイナリデータを処理する場合に使用されます。 intおよびlongリテラルとは異なり、バイトリテラルはありません。ただし、バイト範囲にオーバーラップするため、バイト変数に任意のintリテラルを割り当てることができます。
変数の値が範囲外の場合、Javaはコンパイラエラーをスローします。
さらに、精度を失う可能性があるため、intリテラルのみを割り当てることができ、int変数に格納されている値は割り当てることができません。これには明示的なキャストが必要です。
- b1 =(バイト)num1。
ショート
これは、16ビットの符号付き整数プリミティブデータ型です。範囲は-32768〜32767(または-215 2まで15 -1)。
一般的に短い変数の必要性プログラムが指定された範囲を超えない多数の値を使用する場合に発生します短いリテラルはありませんが、短い範囲内の任意のintリテラルを割り当てることができます。バイト変数の値は常に割り当てることができます。 intまたはlongをshortに割り当てるための残りのルールは、byteの場合と同じです。
シャア
Charは16ビット符号なしUnicode文字を表すプリミティブデータ型。符号がないことは、変数が負の値を持つことができないことを意味します。範囲は0〜65535で、これはUnicode文字セットのエンコーディングと一致します。リテラルはchar値を表し、次の形式で表すことができます。
- 一重引用符で囲まれた文字。
- 制御文字のシーケンス。
- Unicode制御文字のシーケンス。
- 8進制御文字のシーケンス。
シンボルはそれを囲んで表すことができます単一引用符:char C1 = "A"。二重引用符は、文字列に1文字しか含まれていない場合でも、char変数に割り当てることができない文字列リテラルを示します。プリミティブ変数参照が割り当てられていないため、これは許可されません。すべての文字列リテラルはStringオブジェクトであるため参照であり、文字リテラルはプリミティブ型です。
エスケープシーケンスリテラルは、バックスラッシュの後に単一引用符で囲まれた文字として記述されます。それらの8つがあります:「n」、「r」、「f」、「b」、「t」、「\」、「」、「」。
Unicodeエスケープシーケンスは"uxxxx"、ここでu(バックスラッシュの後に小文字のuが続く)はその開始を示し、xxxxはUnicode文字コードの4桁の16進数を表します。たとえば、 "A"の値は10進数で65、16進数で41です。したがって、この文字は「u0041」として表すことができます。
8進数のエスケープシーケンスは "nnn"として記述されます。nは8進数(0〜7)です。値の範囲は "8 255に対応10...したがって、それは他のプログラミング言語との互換性のために必要な、0〜255のコードの文字。 4桁の16進数すべてを必要とするUnicodeシーケンスとは異なり、ここでは1、2、または3桁の8進数を使用できます: "n"、 "nn"、または "nnn"。
ブール型
ブール値には2つの有効な値のみがあります。 真と偽。それらはブールリテラルと呼ばれます。ブール変数を別の型にキャストしたり、その逆を行ったりすることはできません。 Javaはブール値のサイズを指定しません-それはJVMの特定の実装に依存します。
Java浮動小数点データ型
メモリ内の小数部分を含む数値コンピュータは、ポイントの前後の桁数が固定された表現、またはその位置を示す表現に格納できます。桁数が異なる場合があるため、その点は「浮動」していると言われています。
Java言語では、浮動小数点データ型は32ビットを使用します。 IEEE 754標準によれば、これは単精度に対応しているため、たとえば1.4 x 10の数値を表すことができます。-45 および3.4 x 1038、正と負の両方。
fまたはFで終わるすべての実数は、floatリテラルと呼ばれます。それらは10進形式および科学表記で表すことができます。例えば:
- float f1 = 3.25F;
- float f2 = 32.5E-1F;
- float f3 = 0.325E + 1F。
タイプは2つのゼロを定義します:+ 0.0F(または0.0F)および-0.0F。 ただし、比較のために、両方のゼロは等しいと見なされます。さらに、彼は正と負の2種類の無限大を定義しました。一部の演算(例えば、0.0Fを0.0Fで除算)の結果は未定義であり、特別な値NaNで表されます。
倍精度
doubleは64ビットを使用して浮動小数点数を格納します。倍精度の数値は、4.9 x 10の正と負の値を表すことができます-324 および1.7 x 10308.
すべての実数はデフォルトで二重リテラル。オプションで、19.27dのように、接尾辞dまたはDで明示的に示すことができます。二重リテラルは、10進形式および科学表記で表現できます。