zhcn 编程语言 Java 非公開: Java数据类型:基本数据类型和参考数据类型

Java数据类型:基本数据类型和参考数据类型

前面我们提到Java语言是强类型语言,编译器存储在变量中的值都是适当的数据类型。要学习编程语言,就需要了解数据类型,在本文中我们将详细介绍Java数据类型。

Java 语言支持两种数据类型:原始类型和引用类型。

Java基本数据类型

基本数据类型包括 boolean、float、char、byte、short、int 和 long、double(双精度)。 – 精度浮点类型),共有八种类型(具体见表1)。

表1 Java基本数据类型
型号名称关键词使用的内存范围
字节字节1字节-128~127
短整数短的2字节-32768~32767
整数整数4字节-2147483648~2147483647
长整型长的8字节-9223372036854775808L~9223372036854775807L
单精度浮点漂浮4字节±3.4E+38F(6至7位有效数字)
双精度浮点数双倍的8字节+/-1.8E+308(15位有效数字)
字符类型字符2字节ISO 单字符集
布尔值布尔值1字节对或错

提示:char代表字符类型。事实上,字符类型也是整数类型,相当于无符号整数类型。

这个特性有助于提高Java程序的可移植性,因为所有基本数据类型的大小(占用字节)都是明确指定的,并且在不同平台上不会改变。

Java 是一种类型语言,所有变量都必须具有明确定义的数据类型才能使用。 Java 中的每个变量、表达式和值都必须有自己的类型;不存在“无类型”变量之类的东西。

基本数据类型可分为四种类型:整型(包括byte、short、int、long)、浮点型(包括float、double)、布尔型、字符型(char)。下面分别介绍这四种类型。各主要分类数据类型。

1) 整数类型

Java 定义了四种整型变量:byte、short、int 和 long。这些是正符号值或负符号值。具体步骤如表2所示。

表2 Java整型变量说明
姓名解释
字节类型(字节)字节类型是最小的整数类型。当用户使用来自网络或文件的数据流,或者使用可能与 Java 的其他内置类型不直接兼容的原始二进制数据时,此类型非常有用。
短整数这种类型很少使用,因为short类型将数据的存储限制为先高字节后低字节,这在某些机器上可能会导致错误。
整数(int) int 类型是最常用的整数类型。
长整型由于大整数在大型程序中经常出现,因此当范围超出int类型可以表示的范围时,应该使用long类型。

实施例1

下面的代码创建一个Java程序,在main()方法中声明各种整型变量并赋予它们初始值,最后添加变量并打印结果。

 public static void main(String[] args) {
    byte a = 20; // 20を初期値として持つbyte型変数を宣言する
    short b = 10; // 10を初期値として持つshort型変数を宣言する
    int c = 30; // 30を初期値として持つint型変数を宣言する
    long d = 40; // 40を初期値として持つlong型変数を宣言する
    long sum = a + b + c + d; // a,b,c,dの合計をlong型の変数sumに代入する
    System.out.println("20+10+30+40=" + sum); // 20+10+30+40の計算結果をコンソールに出力する
} 

本例中按顺序定义了byte类型、short类型、int类型、long类型四个变量并赋值初始值,然后定义了一个名为sum的long类型变量。 sum变量的值是前四个变量的和,最后打印sum变量的值,也就是相加后的结果。

提示:Byte、short、int 和 long 都是整数类型,因此您可以使用 + 将字符串添加在一起,而不是连接它们。

2)浮点类型

浮点类型是一种带有小数部分的数据类型,也称为实数类型浮点数据包括单精度浮点(float)和双精度浮点(double),它们表示有小数精度要求的数字。

单精度浮点类型(float)和双精度浮点类型(double)的区别主要是占用的内存大小;float类型占用4字节内存空间,double类型占用8字节内存空间。天空。双精度类型double比单精度类型float具有更高的精度和更宽的表示范围。

