/*
关于Java当中的整数型:
数据类型 占用空间大小 默认值 取值范围
----------------------------------------------------------------------------
byte 1 0 [-127~128]
short 2 0 [-32768~32767]
int 4 0 [-2147483648~2147483647]
long 8 0L
1、java语言当中的“整数型字面值”被默认当作int类型来处理。要让这个“整数型字面值”被当作long类型来处理的话,
需要在 整数型字面值 后面添加l或者L,建议使用大写L
2、java中的整数型字面值有三种表示方式:
第一种:十进制【是一种缺省默认的方式】
第二种:八进制【编写八进制整数型字面值时要以0开头】
第三种:十六进制【编写十六进制的整数型字面值的时候要以0x开头】
3、
*/
public class DataTypeTest04{
public static void main(String[] args){
int a = 10;
int b = 010; //八进制
int c = 0x10; //十六进制
System.out.println(a); //10
System.out.println(b); //8
System.out.println(c); //16
System.out.println(a+b+c); //34
//123这个整数型字面值是int类型
//i 变量声明的时候也是int类型
//int类型的123赋值给int类型的变量i,不存在类型的转换
int i = 123;
System.out.println(i);
//456整数型字面值是int类型
//x 变量声明的时候是long类型
//int类型的字面值赋值给long类型的变量x,存在类型转换
//小类型转换大类型可以自动转换
long x = 456;
System.out.println(x);
long y = 2147483647;
System.out.println(y);
//long z = 2147483648;//超出int类型范围报错
//解决错误
long z = 2147483648L;//数字后面加上L,一开始就当作long类型,也就不超long类型范围,也不存在类型转换。
System.out.println(z);
long l = 100L;
//int m = l; // 大容量直接赋值给小容量会报错
//大容量赋值给小容量需要进行强制类型转换
//加上强制类型转换之后才能编译通过
//但是要慎重使用,因为运行过程中可能会损失精度,后果可能会很严重
int m = (int)l;
System.out.println(m);
//byte类型有特殊招待,无需强制转换数据类型也能直接赋值给byte
//前提是 没有超过byte类型的数据范围
byte d = 50;//可以
byte e = 127;//可以
//byte f = 128;//编译报错,超出byte类型范围,需要使用强制类型转换符
short f = 32767;//可以
//short h = 32768;//不可以,编译报错
char cc = 65535;//可以
cc = 65536;//不可以,编译报错
/*
当一个整数字面值没有超过byte、short、char的取值范围,这个字面值
可以直接赋值给byte、short、char类型的变量。
这种机制SUN允许了,目的是为了方便程序员的编程。
*/
}
}
Java 数据类型 Part04 整数型
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...