[JavaSE学习之旅]数据类型扩展

数据类型拓展

各个类型所占字节大小

参考了这篇文章

  • byte: 1字节 默认0 范围: -128 – 127

  • short: 2字节 默认0 范围:-32768 – 32767

  • char: 2字节 默认’\u0000’ 范围: ‘\u0000’ – ‘\uffff’

  • int: 4字节 默认0 范围 -2147483648 – 2147483647

  • float: 4字节 默认 0.0f

  • long: 8字节 默认0

  • double 8字节 默认0.0d

整形

  • 十进制 普通的数字表示的就是十进制数字
  • 二进制 数字前面加上 0b(零不是字母o) 或者 0B 表示二进制
  • 八进制 数字前面加上 0 (零不是字母o)表示八进制
  • 十六进制 数字前面加上 0x(零不是字母o)或者 0X 表示十六进制

例:

int i1 = 10;
int i2 = 0b10;
int i3 = 0B10;
int i4 = 010;
int i5 = 0x10;
int i6 = 0X10;
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
System.out.println(i5);
System.out.println(i6);

结果:

在这里插入图片描述

JDK7新特性,数字之间可以用下划线分割

int a = 10_0000_0000;

浮点数

  • 数字比较最好不要用浮点数进行比较
  • 银行业务等不用浮点数表示,用BigDecimal这个类

例1:

float f = 0.1f;
double d1 = 1.0/10;
double d2 = 0.1;
System.out.println(f==d1);
System.out.println(f==d2);
System.out.println(d1==d2);

结果:

在这里插入图片描述

个人猜测是因为float和double这两个数据类型的存储方式不同导致本来应该看上去相同的数字但并不相同

例2:

float a = 32423435342957473925743f;
float b = a+1;
System.out.println(a==b);

结果:

在这里插入图片描述

因为a超过了float能够表示的数据范围

字符

Java中的字符是Unicode编码的,其表示范围由 ‘\u0000’ 到 ‘\uffff’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值