总结:
基本数据类型(了解)
整数
byte、short、int、long
浮点数
float、double
字符
char
布尔
boolean
类型转换(了解)
数据范围小的赋值给数据范围大的会自动转换
数据范围大的赋值给数据范围小用括号括起来
大转小会出现精度损失
一、数据类型
1. 计算机存储单元
计算机是可以用来存储数据的,但是无论是内存还是硬盘,计算机存储设备的最小信息单元叫位(bit),我们又称之为“比特位”,通常用小写的字母“b”表示。而计算机中最基本的存储单元叫字节(byte)。
通常用大写字母“B”表示,字节是由连续的8个位(bit)组成。
除了字节外还有一些常用的存储单位,其换算单位如下:
1B(字节) = 8bit(位)
1KB(千字节)= 1024B
1MB (兆) = 1024KB
1GB(吉) = 1024MB
1TB(太) = 1024GB
2. 数据类型分类
Java中的数据必须明确数据类型。
Java的数据类型分为两大类:
基本数据类型:整数、浮点数、字符、布尔
引用数据类型:类、数组、接口
3. 基本数据类型
四类八种基本数据类型:
数据类型
关键字
内存占用
取值范围
整数类型
字节型
byte
1字节
-128 ~ 127
短整型
short
2字节
-32768 ~ 32767
整型
int(默认)
4字节
-2^31^ ~ 2^31^ -1
长整型
long
8字节
-2^63^ ~ 2^63^ -1
浮点类型
单精度浮点型
float
4字节
负数: -3.402823E+38~-1.401298E-45
正数: 1.401298E- 45 ~ 3.402823E+38
双精度浮点型
double(默认)
8字节
负数: -1.797693E+308~-4.9000000E-324
正数:4.9000000E-324 ~ 1.797693E + 308
字符类型
char
2字节
0-65535
布尔类型
boolean
1字节
true,false
说明:
e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。
在java中整数默认是int类型,浮点数默认是double类型。
二、类型转换
在Java中,一些数据类型之间是可以相互转换的。分为两种情况:自动类型转换和强制类型转换。
1. 自动类型转换
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。这种转换方式是自动的,直接书写即可。
例如:
double num = 10; // 将int类型的10直接赋值给double类型
System.out.println(num); // 输出10.0
2. 强制类型转换
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。
强制类型转换格式
目标数据类型 变量名 = (目标数据类型)值或者变量;
例如:
double num1 = 5.5;// 定义一个double类型的变量num1
int num2 = (int) num1; // 将double类型的num1强制转换为int类型
System.out.println(num2); // 输出5(小数位直接舍弃)
说明:
char类型的数据转换为int类型是按照码表中对应的int值进行计算的。比如在ASCII码表中,'a'对应97。
int a = 'a';
System.out.println(a); // 将输出97
整数默认是int类型,byte、short和char类型数据参与运算均会自动转换为int类型。
byte b1 = 10;
byte b2 = 20;
byte b3 = b1 + b2;
// 第三行代码会报错,b1和b2会自动转换为int类型,计算结果为int,int赋值给byte需要强制类型转换。
// 修改为:
int num = b1 + b2;
// 或者:
byte b3 = (byte) (b1 + b2);
boolean类型不能与其他基本数据类型相互转换。