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型)

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

java基本数据类型及相互间的转换的更多相关文章

  1. Java中String和byte[]间的转换浅析

    Java语言中字符串类型和字节数组类型相互之间的转换经常发生,网上的分析及代码也比较多,本文将分析总结常规的byte[]和String间的转换以及十六进制String和byte[]间相互转换的原理及实 ...

  2. Java中String和byte[]间的 转换浅析

    Java语言中字符串类型和字节数组类型相互之间的转换经常发生,网上的分析及代码也比较多,本文将分析总结常规的byte[]和String间的转换以及十六进制String和byte[]间相互转换的原理及实 ...

  3. Java数据类型中String、Integer、int相互间的转换

    1.Integer转换成int的方法 Integer i;  int k = i.intValue(); 即Integer.intValue(); 2.int转换成Integer int i; Int ...

  4. (备忘)Java数据类型中String、Integer、int相互间的转换

    1.Integer转换成int的方法 Integer i; int k = i.intValue();即Integer.intValue(); 2.int转换成Integer int i; Integ ...

  5. java基本数据类型和包装类之间的转换(装箱,拆箱)

    1.装箱:把基本数据类型转换成包装类 1.1自动装箱 int t1=2; Integer t2 =t1; 1.2手动装箱 Integer t3 = new Integer(t1); 2.拆箱:把包装类 ...

  6. Java中String和byte[]间的 转换

    数据库的字段中使用了blob类型时,在entity中此字段可以对应为byte[] 类型,保存到数据库中时需要把传入的参数转为byte[]类型,读取的时候再通过将byte[]类型转换为String类型. ...

  7. js 不同时间格式介绍以及相互间的转换

    首先必须要提到的是 Date 对象,它用来处理时间和日期. 使用 new Date() 语句可创建 Date 对象,创建出来的时间格式如下(后面提到的标准时间都是指该格式): Wed Jul 17 2 ...

  8. Java中数据类型及其之间的转换

    Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...

  9. Java中数据类型及其之间的转换(转)

    Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...

随机推荐

  1. java sleep() 、yield()

    1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁.也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据.注意该方 ...

  2. 复习sqldataread

    public static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader) { ///定义DataTable Data ...

  3. objective-c可变数组

     1 #pragma mark ---------------可变数组-----------------  2 //        可以在数组里面进行增删改的操作  3 //  4 //        ...

  4. September 24th 2016 Week 39th Saturday

    The worst solitude is to be destitute of sincere friendship. 最大的孤独莫过于没有真诚的友谊. I walk slowly, but I n ...

  5. [USACO07MAR]黄金阵容均衡Gold Balanced L…(洛谷 1360)

    题目描述 Farmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been able to na ...

  6. Jmeter 函数

    一._csvRead 函数 _cvsRead函数是从外部读取参数,csvRead函数可以从一个文件中读取多个参数. 步骤: 1.先新建一个文件,例如c.txt,里面的数据存放为 web@qq.com, ...

  7. 谈谈Delphi中的类和对象1---介绍几个概念 && 对象是一个地地道道的指针

    参考:http://blog.163.com/liang_liu99/blog/static/88415216200952123412180/ 以下的介绍主要针对的是Delphi的面向对象的知识,可能 ...

  8. poj 1008:Maya Calendar(模拟题,玛雅日历转换)

    Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 64795   Accepted: 19978 D ...

  9. 蛋疼的Fedora17

    在公司给同事要安装ASM oracle 11g,说要在forder17上安装,于是乎我先在自己的虚拟机上安装了一个forder17,遇到了几个很蛋疼的问题:      1. 安装的时候没有创建普通用户 ...

  10. 自制工具:迅速打开一个Node 环境的Playground

    需求 经常有这种情况,写代码的时候需要实验种想法,亟需一种playground 环境来玩耍.如果是前端的话可以打开chrome 的控制台,但是如果是Node 的话就比较麻烦了.我要打开我的存放试验代码 ...