文章目录
1. 基本类型
Java 语言提供了 8 种基本数据类型,分别用于存放:
- 整数类型
- 浮点类型
- 字符类型
- 布尔类型
关键字 | 字节(二进制位) | 类型名称 |
---|---|---|
byte | 1 字节(8 位) | 字节型 |
short | 2 字节 (16 位) | 短整型 |
int | 4 字节(32 位) | 整型 |
long | 8 字节 (64 位) | 长整型 |
float | 4 字节(32 位) | 单精度浮点类型 |
double | 8 字节(64 位) | 双精度浮点类型 |
char | 2 字节(16 位) | 字符型 |
boolean | 1 字节(8 位) | – |
1.1. 整数类型
Java 为整数类型提供 4 种基本数据类型,它们分别是:
- byte,范围:- 27 ~ 27 - 1
- short,范围: - 215 ~ 215 - 1
- int,范围:- 231 ~ 231 - 1
- long,范围:- 263 ~ 263 - 1
byte、short、int 和 long,都是表示整数的类型,只是表示的数范围不同。
1.2. 浮点类型
Java 为浮点类型提供 2 种基本数据类型,它们分别是:
- float,实数,
- double ,实数,表示数的精度是 float 表示精度的两倍
1.3. 字符类型
- char,字符,事实上是一个 16 位无符号整数,这个值是对应字符的编码
Java 中采用 Unicode 字符集编码。Unicode 是世界上通用的定长字符集,所有的字符都是 16 位。
1.4. 布尔类型
- boolean,用于逻辑运算,表示关系运算的结果,只能取 true 或者 false 两个值。
true 表示条件成立,false 表示条件不成立。
1.5. 类型之间的转换
不同的基本类型之间可以相互转换:
- 自动类型转换(隐式类型转换)
- 强制类型转换
类型转换并不会改变变量的原有类型。
1.5.1. 自动类型转换
从小类型可以转换到大类型。
类型的大小关系如下图所示:
1.5.2. 强制类型转换
语法:
//语法: (需要转换成的类型) 需要转换的变量
int score = 100;
byte grade = (byte)score;
强制类型转换可能会存在精度损失或溢出。
boolean 不允许类型转换。
2. 类类型
使用 class 关键字定义的类型,都是类类型。
2.1. 预定义类
jdk 中自带的类,可以直接使用。
如:常用的 Date、Math、String、Integer 等
returnValueType functionName(argumentsType arguments)
{
double myPI = Math.PI;
String name = "Alan";
...
}
2.2. 自定义类
用户使用 class 关键字定义的类型。
[public] class YourClassName [extends BaseClassName, or implements InterfaceName]
{
...
}
注意:[ ] 中的内容可选,根据情况决定是否保留。
3. 示例
public class BaseDataType
{
public static void main(String[] args)
{
byte rmbNominalValue = 100;
short grade = 150;
int studentsNumber = 5000;
long millisecondsPerHour = 60 * 60 * 1000;
float coordinate = 0.5f;
double pi = 3.14159;
char surname = '陈';
boolean man = true;
System.out.println("byte type: " + rmbNominalValue);
System.out.println("short type: " + grade);
System.out.println("int type: " + studentsNumber);
System.out.println("long type: " + millisecondsPerHour);
System.out.println("float type: " + coordinate);
System.out.println("double type: " + pi);
System.out.println("char type: " + surname);
System.out.println("boolean type: " + man);
}
}
结果:
byte type: 100
short type: 150
int type: 5000
long type: 3600000
float type: 0.5
double type: 3.14159
char type: 陈
boolean type: true