我的第一篇CSDN
来源:互联网 发布:javascript 函数名 编辑:程序博客网 时间:2024/06/05 20:25
这是我写的第一篇文章,正经写代码还没多久,先从基础开始。以后会把所学到的技术问题不论大小分享出来
今天来讨论java中数据自动转化的问题。
在程序中,自动转化随时可能发生,发生时往往是在我们不经意间。
例如 System.out.println(1+1.5);
这句话输出2.5 ,其实它已经在无形间将第一个数转化为浮点型 然后再进行计算
对于自动转化,当满足两个条件时发生自动转化
1. 数据兼容
2. 转化后的类型表示范围比前一个大
第一个条件比较好理解 你可以执行 1+2 1+1.55 甚至是 1+'c'这样的表达式 因为他们都表示数字(字符char类型根据它的ASCII码值来表示,所以'c'先自动转化为ascii值99 再进行计算),而你无法执行 1+true 这样式子,原因是boolean类型只有 true 和false两个值,boolean型无法与数字或者字符兼容 。
第二个条件即是一个条件,也是一条规则。
先说它是一个条件
A:int a = 5.0;
B:float b = 'c';
A句报错,B句正确。对于A句,由于a 是一个int 型 5.0是个浮点型,我们明显知道 浮点型的表示范围比int型要大,因此这个 浮点型-----》int型 就违反了自动转化的第二个条件。
而对于B句 是 char--》浮点型,表示范围 char<int<float 且 char和float是兼容的,因此他们完成了自动类型的转化。
再说它也是一条规则
对于(1+2.236)/2,这是个 (int+double)/int
首先根据该规则,自动转换是 低精度---》高精度转化(或者也可以说是 表示范围小----》表示范围大),因此这里的执行的逻辑应该是
(int + double)/ int
--》(double+ double)/int
--》 double / int
--》 double/double
--》 double 最后执行结果。。
而这些转化都由java内自动完成。
文章是自己看书的一些理解,可能有错,欢迎指点。。
- 我的CSDN第一篇
- 我的CSDN第一篇
- 我的第一篇CSDN
- 我的第一篇CSDN
- 我的第一篇CSDN
- 我的CSDN,第一篇
- 我的第一篇csdn
- 我的第一篇CSDN
- 我的第一篇CSDN
- 我的第一篇CSDN
- 我的第一篇CSDN
- 我的CSDN的第一篇
- 我在CSDN的第一篇Blog
- 我的第一篇CSDN-Blog文章
- 我在CSDN的第一篇BLOG
- csdn上我的第一篇Blog
- 我的第一篇CSDN Blog
- 写下我的第一篇csdn blog
- Android开发之监听或获取手机短信内容
- Launcher的启动过程
- Observer模式,即观察者模式
- DNS原理及其解析过程
- leetcode之Two Sum
- 我的第一篇CSDN
- html中 target 的所有 4 个值都以下划线开始。任何其他用一个下划线作为开头的窗口或者目标都会被浏览器忽略,因此,不要将下划线作为文档中定义的任何框架 name 或 id 的第一个字符。
- Maven 构件工程的属性文件-----pom.xml文件
- openssl框架闲谈--BIO接口
- qt类 可重入
- 【Splay】bzoj 3223 文艺平衡树
- cms完整视频教程+源码 孔浩老师 全131讲
- 关于git客户端无法push xcode项目解决方法
- Capybara简单入门