Java是一种面向对象的编程语言,数据类型是编程中的重要概念。Java数据类型主要分为两大类:基本数据类型和引用数据类型。
基本数据类型
Java有八种基本数据类型,分别是:byte、short、int、long、float、double、char和boolean。这些基本数据类型都是预定义的,且范围和大小都是固定的。
类型关键字 | 所占字节数 | 取值范围 | |
整数型 | byte(字节类型) | 1 | -27~27或-128~127 |
short(短整型) | 2 | -215~215-1 | |
int(整型) | 4 | -231~231-1 | |
long(长整型) | 8 | -263~263-1 | |
浮点型 | float(单精度) | 4 | 3.4e-038~3.4e+038 |
double(双精度) | 8 | 1.7e-308~1.7e+308 | |
字符型 | char(字符型) | 2 | 0~65535 |
布尔型 | boolean(布尔型) | 1 | true和false |
在java中,编写的整数值默认是int类型,编写的小数值默认就是double类型。
每种基本数据类型的定义和初始化:
public class BasicDataTypesDemo {
public static void main(String[] args) {
// 定义并初始化 byte 类型的变量
byte myByte = 10;
System.out.println("myByte: " + myByte);
// 定义并初始化 short 类型的变量
short myShort = 200;
System.out.println("myShort: " + myShort);
// 定义并初始化 int 类型的变量
int myInt = 1000;
System.out.println("myInt: " + myInt);
// 定义并初始化 long 类型的变量
long myLong = 10000000000L;
System.out.println("myLong: " + myLong);
// 定义并初始化 float 类型的变量
float myFloat = 3.14F;
System.out.println("myFloat: " + myFloat);
// 定义并初始化 double 类型的变量
double myDouble = 3.141592653589793;
System.out.println("myDouble: " + myDouble);
// 定义并初始化 char 类型的变量
char myChar = 'a';
System.out.println("myChar: " + myChar);
// 定义并初始化 boolean 类型的变量
boolean myBoolean = true;
System.out.println("myBoolean: " + myBoolean);
}
}
引用数据类型
引用数据类型是对对象的引用,而不是对象本身。引用数据类型包括类、接口、数组等。
- 类(Class):类是Java面向对象编程的基础,定义了一组具有共同属性和行为的对象。
- 接口(Interface):接口是一种引用类型,是方法的集合,定义了一组方法但没有实现。接口允许类实现接口定义的方法,实现多态性。
- 数组(Array):数组是一种存储相同类型元素的线性数据结构。Java中的数组是对象,因此数组也是引用数据类型。
数据类型转换
自动类型转换:
从取值范围小的类型向取值范围大的类型转换(如:byte,short,char—> int —> long—> float —> double)
强制类型转换:
从取值范围大的类型向取值范围小的类型转换,需要进行强制转换,可能会导致数据丢失或溢出。
格式:目标数据类型 变量=(目标数据类型) 值;
例如:
byte b = (byte)257;
自动装箱和拆箱
Java 5及以后的版本引入了自动装箱和拆箱的概念。
自动装箱:指的是将基本数据类型自动转换为对应的包装类(如Integer、Double等)
自动拆箱:指的是将包装类自动转换为对应的基本数据类型。
基本类型 | byte | short | int | long | float | double | char | boolean |
包装类 | Byte | Short | Integer | Long | Float | Double | Character | Boolean |