ホームページ  >  記事  >  Java  >  Java のデータ型と変数の詳細な分析

Java のデータ型と変数の詳細な分析

高洛峰
高洛峰オリジナル
2017-01-22 10:28:411279ブラウズ

Javaのデータ型変換(自動変換と強制変換)
データ型変換は自動変換と強制変換に分かれます。自動変換は、プログラムの実行中に「静かに」実行される変換であり、ユーザーが事前に宣言する必要はありません。通常は、下位桁の型から上位桁の型への強制変換を宣言する必要があります。コード内で変換順序は制限されません。
自動データ型変換

自動変換は低位から高位の順に変換します。異なる種類のデータ間の優先関係は次のとおりです:
低-------------------------------------- --------- ------>High
byte、short、char->int ->long ->double

;変換ルールは以下の通りです:

Java のデータ型と変数の詳細な分析

データ型の強制変換

強制変換の形式は、必要なデータの前に「( )」を追加します。変換する必要があるデータ型を括弧内に追加します。一部のデータは変換操作を受けると精度が失われますが、一部のデータはより正確になります。次の例は、この問題を示しています。

public class Demo {
  public static void main(String[] args){
    int x;
    double y;
    x = (int)34.56 + (int)11.2; // 丢失精度
    y = (double)x + (double)10 + 1; // 提高精度
    System.out.println("x=" + x);
    System.out.println("y=" + y);
  }
}

実行結果:

x=45
y=56.0

上記のプログラムセグメントを注意深く分析してください: 34.56 の前に int の強制型変換があるため、34.56 は 34 になります。同様に、11.2 は 11 になるため、x の結果は 45 になります。 x の前に double 型キャストがあるため、x の値は 45.0 になり、10 の前も強制的に double 型にキャストされるので、これも 10.0 になり、最終的な y の値は 56 になります。

Java データ型と変数定義

Java は厳密に型指定された言語であり、変数を宣言するときにデータ型を指定する必要があります。変数の値は、一定量のメモリ領域を占有します。変数のタイプが異なれば、占有するサイズも異なります。

Javaには、4つの整数型、2つの浮動小数点型、1つの文字型、および1つのブール型を含む8つの基本データ型があります。以下の表を参照してください。

Java のデータ型と変数の詳細な分析

整数データの場合、通常はint型が使用されます。ただし、広島と長崎に投下された原爆によって放出されたエネルギーを表す場合は、長いタイプを使用する必要があります。 byte 型と short 型は主に、低レベルのファイル処理や、占有する記憶領域の量を制御する必要がある大規模な配列などの特定のアプリケーションで使用されます。

Java では、整数データの長さはプラットフォームとは関係がないため、ソフトウェアをあるプラットフォームから別のプラットフォームに移植するときにプログラマに生じる多くの問題が解決されます。対照的に、C/C++ 整数データの長さはプラットフォームに依存するため、プログラマはさまざまなプラットフォームに適した整数型を選択する必要があります。これにより、64 ビット システムで安定して実行されるプログラムが 32 ビット システムでは破損する可能性があります。オーバーフロー。

8 進数には接頭辞 0 が付きます。たとえば、010 は 10 進数の 8 に対応します。16 進数には接頭辞 0x が付きます (Java 7 以降、0xCAFE など)。接頭辞 0b を使用してバイナリ データを表すことができます。たとえば、0b1001 は に対応します。 10進数で9。また、Java 7 以降では、英語の数値の書き方と同様に、アンダースコアを使用して数値を区切ることができます。たとえば、1_000_000 は 1,000,000 (100 万) を意味します。アンダースコアはコードを読みやすくするためにあるだけで、コンパイラによって削除されます。

さらに、C/C++ とは異なり、Java は符号なし型をサポートしません。

float型の有効な数値は最大7桁で、有効な数値の長さは整数部と小数部を含みます。例:

float x = 223.56F;
float y = 100.00f;

注: 各 float 型の後ろに「F」または「f」という記号があります。この記号は、それが float 型であることを意味します。

double型の有効桁数は最大15桁です。 float 型と同様に、double の後にはフラグ「D」または「d」が続きます。例:

double x = 23.45D;
double y = 422.22d;
double z = 562.234;

注: フラグのない浮動小数点データの場合、システムはデフォルトで double 型を使用します。

double型を使用する場合が多く、floatの精度では要求を満たすことが困難です。

さまざまなデータ型のアプリケーション例:

public class Demo {
  public static void main(String[] args){
    // 字符型
    char webName1 = '微';
    char webName2 = '学';
    char webName3 = '苑';
    System.out.println("网站的名字是:" + webName1 + webName2 + webName3);
     
    // 整型
    short x=22; // 十进制
    int y=022; // 八进制
    long z=0x22L; // 十六进制
    System.out.println("转化成十进制:x = " + x + ", y = " + y + ", z = " + z);
     
    // 浮点型
    float m = 22.45f;
    double n = 10;
    System.out.println("计算乘积:" + m + " * " + n + "=" + m*n);
  }
}

実行結果:

网站的名字是:微学苑
转化成十进制:x = 22, y = 18, z = 34
计算乘积:22.45 * 10.0=224.50000762939453

実行結果からわかるように、浮動小数点データに整数のみが含まれ、小数が含まれていない場合でも、システムはそれらを自動的に追加します。コンソールに出力する場合は小数点となり、小数点以下の桁はすべて0になります。

ブール型の説明

プログラミングの経験があり、ブール型を理解している場合は、次のチュートリアルはスキップしてください。C 言語の基礎しか持たない読者向けです (C 言語にはブール型はありません)。

C言語では、判定条件が真の場合は1を返し、それ以外の場合は0を返します。例:

#include <stdio.h>
int main(){
  int x = 100>10;
  int y = 100<10;
  printf("100>10 = %d\n", x);
  printf("100<10 = %d\n", y);
  return 0;
}

演算結果:

100>10 = 1
100<10 = 0

しかし、Javaでは異なります。条件が true の場合は true を返し、それ以外の場合は false (ブール型) を返します。例:

public class Demo {
  public static void main(String[] args){
    // 字符型
    boolean a = 100>10;
    boolean b = 100<10;
    System.out.println("100>10 = " + a);
    System.out.println("100<10 = " + b);
     
    if(a){
      System.out.println("100<10是对的");
    }else{
      System.out.println("100<10是错的");
    }
  }
}

演算結果:

100>10 = true
100<10 = false
100<10是对的

実際には、trueは1、falseは0に相当しますが、名前が異なり、別のデータ型になります。

Java のデータ型と変数のより詳細な分析については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。