Java基础之基本数据类型

文章出处:Java基础之基本数据类型  关注码农爱刷题,看更多技术文章!

【基本内容】

     Java数据类型分为基本数据类型和引用数据类型,其中基本数据类型分为八种:六种数字类型,一种字符类型和一种布尔类型。八种基本数据类型相关属性如下图:

图片

      此外,Java语言支持一些特殊的转义字符序列,如下图:

图片

【注意事项】

1. 基本数据类型的转换:八种基本数据类型可以混合运算;混合运算时,较小的类型会自动转化提升为同较大的类型,也即从低级向高级转换:byte、short、char(三者同级)—> int —> long —> float —> double,然后进行运算,以保证运算的一致性和安全性;而有的时候,需要逆向强制类型转换,所以在转换过程中要注意以下几点:

a. 逆向转换可能导致溢出或精度损失,例如整型(int a = 128;)转换为byte类型,因为byte类型的最大值为127,这时强制类型转换,可能得到你意想不到的结果,参看下列代码:

int  a = 128;
byte b = (byte) a;
System.out.println(b); //输出结果是-128,是你想到的答案吗?
 

b. char转换为int数值进行混合运算,转换后的int值是字符对应的ASCII码表值,这也是要注意的,参看下列代码:


char c = 'A'; //ASCII值为65
int  b = c + 1;
System.out.println(b); //结果是66,因为char自动转换为int

char d = (char)(c +1);
System.out.println(d); //输出字符B
 

2. 浮点数精度导致的问题:因为二进制无法精确表示浮点数,浮点数比较大小或运算,可能结果也会让你大跌眼镜,例如double d = 1.3 和  float f = 1.3f两者值直接用==比较一定相等吗?参看下列代码:

double d = 1.3;
float f = 1.3f;
System.out.println(d == f); //结果是false
  答案是不等的,因为float变量 f 转换为double类型后和直接赋值的变量 d 精度不一样。因为精度的问题,即使同精度类型的浮点数直接进行加减乘除运算,结果都可能让你意外。参看下列代码:
double d1 = 0.001;
double d2 = 1.1;
System.out.println(d2 - d1); // 结果是1.0990000000000002

      以上问题解决的方法是:建议先转换为BigDecimal类型后再进行运算或比较大小。

3. 其他注意点:整数的默认类型是int,小数默认类型是double,所以在定义long类型时必须在数字后面跟上l,而定义float时必须在数字后面跟上F或f,例如下列代码:

 float f = 3.4;
 float ff = 3.4 * 2; //编译不能通过


 // 正确的写法
 float f = 3.4f;
 float ff = (float) (3.4 * 2);

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值