|
1 什么是Java 基本数据类型
前面讲过变量,程序中的变量是一个存储单元,用于存储程序中的数据。而今天讲的数据类型是用来约定变量存储空间的大小。约定变量存储空间大小的目的是根据数据大小选择合适的存储空间,将合适的数据存储到相应大小的存储空间可以避免计算机资源浪费,提高软件运算性能。
Java中基本数据类型一共有4类8种:
2 整数类型
Java整数类型一共有4种, 用于存储各个范围的整数:
整数类型只能存储整数,不能存储小数,小数需要采用float或者double类型存储。
2.1 byte 类型
byte类型也称为字节类型, 是Java中最小数据类型,其内部是8位2进制数字。有效数值范围:-128~127。由于有效范围很小,其用途也是很有限。一般用来表示内存中或者文件中的最小存储单元。
提示:2进制知识在后续的一个独立课程单元中讲解。
案例:
byte max = Byte.MAX_VALUE; //最大值
byte min = Byte.MIN_VALUE; //最小值
System.out.println(max);
System.out.println(min);
byte b = 120;
System.out.println(b);
byte b1 = 128; //编译错误,不能超过 byte 范围
Byte 是Java提供的包装类API, 在API课程阶段会详细讲解其功能。
2.2 short 类型
short类型是Java中存储整数数据范围较小的数据类型,内部是一个16位2进制数字,其有效范围-32768~32767,由于其范围小,在程序中很少使用。Java的设计者为了保持与传统C语言兼容而设计了short数据类型。
除了考试时候能够遇到short类型,实际开发中极少使用short类型。
由于short占有16位2进制数,其长度恰巧数byte类型2进制数的两倍,也称一个short数据占有2字节
案例:
short max = Short.MAX_VALUE;
short min = Short.MIN_VALUE;
System.out.println(max);
System.out.println(min);
short s = 12000;
System.out.println(s);
short s1 = 32777; //编译错误,32777 超过short范围
与Byte类似Short也是包装类,在后期课程中详细讲解Short包装类的用途
2.3 int 类型
int类型是Java中最常用的整数类型,在计算机内部是一个32位2进制数字,范围是-2147483648 ~2147483647。这个范围非常实用,可以涵盖大多数整数用途,所以int用途最多最广。
因为int在内存中的2进制数字是32位数,其2进制位长度是byte类型长度的4倍,也称int在内存中占有4个字节。
整数直接量
int整数使用事项:
l直接给出的整数常数称为整数“直接量”,Java所有整数“直接量”都是int类型。“整数直接量”不能超过int范围。
?默认的整数直接量是 10进制 直接量,数字:0123456789
?使用0x开头的直接量是 16进制 直接量,数字:0123456789abcdef
?使用0开头的直接量是 8进制 直接量,数字:01234567
?使用0b开头的直接量是 2进制 直接量,数字:01
l整数不能存储小数。
l整数计算结果也是整数,并且除法结果是整除结果
l整数计算时如果超过整数范围会自动溢出,溢出时候不会报错误。
?要了解整数范围,预估计算结果,如果可能溢出就更换为long类型计算。
整数“直接量”也称为整数“字面量”,都是指直接给出的整数常数。
16进制、8进制、2进制和10进制的关系,在后面2进制课程中专门讲述。
案例:
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
System.out.println(max);
System.out.println(min);
int a = 1000000; //10进制
int b = 0xef12ab; //16进制
int c = 0123; //8进制
int d = 0b1110111 //2进制
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
int e = 0128; //超过范围 0~7
int f = 0x13efk;//超过范围 0~9 a~f
int g = 0b12 //超过范围
//int 类型除法计算结果是整除结果
int n = 7/2;
System.out.println(n);
//int 计算时候超过范围会溢出
int m = max + 1; //溢出为最小值
System.out.println(m);
最大值加1溢出为最小值的原理会在2进制课程中讲解。