Java数据类型介绍
本章主要内容
- 数据类型分类
- 基本数据类型
数据类型分类
Java语言是强类型(strongly typed)语言,强类型包含两方面的含义:
- 所有的变量必须先声明、后使用。
- 指定类型的变量只能接受类型与之匹配的值。
在了解数据类型前先弄懂两个问题:
什么是变量?变量有什么用?
编程的本质,就是对内存中的数据的访问和修改。程序所用的数据都会保存在内存中,程序员需要一种机制来访问或修改内存中的数据。这种机制就是 变量。每个变量都代表某一小块内存,而且变量是有名字的,程序对变量赋值, 实际上就是把数据装入该变量所代表的内存区的过程;
程序读取变量的值, 实际上就是从该变量所代表的内存区中取值的过程。 变量相当于一个有名称的容器,该容器用于装各种不同类型的数据。
Java语言支持的类型分为两种: 基本类型和 引用类型。
基本类型包括Boolean类型和数值类型。数值类型有整数类型和浮点类型。
整数类型包括: byte、 short、 int、 long、 char
浮点类型包括: float和 double
注意:char代表字符型,实际上字符型也是一种 整数类型,相当于 无符号整数类型。
引用类型包括 类、接口、数组类型,还有一种特殊的 null类型。
引用类型就是对一个对象的引用,对象包括实例和数组两种。实际上,引用类型变量就是一个指针。
数据基本类型

Java中只包含这八种基本类型, 字符串不是基本数据类型,字符串是一个类,即为一个引用数据类型。
整型
int 是最常用的整数类型,因此直接给出一个整数值默认就是int类型。
如果直接将一个较小的整数值(在byte或short类型的表数范围内)赋给一个byte或short变量系统会自动把这个整数值当成byte/short类型来处理。但是使用一个很大的整数,Java不会把它当成long类型处理。
|
|
字符型
字符型值有三种表现形式
- 通过单个字符指定字符型值,如’A’, ‘1’。
- 通过转义字符表示特殊字符型值,如’\n’、 ‘\t’。
- 直接用Unicode值来表示字符型值’\uXXXX’, 其中XXXX代表一个十六进制的整数。

什么是字符集?
给所有字符的编号组成综合。早期只要一个字节(8位)即可支持256个字符编号,就是ASCII字符集。后来又为所有的书面语言字符进行统一编号,使用2个字节(16位)支持65536个字符,这就是Unicode字符集。
由于计算机底层保存字符时, 实际保存该字符对应的编号,因此char类型的值可直接作为整形值来使用,它相当于一个16位无符号整数,范围是0~65535。可以参与数学运算。
用法
|
|
浮点型
浮点型有两种: float、double
它们有固定的表数范围和字段长度,字段长度和表数范围与机器无关,遵循IEEE754标准。采用 二进制数据的 科学计数法来表示浮点数。
float型
单精度浮点数,占4字节、32位
第1位是符号位,接下来8为表示指数,在接下来23为表示尾数
double型
双精度浮点数,占8字节、64位
第1位是符号位,接下来11为表示指数,在接下来52为表示尾数
十进制形式:5.22、52.0 (必须包含一个小数点,否则会被当成int类型处理)
科学计数法: 5.2e2 或 5.2E2 (即5.2*10^2)
Java中浮点类型默认为double型,如果希望把一个浮点类型值当做float型来处理应在这个浮点类型值后紧跟f或F。
Java中有三个特殊的浮点数值: 正无穷大(POSITIVE_INFINITY)、负无穷大(NEGATIVE_INFINITY)、非数(NaN)。
正无穷大和正无穷大相等、负无穷大和负无穷大相等、NaN和谁都不相等(包括和NaN)。 只有浮点数除0才可以得到正负无穷大,因为Java会自动把浮点数运算的0当成0.0来处理,如果一个整数除以0,则会抛出异常:ArithmeticException:/by zero
数值中使用下划线
可以在任意数值中自由的使用下划线,通过下划线可以更直观的分辨数值中包含多少位。如:
|
|
布尔型
布尔型只有一个Boolean类型,用于表示逻辑上的“真”或“假”。值只能是 TRUE或 FALSE。其他的基本数据类型也不能转化成Boolean类型。
布尔类型主要用于流程控制
- if条件控制语句
- while循环控制语句
- do循环控制语句
- for循环控制语句
布尔类型的变量还可用在三目运算符(?:)中。