Java 的默认浮点类型是 double。例如,11.11 和 1.2345 都是双精度值。如果要写入float类型值,则需要在其后面添加字母f或F。例如,11.11f 和 1.2345F 是浮点常量。

例如,您可以声明一个 float 类型的变量并为其分配初始值,如下所示:

float price = 12.2f; 

您还可以声明 double 类型的变量并使用以下方法之一为其分配初始值:

double price = 12.254d; 

double price = 12.254; 

注意:要使值被视为真正的浮点数,它必须以 f(或 F)后缀结尾。否则,它被视为双精度值。对于双精度值,d(或 D)退避是可选的。

实施例2

如果A到B的距离是2348.4米,那么A和B之间需要行驶多少米?

由于路径数据是浮点类型,我们将定义一个double类型变量来存储单向距离,一个int类型变量来存储时间。另外,计算出来的值是float类型,所以你可以定义一个float类型的变量来存储总距离。

代码将如下所示。

 public static void main(String[] args) {
    double lutu = 2348.4; // 変数の定義:単方向距離を保存するための double 型の変数
    int num = 2; // 変数の定義:回数を保存するための int 型の変数
    float total = (float) (lutu * 2); // 変数の定義:合計距離を保存するための float 型の変数
    System.out.println("Total:" + total + " 米"); 
} 

在这个例子中,首先定义了一个名为 lutu 的 double 类型的变量来存储一个方向的距离,然后定义了一个名为 num 的 int 类型的变量来存储经过的次数,最后定义了一个 float 类型的变量。 ,使用一个名为total的变量来存储总距离。

实际上,double型数据与int型数据相乘的结果类型是double,但是单向距离的乘法次数是单精度浮点数(float型),所以总距离是float型。可以转换为数据。

3)布尔类型

布尔类型用于对两个值进行逻辑运算并确定结果是“真”还是“假”。 Java中使用保留字true和false来表示逻辑运算中的“真”和“假”。因此,布尔变量或表达式只能具有两个值之一:true 和 false。

在Java语言中,布尔值不能转换为任何数据类型,真常量不等于1,假常量不等于0。这两个值只能分配给声明为布尔值或在布尔表达式中使用的变量。

例如,您可以使用以下语句声明布尔变量:

 boolean isable;    // boolean型の変数isableを宣言する
boolean b = false;    // boolean型の変数bを宣言し、falseを初期値として代入する 

4) 字符类型

Java语言中的字符类型(char)以双字节Unicode编码表示,支持世界各地的所有语言,并且可以使用单引号字符或整数为char类型赋值。

常见的计算机语言使用ASCII编码,其中一个字节代表一个字符。 ASCII 码是 Unicode 码的子集,当使用 Unicode 表示 ASCII 码时,其高字节为 0(前 255 个字符)。

Unicode 字符通常以十六进制表示。例如,“\u0000”~“\u00ff”表示 ASCII 代码集。 “\u”表示转义字符,用于指示接下来的四个十六进制数字是 Unicode 代码。

字符变量的类型为 char,用于表示单个字符。例如:

 char letter = 'D';
char numChar = '5'; 

第一条语句将字母 D 赋给字符变量 Letter,第二条语句将数字 5 赋给字符变量 numChar。

实施例3

下面的代码在main()方法中定义了两个字符类型的变量,将它们对应的ASCII(Unicode)值相加,最后打印相加的结果。

 public static void main(String[] args) {
    char a = 'A';    // A の ASCII 値は65に対応し、char型のa変数に値を設定する
    char b = 'B';    // B の ASCII 値は66に対応し、char型のb変数に値を設定する
    System.out.println("AのASCII値とBのASCII値を加算した結果は:" + (a + b) + "です");
} 

在此程序中,变量首先被赋予值“A”。这相当于 ASCII(和 Unicode)65。接下来,定义 char 类型的变量 b 并为其赋值“B”。 ASCII(和 Unicode)字母 B 的对应值为 66。因此,相加后的结果是131。

