基本的数据类型
1. 整形
byte 字节 ,内存中占8位,范围-128(-2^-7) ~ 127(2^7-1)
short 短整形,2个字节, 内存16位,范围(-2^15) ~ (-2^15-1)
int 整形,4个字节,内存32位,范围(-2^15) ~ (2^15-1)
long 长整型,8个字节,内存64位,范围(-2^31) ~ (2^31-1),长整型后面要加上L,如99999999L,否则计算机会将他当成32位的来使用。
- 注意:
当大类型转换成小类型数字是,会产生溢出的可能,从而导致数据错误
byte a;
long b = 9999999L;
a = b;
//这样机会导致溢出,原理:计算机将b转换出二进制后再给a赋值,a只有4位,并不能完全的接受b的二进制数
2.字符型
java语言使用的是16位的Unicode字符编码,支持世界上所有的编码方式,范围是(’\u0000’ ~ ‘\uFFFF’)其中前256个(’\u0000’ ~ ‘\u00FF’)与ASII码完全相同
由于计算机底层保存字符时,实际上是保存该字符的对应编号。因此char类型可以直接作为整形来使用。
char str = 's';
System.out.println(str>35);
3.浮点型
double 8位字节,64位
float 4位字节,32位,如果希望将一个数,当做float类型后面需要添加上f或F
4.布尔类型
boolean数值只能是tru、false
基本数据类型转换
1.1自动类型转换
java所有的数值类型变量可以相互转换,如果系统将某种基本类型的值直接赋值给另一种基本类型的变量,则这种方式被称为自动类型转换。
- 当小类型的值转换为大类型的值时不需要考虑溢出问题,当大类型值转换成小类型值要考虑溢出问题
byte min;
int max = 999999;
min = (byte) max;
//结果输出66,已经溢出了
System.out.println(min);
byte 是8位的二进制,int 是32位的二进制。byte只能去int的前8位二进制,所以得到66!
1.2强制类转换
当进行强制类型转换时:大类型转换为小类型时,需要注意溢出的问题.
int value = 520;
byte b = (byte)value;
//打印结果: 8
System.out.println(b);
结果溢出。