Java数据类型及类型转换「详解」

一,基本数据类型

Java 中的基本数据类型包括整型、浮点型、字符型和布尔型。

1,整型

Java 中的整型有四种:byte、short、int 和 long。它们的取值范围如下:

数据类型 取值范围
byte -128 ~ 127
short -32768 ~ 32767
int -2147483648 ~ 2147483647
long -9223372036854775808 ~ 9223372036854775807

其中,byte 类型占 8 位,short 类型占 16 位,int 类型占 32 位,long 类型占 64 位。一般情况下,我们使用 int 类型。

2,浮点型

Java 中的浮点型有两种:float 和 double。它们的取值范围如下:

数据类型 取值范围
float 1.4E-45 ~ 3.4028235E38
double 4.9E-324 ~ 1.7976931348623157E308

其中,float 类型占 32 位,double 类型占 64 位。一般情况下,我们使用 double 类型。

3,字符型

Java 中的字符型只有一种:char,它用于存储单个字符。char 类型占 16 位,它的取值范围是 0 ~ 65535。

4,布尔型

Java 中的布尔型只有一种:boolean,它用于存储 true 或 false 值。布尔型只占一位。

二,引用数据类型

Java 中的引用数据类型包括类、数组和接口。

1,类

在 Java 中,类是一种引用数据类型。我们可以使用关键字 class 来创建一个类。例如:

public class MyClass {
    // 类的成员变量和方法
}

2,数组

在 Java 中,数组也是一种引用数据类型。我们可以使用关键字 new 来创建一个数组。例如:

int[] myArray = new int[10];

这段代码创建了一个长度为 10 的整型数组。

3,接口

在 Java 中,接口也是一种引用数据类型。我们可以使用关键字 interface 来创建一个接口。例如:

public interface MyInterface {
    // 接口的方法
}

这段代码创建了一个名为 MyInterface 的接口。

三,变量声明和初始化

在 Java 中,变量必须先声明,然后才能使用。声明变量的语法格式为:

数据类型 变量名;

例如,声明一个 int 类型的变量:

int num;

声明变量后,需要初始化才能使用。初始化变量的语法格式为:

变量名 = 值;

例如,初始化一个 int 类型的变量:

int num = 10;

当然,如果不想初始化变量,Java会赋给给它一个默认值。Java 中的基本数据类型都有默认值,如下表所示:

数据类型 默认值
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
boolean false

四,类型转换

在 Java 中,如果要将一个数据类型转换成另一个数据类型,可以使用类型转换运算。类型转换运算分为两种:隐式类型转换和显式类型转换。

在Java中整型、实型(常量)、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)->int->long->float->double

简单数据类型之间的转换又可以分为:

  • 低级到高级的自动类型转换
  • 高级到低级的强制类型转换
  • 包装类过渡类型能够转换

1,隐式类型转换

如果将一个小类型的变量赋值给一个大类型的变量,Java 会自动进行类型转换,这种转换叫做隐式类型转换。例如:

int num = 10;
double d = num;

在这个例子中,int 类型的变量 num 被赋值给 double 类型的变量 d,Java 会自动将 num 转换成 double 类型。

同样,下面的语句可以在Java中直接通过,但是将double型变量赋值给float变量,不加强转的话会报错:

byte b;
int i=b;
long l=b;
float f=b;
double d=b;

如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如:

  char c='c';
  int i=c;
  System.out.println("output:" i);//output:99

注意:byte、short、int三种类型(平级)都是整型,如果在操作整型数据时,最好统一使用int型。

2,显式类型转换

如果将一个大类型的变量赋值给一个小类型的变量,Java 不会自动进行类型转换,必须使用显式类型转换。例如:

double d = 10.5;
int num = (int) d;

在这个例子中,double 类型的变量 d 被赋值给 int 类型的变量 num,需要使用强制类型转换运算符将 d 转换成 int 类型。

可以预见,这种转换可能会导致溢出或精度的下降。

3,包装类过渡类型转换

在 Java 中,有些数据类型是基本数据类型,例如 int、double 等,而有些数据类型是对象类型,例如 Integer、Double 等。这些对象类型称为包装类,它们是为了让基本数据类型具有对象特性而设计的。在实际编程中,我们经常需要将基本数据类型转换成包装类,或者将包装类转换成基本数据类型。

  • 包装类可以将基本数据类型转换成对象类型,从而可以将基本数据类型作为对象来处理。
  • 包装类提供了一些方法,例如 toString()、valueOf() 等,可以方便地对基本数据类型进行操作。
  • 包装类可以作为泛型参数,从而使泛型可以处理基本数据类型。

在 Java 中,每种基本数据类型都有对应的包装类,如下表所示:

基本数据类型 包装类
boolean Boolean
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Double

3.1基本数据类型和包装类的转换

1⃣️基本数据类型转换成包装类

在 Java 中,可以使用包装类的 valueOf() 方法将基本数据类型转换成包装类。例如:

int num = 10;
Integer i = Integer.valueOf(num);

在这个例子中,int 类型的变量 num 被转换成了 Integer 类型的对象 i。

2⃣️包装类转换成基本数据类型

在 Java 中,可以使用包装类的 xxxValue() 方法将包装类转换成基本数据类型。例如:

Integer i = 10;
int num = i.intValue();

在这个例子中,Integer 类型的对象 i 被转换成了 int 类型的变量 num。

五,类型推断

Java 10 引入了类型推断功能,可以通过 var 关键字推断出变量的类型。例如:

var str = "hello";

在这个例子中,Java 会根据 "hello" 的类型推断出 str 变量的类型为 String。

六,总结

Java 中的变量必须先声明,然后才能使用,变量的类型决定了它能够存储的数据类型。在使用变量之前,需要先初始化。类型转换运算符可以将一个数据类型转换成另一个数据类型,类型转换分为隐式类型转换和显式类型转换。Java 10 引入了类型推断功能,可以使用 var 关键字推断出变量的类型。

以上仅是我个人的一些总结,不足之处希望大家在评论区指正。

猜你喜欢

转载自blog.csdn.net/weixin_56433857/article/details/129900580