提示:字符通常表示为十六进制数字,范围从“\uOOOO”到“\uFFFF”,或 0 到 65535。 \uOOOO 和 \uFFFF 中的 u 告诉编译器用 2 个字节(16 位)的字符信息来表示 Unicode 字符。

Java 参考数据类型

引用数据类型基于基本数据类型(例如数组、类和接口)构建。参考数据类型由用户定义以限制其他数据类型。此外,Java 语言不支持 C++ 指针类型、结构类型、联合类型和枚举类型。

引用类型还有一个特殊的 null 类型。所谓引用数据的类型就是对对象的引用,对象有两种类型:实例和数组。事实上,引用类型变量就是一个指针,但Java语言中不再使用指针这个术语。

null 类型是一种没有名称的 null 值类型。由于 null 类型没有名称,因此无法声明 null 类型的变量或将其转换为 null 类型。

空引用 (null) 是 null 类型变量的唯一值。空引用 (null) 可以转换为任何引用类型。

在实际开发中,程序员可以忽略null类型,假设它只是引用类型的特殊文字。

注意:不要将空值赋给基本数据类型的变量,因为空引用(null)只能转换为引用类型,而不能转换为基本类型。

通俗易懂的讲解《Java数据类型:基本数据类型和参考数据类型》!您必须观看的最佳 2 个视频

【Java技術者必見】プリミティブ型、参照型、Stringの違いを分かりやすく解説
https://www.youtube.com/watch?v=Im_rv7D_QSs&pp=ygVBIEphdmEg44OH44O844K_5Z6LOiDln7rmnKzjg4fjg7zjgr_lnovjgajlj4Lnhafjg4fjg7zjgr_lnosmaGw9SkE%3D
Java入門:基本データ型について|lynda.com 日本版
https://www.youtube.com/watch?v=HHXaF-LqpmM&pp=ygVBIEphdmEg44OH44O844K_5Z6LOiDln7rmnKzjg4fjg7zjgr_lnovjgajlj4Lnhafjg4fjg7zjgr_lnosmaGw9SkE%3D
前面我们提到Java语言是强类型语言,编译器存储在变量中的值都是适当的数据类型。要学习编程语言,就需要了解数据类型,在本文中我们将详细介绍Java数据类型。

Java 语言支持两种数据类型:原始类型和引用类型。

Java基本数据类型

基本数据类型包括 boolean、float、char、byte、short、int 和 long、double(双精度)。 – 精度浮点类型),共有八种类型(具体见表1)。

表1 Java基本数据类型
型号名称关键词使用的内存范围
字节字节1字节-128~127
短整数短的2字节-32768~32767
整数整数4字节-2147483648~2147483647
长整型长的8字节-9223372036854775808L~9223372036854775807L
单精度浮点漂浮4字节±3.4E+38F(6至7位有效数字)
双精度浮点数双倍的8字节+/-1.8E+308(15位有效数字)
字符类型字符2字节ISO 单字符集
布尔值布尔值1字节对或错

提示:char代表字符类型。事实上,字符类型也是整数类型,相当于无符号整数类型。

这个特性有助于提高Java程序的可移植性,因为所有基本数据类型的大小(占用字节)都是明确指定的,并且在不同平台上不会改变。

Java 是一种类型语言,所有变量都必须具有明确定义的数据类型才能使用。 Java 中的每个变量、表达式和值都必须有自己的类型;不存在“无类型”变量之类的东西。

基本数据类型可分为四种类型:整型(包括byte、short、int、long)、浮点型(包括float、double)、布尔型、字符型(char)。下面分别介绍这四种类型。各主要分类数据类型。

1) 整数类型

Java 定义了四种整型变量:byte、short、int 和 long。这些是正符号值或负符号值。具体步骤如表2所示。

