整数的四种声明类型
它们分别是,byte,short,int,long,这四种类型所占用的空间是不同的
byte是占用1个字节,它的取值范围是 -128~127,
short是占用2个字节,他的取值范围是-32768~32767,
int是占用4个字节,他的取值范围是-2147483648~2147483647,
long是占用8个字节,他的取值范围是-9223372036854775808-9223372036854775807
我们前两章说过内存就像房间,数据类型就像不同的房间我们可以将这四种类型当做四种不同的房间,占用字节越多的房间就能住下越多的人
创建整型变量
例如 byte型变量
byte a = 12;
byte c = 12 , b=-13;复制代码
short型变量
short a = 156;
short c = 156,b = -213;复制代码
int型变量
int a = 156;
int c = 156,b = -123;复制代码
long型变量,这里需要注意声明long类型变量需要在后面加上大写或者小写的 L 否则可能会造成精度丢失
long a = 123L;
long c = 123L,b = 25L;复制代码
整数的默认类型
因为在JAVA中整数是有默认类型的,这个默认类型是 int 型变量
比如这里有一个计算公式 123+456计算结果的值是int类型变量,
常见的错误,如果声明long类型并没有给它加上L后缀是不会报错的,例如
long a=123456789 * 987654321;复制代码
这时就会变成JAVA中默认的数据类型 int 型 为什么会这样我将会在后面为小伙伴们解释 然而这种声明方法是有问题的
这里我们可以看出,计算的结果是不正确的,因为他并没有加L 所以默认的值是int值,但是这个计算结果已经超出了int的取值范围,就会造成精度丢失,
加上L后缀后
这里我们可以看出所计算的值是正确的,结果就是如果不给long类型的变量加上L后缀就会可能造成精度丢失,所以long类型赋值必须加上L后缀
使用不同进制的整数赋值
10进制,也是我们生活中常用的进制,也是java程序中常用的 我们常见的例子都是使用10进制进行计算的,例如
int a = 33;复制代码
8进制,以0开头,在java编译器中将会解析成8进制数字,例如
int b = 033;复制代码
16进制,以0x或者0X开头,在java编译器中将会解析成16进制数字,例如
int c = 0x33;复制代码
下面就是三种进制赋值的效果
第一个是10进制33结果是33,第二个是8进制033结果是27,第三个是16进制0x33结果是51,这个就是不同进制给不同整型赋值的方法