データタイプは、次の3つのコンポーネントによって決まります。
プログラミング言語にはいくつかの定義済みの組込み型が含まれており、プログラマーは独自のユーザー定義の定義を行うことができます。
Javaでは、データ型はプリミティブとリファレンスに分けられます。
「プリミティブ」とは、分裂は不可能です。プログラミング言語を拡張または変更することはできません。このデータ型は、プリミティブ型やその他のカスタム型によって記述されます。
プリミティブ型の変数は値を含み、参照変数はメモリ内のオブジェクトのアドレスを含む。
複合データは、クラス、インタフェース、および配列に分割されます。インタフェース型のメンバは抽象メソッドと定数です。 Javaでは、日付と時刻のデータ型はDate()コンストラクタによって設定されます。
リンクの例も文字列です。
文字列はJavaライブラリで定義されたクラスで、テキスト(一連の文字)を処理するために使用できます。
参照String変数の宣言は次のとおりです。String str。
このような変数のオブジェクトへの参照を割り当てる前に、演算子newの助けを借りてそれを作成する必要があります。たとえば、 "Hello"というテキストでクラスStringのオブジェクトを作成できます。
このコードが実行されるとどうなりますか?まず、メモリが割り当てられ、strという名前がこのメモリ位置に関連付けられます。これは、プリミティブ変数の宣言と同じです。 2番目のコードフラグメントは、文字列 "Hello"でメモリ内にStringオブジェクトを作成し、そのオブジェクトへの参照(またはメモリアドレス)をstrに格納します。
Java参照データ型も可能ある変数に格納されているオブジェクトへの参照を割り当てます。どちらもメモリ内の同じオブジェクトを参照します。これは次のようにして実現できます。
任意の参照変数に割り当てることができるパーマリンクnullがあります。それはどんなオブジェクトも参照しません。
Stringオブジェクトは、new演算子を使用して作成されます。しかし、文字列が頻繁に使用されるので、簡単に文字列を作成できます。すべての文字列リテラル、つまり二重引用符で囲まれた文字列は、Stringオブジェクトとして扱われます。したがって、new演算子の代わりに、文字列リテラルを使用することができます。
基本Javaデータ型は、byte、short、int、long、char、float、doubleおよびbooleanです。論理と数値の2つのカテゴリに分類されます。後者は、整数と浮動小数点数に分けることができます。
Java整数データ型は、値が整数である数値型です。バイト、ショート、int、ロング、およびcharの5つがあります。
Intは32ビットの符号付きプリミティブデータ型です。変数には32ビットのメモリが必要です。有効な範囲は-2147483648〜2147483647(-231 最大231 - 1)。この範囲の整数はすべて整数リテラルまたは定数です。たとえば、10、-200、0、30、19はintリテラルです。それらをint変数に割り当てることができます:
全リテラルは、2進数、8進数、10進数、および16進数で表すことができます。
リテラルがゼロから始まり、少なくとも2桁の数字を持つ場合、それは8進数で書かれているとみなされます。 0と00は同じ値 - ゼロを表します。
16進数形式のすべてのintリテラルは、0xまたは0xで始まり、少なくとも1つの16進数字を含む必要があります。
Intバイナリリテラルは0bまたは0Bで始まります:
これは64ビットの符号付きプリミティブ型です。計算結果がintの範囲を超えることができる場合に使用されます。ロングレンジ - -263 最大263この範囲内のすべての整数はlong型のリテラルです。
Java言語のintデータ型とlongデータ型を区別するために、最後の型リテラルは常にLまたはlで終わります。
全ロングタイプリテラルは、8進数、16進数、バイナリ形式で表現することもできます。
長いリテラルが変数longに代入されると、Javaコンパイラは、割り当てられた値をチェックし、許容範囲内であることを確認します。そうしないと、コンパイルエラーが発生します。
intの範囲はlongよりも小さいので、int型の変数の値は常にlong型の変数に代入できます。しかし、逆の代入はintの範囲内であっても不可能です。これを行うには、明示的な指示を使用します。
Byteは8ビット整数型です。その範囲は-128から127(-27 最大27 - 1). Это наименьший целый тип, имеющийся в Java.通常、プログラムに-128から127までの範囲の多数の値が含まれている場合、またはバイナリー・データを処理している場合は、バイト変数が使用されます。 intおよびlongリテラルとは異なり、バイトリテラルはありません。ただし、int変数はバイト範囲と重複するため、byte変数に任意のintリテラルを代入できます。
変数の値が範囲外の場合、Javaはコンパイラエラーを生成します。
また、int-literalのみを代入できますが、変数intに格納されている値は代入できません。精度が低下する可能性があるためです。これは明示的な型変換を必要とします。
これは16ビット符号付き整数プリミティブデータ型です。その範囲は-32768から32767(または-215 最大215 - 1)。
通常、短い変数が必要プログラムが指定された範囲を超えない多数の値を使用すると発生します。短いリテラルはありませんが、短い範囲内で任意のintリテラルを割り当てることができます。バイト変数の値は常に代入できます。 int型またはlong short型の変数を割り当てるための残りの規則は、byteの場合と同じです。
Char является 16-разрядным беззнаковым Unicode文字を表すプリミティブデータ型。符号がないということは、変数に負の値を設定できないことを意味します。範囲は0〜65535で、これはUnicode文字セットエンコーディングと同じです。リテラルは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)です。値の範囲 - from "8 255に対応10。したがって、それを表すために使用されます他のプログラミング言語との互換性のために必要な0から255までのコードを持つ文字。 4桁の16進数すべてが必要なUnicodeシーケンスとは異なり、ここでは1、2、または3の8進数を使用できます。
ブール値に有効な値は2つだけです。true(true)およびfalse(false)それらはブールリテラルと呼ばれます。論理変数を別の型にキャストすることはできません。その逆も同様です。 Javaはブール値のサイズを決定しません。Java仮想マシンの特定の実装に依存します。
Число, которое содержит дробную часть, в памяти コンピュータは、ポイントの前後に、またはその位置とともに固定の桁数でビューに格納できます。桁数は変わることがあるので、彼らはドットが「浮かぶ」と言う。
Javaでは、浮動小数点データ型は32ビットを使用します。 IEEE 754規格によると、これは単精度に対応します。これにより、たとえば1.4 x 10という数値を表すことができます-45 3.4×1038、正と負の両方。
fまたはFで終わるすべての実数は、浮動リテラルと呼ばれます。それらは10進数でそして科学的記数法の形で提示することができます。例えば、
この型は2つのゼロを定義します。+ 0.0F(または0.0F)と-0.0Fただし、比較のために、両方のゼロは等しいと見なされます。さらに、彼は2つのタイプの無限大を定義します:正と負。一部の演算の結果(例えば、0.0Fを0.0Fで除算すること)は定義されておらず、特殊値NaNで表されます。
浮動小数点数を格納するために、doubleは64ビットを使用します。倍精度数は4.9 x 10の正と負の値を表すことができます。-324 1.7×10308.
デフォルトの実数はすべてダブルリテラル必要に応じて、19.27dのように、接尾辞dまたはDで明示的に示すことができます。二重リテラルは、10進数形式と科学表記法で表すことができます。