表2 Java整型变量说明
姓名解释
字节类型(字节)字节类型是最小的整数类型。当用户使用来自网络或文件的数据流,或者使用可能与 Java 的其他内置类型不直接兼容的原始二进制数据时,此类型非常有用。
短整数这种类型很少使用,因为short类型将数据的存储限制为先高字节后低字节,这在某些机器上可能会导致错误。
整数(int) int 类型是最常用的整数类型。
长整型由于大整数在大型程序中经常出现,因此当范围超出int类型可以表示的范围时,应该使用long类型。

实施例1

下面的代码创建一个Java程序,在main()方法中声明各种整型变量并赋予它们初始值,最后添加变量并打印结果。

 public static void main(String[] args) {
    byte a = 20; // 20を初期値として持つbyte型変数を宣言する
    short b = 10; // 10を初期値として持つshort型変数を宣言する
    int c = 30; // 30を初期値として持つint型変数を宣言する
    long d = 40; // 40を初期値として持つlong型変数を宣言する
    long sum = a + b + c + d; // a,b,c,dの合計をlong型の変数sumに代入する
    System.out.println("20+10+30+40=" + sum); // 20+10+30+40の計算結果をコンソールに出力する
} 

本例中按顺序定义了byte类型、short类型、int类型、long类型四个变量并赋值初始值,然后定义了一个名为sum的long类型变量。 sum变量的值是前四个变量的和,最后打印sum变量的值,也就是相加后的结果。

提示:Byte、short、int 和 long 都是整数类型,因此您可以使用 + 将字符串添加在一起,而不是连接它们。

2)浮点类型

浮点类型是一种带有小数部分的数据类型,也称为实数类型浮点数据包括单精度浮点(float)和双精度浮点(double),它们表示有小数精度要求的数字。

单精度浮点类型(float)和双精度浮点类型(double)的区别主要是占用的内存大小;float类型占用4字节内存空间,double类型占用8字节内存空间。天空。双精度类型double比单精度类型float具有更高的精度和更宽的表示范围。

Java 的默认浮点类型是 double。例如,11.11 和 1.2345 都是双精度值。如果要写入float类型值,则需要在其后面添加字母f或F。例如,11.11f 和 1.2345F 是浮点常量。

例如,您可以声明一个 float 类型的变量并为其分配初始值,如下所示:

float price = 12.2f; 

您还可以声明 double 类型的变量并使用以下方法之一为其分配初始值:

double price = 12.254d; 

double price = 12.254; 

注意:要使值被视为真正的浮点数,它必须以 f(或 F)后缀结尾。否则,它被视为双精度值。对于双精度值,d(或 D)退避是可选的。

实施例2

如果A到B的距离是2348.4米,那么A和B之间需要行驶多少米?

由于路径数据是浮点类型,我们将定义一个double类型变量来存储单向距离,一个int类型变量来存储时间。另外,计算出来的值是float类型,所以你可以定义一个float类型的变量来存储总距离。

代码将如下所示。

 public static void main(String[] args) {
    double lutu = 2348.4; // 変数の定義:単方向距離を保存するための double 型の変数
    int num = 2; // 変数の定義:回数を保存するための int 型の変数
    float total = (float) (lutu * 2); // 変数の定義:合計距離を保存するための float 型の変数
    System.out.println("Total:" + total + " 米"); 
} 

在这个例子中,首先定义了一个名为 lutu 的 double 类型的变量来存储一个方向的距离,然后定义了一个名为 num 的 int 类型的变量来存储经过的次数,最后定义了一个 float 类型的变量。 ,使用一个名为total的变量来存储总距离。

实际上,double型数据与int型数据相乘的结果类型是double,但是单向距离的乘法次数是单精度浮点数(float型),所以总距离是float型。可以转换为数据。

3)布尔类型

布尔类型用于对两个值进行逻辑运算并确定结果是“真”还是“假”。 Java中使用保留字true和false来表示逻辑运算中的“真”和“假”。因此,布尔变量或表达式只能具有两个值之一:true 和 false。

在Java语言中,布尔值不能转换为任何数据类型,真常量不等于1,假常量不等于0。这两个值只能分配给声明为布尔值或在布尔表达式中使用的变量。

