java基本数据类型及相互间的转换
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基本数据类型及相互间的转换的更多相关文章
- Java中String和byte[]间的转换浅析
Java语言中字符串类型和字节数组类型相互之间的转换经常发生,网上的分析及代码也比较多,本文将分析总结常规的byte[]和String间的转换以及十六进制String和byte[]间相互转换的原理及实 ...
- Java中String和byte[]间的 转换浅析
Java语言中字符串类型和字节数组类型相互之间的转换经常发生,网上的分析及代码也比较多,本文将分析总结常规的byte[]和String间的转换以及十六进制String和byte[]间相互转换的原理及实 ...
- Java数据类型中String、Integer、int相互间的转换
1.Integer转换成int的方法 Integer i; int k = i.intValue(); 即Integer.intValue(); 2.int转换成Integer int i; Int ...
- (备忘)Java数据类型中String、Integer、int相互间的转换
1.Integer转换成int的方法 Integer i; int k = i.intValue();即Integer.intValue(); 2.int转换成Integer int i; Integ ...
- java基本数据类型和包装类之间的转换(装箱,拆箱)
1.装箱:把基本数据类型转换成包装类 1.1自动装箱 int t1=2; Integer t2 =t1; 1.2手动装箱 Integer t3 = new Integer(t1); 2.拆箱:把包装类 ...
- Java中String和byte[]间的 转换
数据库的字段中使用了blob类型时,在entity中此字段可以对应为byte[] 类型,保存到数据库中时需要把传入的参数转为byte[]类型,读取的时候再通过将byte[]类型转换为String类型. ...
- js 不同时间格式介绍以及相互间的转换
首先必须要提到的是 Date 对象,它用来处理时间和日期. 使用 new Date() 语句可创建 Date 对象,创建出来的时间格式如下(后面提到的标准时间都是指该格式): Wed Jul 17 2 ...
- Java中数据类型及其之间的转换
Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...
- Java中数据类型及其之间的转换(转)
Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...
随机推荐
- win8内置管理员用户无法激活此应用
在运行中输入:“gpedit.msc”,就会启动组策略编辑器, 计算机配置 --> Windows设置 --> 安全设置 --> 本地策略 --> 安全选项 :::: 用 ...
- javax.transaction.xa.XAException: java.sql.SQLException: 无法创建 XA 控制连接。错误: 未能找到存储过程 'master..xp_sqljdbc_xa_init'
配置JTA SQL Server XADataSource参考:https://msdn.microsoft.com/zh-cn/library/aa342335.aspx 使用 JDBC 驱动程序 ...
- Android 启动白屏或者黑屏闪现解决
1.设置Style //1.设置背景图Theme <style name="Theme.AppStartLoad" parent="android:Theme&qu ...
- 【leetcode】Substring with Concatenation of All Words (hard) ★
You are given a string, S, and a list of words, L, that are all of the same length. Find all startin ...
- 解决win10装不了wifi驱动
右击,选择更新程序驱动软件 ok 好了
- Windows 删除 .svn标志
之前一个项目是在SVN下面管理的,后来,考出来了,然后在Eclispe中使用,后来想用SVN管理起来,但是项目中,还是有.svn标志,只能先删除了.svn文件,然后在用svn管理起来,后来,发现.sv ...
- NYOJ题目101两点距离
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsEAAAIBCAIAAAAnO/WXAAAgAElEQVR4nO3dq3IbSeM34L0Jc/O9BW
- 用spring+hibernate+struts 项目记录以及常用的用法进等
一.hibernate1. -----BaseDao------ // 容器注入 private SessionFactory sessionFactory; public void setSessi ...
- ASP.NET Web API 使用Swagger生成在线帮助测试文档
Swagger-UI简单而一目了然.它能够纯碎的基于html+javascript实现,只要稍微整合一下便能成为方便的API在线测试工具.项目的设计架构中一直提倡使用TDD(测试驱动)原则来开发,sw ...
- Delphi函数指针
参考:http://blog.chinaunix.net/uid-91034-id-2009700.html http://blog.csdn.net/procedure1984/article/de ...