1.首先复习一下java的基本数据类型,见下图

2.比较他们的字节数

备注:1字节(Byte)=8位(Bit)

3.转换中的知识点

*java中整数类型默认的int类型;小数类型默认的double;

*char 可以当做一中特殊的整数类型;

*int无法转换为boolean;

*小数类型转为整数类型,小数可能被舍弃,所有出现精度损失,所以需要强制转换;

*boolean 类型不能转换成任何其它数据类型;

byte b2 = 120;
//没报错的原因:
//编译时候,进行检查,看赋值大小是否超过变量的类型所容纳的范围
//如果超过,报错:从int转换到byte可能会有损失,如果没超过,编译通过
float f3 = 100L; 这种情况,整数部分,可以直接赋值给float整数部分
float f1 = 100.9; 这种情况,因为默认的是double,如果这样转换,有可能失去小数点,必须强制转换
long l3 = 1000.9f; 小数转为整数,小数可能丢失,需要强制转换
double d2 = 10.9d;
int i2 = d2; //错误: 不兼容的类型: 从double转换到int可能会有损失
char c1 = 'a';
int i3 = c1; //自动转换 int i4 = 100;
//char c2 = i4;// 错误: 不兼容的类型: 从int转换到char可能会有损失

4.四则运算中

/*
1、如果两个操作数中有一个是double类型,另一个就会转换为double类型;
2、否则,如果有一个操作数是float,另一个就会转化为float;
3、否则,如果有一个操作数是long,另一个就会转换为long;
4、否则,两个操作数都将转换为int类型。
*/

*面试陷阱

byte b1 = 10;
byte b2 = 11;
//错误: 不兼容的类型: 从int转换到byte可能会有损失
//否则,两个操作数都将转换为int类型。
byte b3 = b1 + b2 //错误
byte b3 = (byte)(b1 + b2); //正确

*面试陷阱2:

short s1 = 1;
s1 = s1 + 1; //错误: 不兼容的类型: 从int转换到short可能会有损失 short s2 = 1;
s2 += 1; // 等同于short s2 = (short)(s2 + (short)1); //正确

5.最后是从小到大顺序图一张

6.面试:什么是不可变对象(immutable object)?

解析:不可变对象指对象一旦被创建,状态就不能再改变。任何修改都会创建一个新的对象,如String、Integer及其它包装类。

7.隐式类型转换

当将占位数少的类型赋值给占位数多的类型时,java自动使用隐式类型转换(如int型转为long型)

8.显式类型转换

当把在级别高的变量的值赋给级别低变量时,必须使用显式类型转换运算(如double型转为float型)

欢迎关注我的微信公众号:安卓圈

最新文章

  1. 【干货分享】流程DEMO-固定资产转移流程
  2. HDU 3879 Base Station(最大权闭合子图)
  3. How to Develop blade and soul Skills
  4. 长轮询(long polling)
  5. PHP 单例模式继承的实现方式
  6. NVelocity 表格行奇偶样式变换
  7. Mybatis 学习-2
  8. typedef 优于 #define
  9. 【DP/单调栈】关于单调栈的一些题目(codevs 1159,codevs 2673)
  10. apk,task,android:process与android:sharedUserId的区别
  11. Oracle 11gR2 RAC ohasd failed to start 解决方法
  12. Flask 系列之 Blueprint
  13. SQL 约束 (Constraints)
  14. Scrapy 框架 总结
  15. BZOJ2167 : 公交车站
  16. Visual Studio进行Web性能测试- Part II
  17. 1823: [JSOI2010]满汉全席 2-sat
  18. STL——空间配置器(SGI-STL)
  19. poj 2777线段树应用
  20. POJ Stockbroker Grapevine(floyd)

热门文章

  1. perl Can't use string Cxxx) as a symbol ref while "strict refs" in use at XXXX.pl错误
  2. ACM/ICPC 之 BFS-广搜进阶-八数码(经典)(POJ1077+HDU1043)
  3. WebRequest 获取网页乱码
  4. QT Creator调用动态链接库实例
  5. SprignMVC+myBatis整合
  6. HTML 表单 选择器
  7. 【QT】C++ GUI Qt4 学习笔记1
  8. 【linux】nohup运行守护进程
  9. 获取http请求响应头
  10. Httpsqs的安装以及安装过程错误的解决方法 转