例如,您可以使用以下语句声明布尔变量:

 boolean isable;    // boolean型の変数isableを宣言する
boolean b = false;    // boolean型の変数bを宣言し、falseを初期値として代入する 

4) 字符类型

Java语言中的字符类型(char)以双字节Unicode编码表示,支持世界各地的所有语言,并且可以使用单引号字符或整数为char类型赋值。

常见的计算机语言使用ASCII编码,其中一个字节代表一个字符。 ASCII 码是 Unicode 码的子集,当使用 Unicode 表示 ASCII 码时,其高字节为 0(前 255 个字符)。

Unicode 字符通常以十六进制表示。例如,“\u0000”~“\u00ff”表示 ASCII 代码集。 “\u”表示转义字符,用于指示接下来的四个十六进制数字是 Unicode 代码。

字符变量的类型为 char,用于表示单个字符。例如:

 char letter = 'D';
char numChar = '5'; 

第一条语句将字母 D 赋给字符变量 Letter,第二条语句将数字 5 赋给字符变量 numChar。

实施例3

下面的代码在main()方法中定义了两个字符类型的变量,将它们对应的ASCII(Unicode)值相加,最后打印相加的结果。

 public static void main(String[] args) {
    char a = 'A';    // A の ASCII 値は65に対応し、char型のa変数に値を設定する
    char b = 'B';    // B の ASCII 値は66に対応し、char型のb変数に値を設定する
    System.out.println("AのASCII値とBのASCII値を加算した結果は:" + (a + b) + "です");
} 

在此程序中,变量首先被赋予值“A”。这相当于 ASCII(和 Unicode)65。接下来,定义 char 类型的变量 b 并为其赋值“B”。 ASCII(和 Unicode)字母 B 的对应值为 66。因此,相加后的结果是131。

提示:字符通常表示为十六进制数字,范围从“\uOOOO”到“\uFFFF”,或 0 到 65535。 \uOOOO 和 \uFFFF 中的 u 告诉编译器用 2 个字节(16 位)的字符信息来表示 Unicode 字符。

Java 参考数据类型

引用数据类型基于基本数据类型(例如数组、类和接口)构建。参考数据类型由用户定义以限制其他数据类型。此外,Java 语言不支持 C++ 指针类型、结构类型、联合类型和枚举类型。

引用类型还有一个特殊的 null 类型。所谓引用数据的类型就是对对象的引用,对象有两种类型:实例和数组。事实上,引用类型变量就是一个指针,但Java语言中不再使用指针这个术语。

null 类型是一种没有名称的 null 值类型。由于 null 类型没有名称,因此无法声明 null 类型的变量或将其转换为 null 类型。

空引用 (null) 是 null 类型变量的唯一值。空引用 (null) 可以转换为任何引用类型。

在实际开发中,程序员可以忽略null类型,假设它只是引用类型的特殊文字。

注意:不要将空值赋给基本数据类型的变量,因为空引用(null)只能转换为引用类型,而不能转换为基本类型。

通俗易懂的讲解《Java数据类型:基本数据类型和参考数据类型》!您必须观看的最佳 2 个视频

【Java技術者必見】プリミティブ型、参照型、Stringの違いを分かりやすく解説
https://www.youtube.com/watch?v=Im_rv7D_QSs&pp=ygVBIEphdmEg44OH44O844K_5Z6LOiDln7rmnKzjg4fjg7zjgr_lnovjgajlj4Lnhafjg4fjg7zjgr_lnosmaGw9SkE%3D
Java入門:基本データ型について|lynda.com 日本版
https://www.youtube.com/watch?v=HHXaF-LqpmM&pp=ygVBIEphdmEg44OH44O844K_5Z6LOiDln7rmnKzjg4fjg7zjgr_lnovjgajlj4Lnhafjg4fjg7zjgr_lnosmaGw9SkE%3D