Javaのデータ型と変数

見る前にアイキャッチ(犬頭)

目次

1. データの種類

2. 変数

3. 文字列定数


1. データの種類

基本的なデータ型は8 つあります。


1. 4 つのカテゴリ:

整数、浮動小数点、文字、ブール値


2. 8種類:

注:
16 ビット システムでも 32 ビット システムでも、int は 4 バイト、long は 8 バイトを占めます。整数型
と浮動小数点型は両方とも符号付きです。整数型の
デフォルトは int 型で、浮動小数点型のデフォルトはto 二重
文字列は参照型です


2. 変数

(1) 変数の概念

        プログラムには、変化しない定数の他に、人の年齢、身長、得点、数学関数の計算結果など、頻繁に変化する内容が存在します。この頻繁に変化する内容を、Java プログラムでは変数と呼びますデータ型は、さまざまな種類の変数を定義するために使用されます

(2) 文法形式

変数を定義するための構文形式は次のとおりです。
        データ型 変数名 = 初期値;

例えば:

1. 整数変数

注:
1. Int はどのようなシステムであっても 4 バイトです。
2. 最初の定義を使用することを推奨します。適切な初期値がない場合は、0 を設定できます。
3. の初期値を設定する場合変数です。値は int の表現範囲を超えることはできません。そうでない場合は、オーバーフローが発生します。
4. 変数には、使用する前に初期値を割り当てる必要があります。そうでない場合は、コンパイル エラーが報告されます。
5. int のパッケージ化タイプは Integer です。

2. 長整数変数

注:
1. 長整数変数の初期値の後に L または l を追加します (L を追加することを推奨します)
2. 長整数型は方式に関係なく 8 バイトを占有します
3. 長整数型の表現範囲は次のとおりです: 
4.ロング 包装タイプはロングです

3. 短整数変数

注:
1. short はどのシステムでも 2 バイトを占有します
。 2. short の表現範囲は: -32768 ~ 32767 です。
3. 使用する場合は範囲​​を超えないように注意してください (一般に使用されることは少なくなります)
4. short のパッケージング タイプは Short です

4. バイト変数

注:
1. バイトはどのシステムでも 1 バイトを占有します
。 2. バイトの範囲は: -128 ~ 127 です
。 3. バイトのパッケージ化タイプはバイトです。

5. 浮動小数点変数
(1) 倍精度浮動小数点型

注:
1. Double はどのシステムでも 8 バイトを占有します
。 2. 浮動小数点数と整数はメモリ内で異なる方法で格納され、単純に次の形式で計算できません。
3. double のパッケージ化タイプは Double です。

4. double 型のメモリ レイアウトは IEEE 754 標準 (C 言語と同じ) に準拠していますが、限られたメモリ空間を使用して潜在的に無限の小数を表現しようとすると、必然的に一定の精度誤差が発生します。浮動小数点数は近似値であり、正確な値ではありません。

(2) 単精度浮動小数点型

float 型は Java で 4 バイトを占め、IEEE 754 標準にも準拠しています。表現されるデータの精度範囲が狭いため、エンジニアリングで浮動小数点数を使用する場合は一般に double が好まれ、float は推奨されません。 float の値は次のとおりです。

6. 文字変数

注:
1. Java では、文字リテラルを表すために一重引用符 + 1 文字を使用します。
2. コンピュータ内の文字は基本的に整数です。C 言語では文字を表すために ASCII が使用されますが、Java では文字を表すために Unicode が使用されます。
1 文字は 2 バイトを占め、中国語を含むより多くの種類の文字を表します。

3.charのパッケージ化タイプはCharacterです

7. ブール変数

予防:

1. boolean 型の変数には 2 つの値しかなく、true は true を意味し、false は false を意味します
2. Java の boolean 型と int は相互に変換できません。1 が true を意味し、0 が false を意味するなどの使用法はありません 3.
Java仮想マシンの仕様では、ブール値が占めるバイト数について明確な規定はなく、ブール値の処理に特に使用されるバイトコード命令もありません。Oracle の仮想マシン実装では、ブール値は 1 バイトを占めます。
4. ブール値のパッケージ化タイプは Boolean です

8. 型変換

Javaでは、演算に関わるデータ型が不一致の場合、型変換が行われます。Java の型変換は、主に自動型変換 (暗黙的
) と強制型変換 (明示的) の 2 つのカテゴリに分類されます。

(1)、自動型変換(暗黙的)

自動型変換とは、コードに処理を行う必要がなく、コードのコンパイル時にコンパイラが自動的に型変換を処理することを意味します。特徴: データ範囲が小さい場合、自動的に大きなデータ範囲に変換されます。


(2) 強制型変換(明示的)

強制的な型変換:動作時にコードは特定の形式を通過する必要があり、自動的に完了することはできません。特徴:大きなデータ範囲から小さなデータ範囲まで。
 

int a = 10;
long b = 100L;
b = a; // int-->long,数据范围由小到大,隐式转换
a = (int)b; // long-->int, 数据范围由大到小,需要强转,否则编译失败
float f = 3.14F;
double d = 5.12;
d = f; // float-->double,数据范围由小到大,隐式转换
f = (float)d; // double-->float, 数据范围由大到小,需要强转,否则编译失败
a = d; // 报错,类型不兼容
a = (int)d; // int没有double表示的数据范围大,需要强转,小数点之后全部丢弃
byte b1 = 100; // 100默认为int,没有超过byte范围,隐式转换
byte b2 = (byte)257; // 257默认为int,超过byte范围,需要显示转换,否则报错
boolean flag = true;
a = flag; // 编译失败:类型不兼容
flag = a; // 编译失败:类型不兼容

注:
1. 異なる数値型の変数間の代入は、範囲が狭い型を範囲が広い型に暗黙的に変換できることを意味します。 2. 範囲が広い型から範囲が広い型に値を割り当てる必要がある場合は
、範囲が狭い場合は、強制的な型変換が必要ですが、精度が失われる可能性があります 3.
リテラル定数を代入する場合、Java は数値範囲を自動的にチェックします
4. 強制的な型変換が成功しない可能性があり、無関係な型は変換できませんお互いに。

9. 型の改善

異なるタイプのデータが相互に操作される場合、小さいデータ タイプが大きいデータ タイプに昇格されます


(1) 1. intとlongの間:intはlongに昇格します。

(2)、バイトおよびバイト操作
(3) 結論

byte と byte は同じ型ですが、コンパイル エラーが発生します。これは、a と b が両方ともバイトであるにもかかわらず、a + b を計算すると、まず a と b が int に昇格されてから計算が実行され、その結果が発生するためです。取得した値もintです。これをcに代入すると上記のエラーが発生します。
コンピュータのCPUは通常4バイト単位でメモリからデータを読み書きするため、バイトやショートなどのハードウェア実装の都合上、 4 バイト未満の場合、型はまず int に昇格されてから計算に参加します。


正しい書き方:

型昇格の概要:
1. 異なる型のデータ混合演算では、小さい範囲は大きい範囲に昇格されます。
2. 略して、4 バイトより小さい byte は、最初に 4 バイト int に昇格され、その後計算されます。 。

10.文字列型
 

String クラスを使用して、Java で次のような文字列型を定義します。

場合によっては、文字列と整数の間で変換する必要があります。


(1)、文字列に変換します
(2) 文字列をintに変換する

おすすめ

転載: blog.csdn.net/cool_tao6/article/details/132683969