基本数据类型

八种基本数据类型:

整型(Int)、短整型(short)、长整型(long)、单精度浮点型(float)、双精度浮点型(double)、布尔型(boolean)、字符型(char)、字节型(byte)


取指范围:

int:-231——231-1
short:-215——215-1
long:-215——215-1
byte:-27——27-1
char:-27——27-1
float:-3.40E+38 ~ +3.40E+38(4字节=1符号位+8位阶数+24位尾数)
double:-1.79E+308 ~ +1.79E+308(8字节=1符号位+11位阶数+52位尾数)
boolean:ture、false


类型转换:

boolean类型不能与其他类型转换,否则会报错。
](https://img-blog.csdnimg.cn/20210212200539742.png)

byte类型不能自动提升到char,char类型也不可以自动提升到short类型(因为负数问题)
当对小于int的数据类型(byte, char, short)进行运算时,首先会把这些类型的变量值强制转为int类型进行计算,最后会得到int类型的值。因此,如果把2个short类型的值相加,最后得到的结果是int类型,如果需要得到short类型的结果,就必须显示地运算结果转为short类型。


几种边界值及溢出:

int类型的边界最大值为2147483647,加1变成-2147483648,乘2变成-2

int a = Integer.MAX_VALUE;
System.out.println(a+1);
System.out.println(a*2);
/运行结果为
-2147483648
-2

/原理
-2147483647 原码1111 1111 1111 1111 1111 1111 1111 1111

-2147483647 补码1000 0000 0000 0000 0000 0000 0000 0001

-2147483647  补码1000 0000 0000 0000 0000 0000 0000 0001

-1       补码1111 1111 1111 1111 1111 1111 1111 1111

得到-2147483648 补码1000 0000 0000 0000 0000 0000 0000 0000

-2147483648-1得到2147483647;

-2147483648 补码1000 0000 0000 0000 0000 0000 0000 0000

-1      补码1111 1111 1111 1111 1111 1111 1111 1111

得到     补码0111 1111 1111 1111 1111 1111 1111 1111

正好是2147483647 最大值

最小值为-2147483648,减一变成2147483647,乘2变成0

int a = Integer.MIN_VALUE;
System.out.println(a-1);
System.out.println(a*2);
/运行结果为
2147483647
0

short类型、long类型与int类似。
(32767,-32768)
(9223372036854775807,-9223372036854775808)

short a = Short.MAX_VALUE;
short b = Short.MIN_VALUE;
System.out.println(a);
System.out.println((short)(a+1));
System.out.println((short)(a*2));
System.out.println((short)b);
System.out.println((short)(b-1));
System.out.println((short)(b*2));
/结果为
32767
-32768
-2
-32768
32767
0

char类型最大最小值都为空,转为Int为65535

		char a = Character.MAX_VALUE;
		char b = Character.MIN_VALUE;
		System.out.println(a);
		System.out.println(a+1);
		System.out.println(a*2);
		System.out.println((char)(b));
		System.out.println((char)(b-1));
		System.out.println((char)(b*2));
		/结果为

		65536
		131070

float型和double型

		//double a = Double.MAX_VALUE;
		//double b = Double.MIN_VALUE;
		float a = Float.MAX_VALUE;
		float b = Float.MIN_VALUE;
		System.out.println(a);
		System.out.println(a+1f);
		System.out.println(a*2);
		System.out.println(b);
		System.out.println(b-1);
		System.out.println(b*2);
		/float值为
		3.4028235E38
		3.4028235E38
		Infinity
		1.4E-45
		-1.0
		2.8E-45
		/double值为
		1.7976931348623157E308
		1.7976931348623157E308
		Infinity
		4.9E-324
		-1.0
		1.0E-323
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值