一,基本数据类型
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 关键字推断出变量的类型。
以上仅是我个人的一些总结,不足之处希望大家在评论区指正。