java什么是自动类型转换_java自动类型转换
java中,在进行数值运算或赋值时,可能会进行自动类型转换。
首先自动类型转换都需要满足这个条件:
转换后的数据类型的表示范围比转换前的类型大。
解释:
如下图:
自动类型转换只能顺着箭头的方向转,如果要反着转的话,就需要强制类型转换了。
那么在什么情况下会触发自动类型转换呢?
1.在两个数字相加时或者为一个变量赋值时。
相加时分两种情况:
a. int左侧的数值进行计算,会先都转成int,然后进行计算,所以运算结果都是int。
这是java为了防止溢出做的一个处理。
如: byte a,b = 1,c = 1;
char d = 1;
int result;
a = b+c;//编译报错
a = b + d;//编译报错
a = 1 +2; //不会编译报错. 因为1和2是常量,已经识别他们的结果不会溢出,所以不会被自动转成int.
a = 1 +127; //编译报错,因为结果128已经超出了
result = b + c;
result = b + d;
b.int以及int右侧在进行计算的时候,会转成计算的两个数中的在上图里更靠右的类型。
2.赋值的时候
整数:会根据整数大小来判断。比如如果小于128,就算成byte,如果是赋值给更大的类型的话,就会自动向上转型。
小数:默认是double,不会再发生向上转型
如果是123l 则认为是long ,如果是123.1f则认为是float.
java什么是自动类型转换_java自动类型转换相关推荐
- java装箱和拆箱_java自动装箱和拆箱
这个是jdk1.5以后才引入的新的内容,作为秉承发表是最好的记忆,毅然决定还是用一篇博客来代替我的记忆: java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装成为装箱 ...
- java 的数据类型转换_java数据类型转换汇总
Java的数据类型的转换一般分为三种,分别是:简单数据类型之间的转换.字符串与其他数据类型的转换.其他实用数据类型的转换. 一.简单数据类型之间的转换 在java中,整型.实型.字符型被视为简单数据类 ...
- java自动封箱_java自动封箱是什么意思
3 Autoboxing and Unboxing 自动装箱与解箱 3.1 Converting Primitives to Wrapper Types 看一下代码 int foo = 0; Inte ...
- java什么是拆装箱_JAVA自动拆装箱
1.自动拆装箱是什么?(是什么) 自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过 ...
- java 原生数据类型的转换_Java基本数据类型转换分析
基本数据类型(原生类.内置类型)8种: 整型(默认int):byte(1个字节).short(2个字节).int(4个字节).long(8个字节) 浮点类型(默认double):float(4个字节) ...
- java 自动编译_java自动编译批处理
最近开始学习java 教程中用的是dos命令行环境, 每次都要输入一大堆命令 比较繁琐 (据说命令行方式是新手必须要掌握的 , 但我认为重复输入那几个命令是万万没有必要的 ) 所以就写了个批处理来完成 ...
- java object强制类型转换_JAVA 强制类型转换
object对象转换为String的一些总结 在 java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有 Object.toS ...
- java的布尔类型转换_java string类型转换boolean类型的方法
下面小编就为大家带来一篇java string类型转换boolean类型的方法.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 今天偶然想把string 类型转换成 bo ...
- java数组类型转换_java数据类型转换和数组总结
流程控制 分支 循环语句 if...else... if...else if...else switch(值0) { ------------值0是什么类型, case后面的值就要是 ...
- java map类型转换_Java string类型转换成map代码实例
背景:有时候string类型的数据取出来是个很标准的key.value形式,通过Gson的可以直接转成map 使用方式: Gson gson = new Gson(); Map map = new H ...
最新文章
- 区跨链应用 | 区块链创业者不要再骗自己了
- 谷歌浏览器添加JSON-Handle插件
- Machine Learning - Andrew Ng on Coursera (Week 2)
- VC6导入和使用二进制资源
- numpy.random.normal
- 树莓派python开发工具哪个好_Thonny——树莓派上Python的最新IDE
- .NET Core开发实战(第32课:集成事件:解决跨微服务的最终一致性)--学习笔记...
- BOM函数之history对象
- Bootstrap创建按钮组
- 数百辆共享单车被丢垃圾场!官方回应...
- java中sql语句怎么把开始和结束时间作为参数写sql查询_java程序员跳槽的一道坎,大公司面试官都会问的Mybatis...
- 如何增加Android模拟器的可用空间
- Axure RP 9 for mac 高保真原型图 - 案例18 【导航栏-展开、收起】导入元件库
- 【Python】简体繁体转换
- Windows安装多个不同版本谷歌chrome浏览器
- Java使用FFmpeg(自定义cmd)系列之MP4 转码 HLS m3u8 AES128 加密
- Redis客户端Lettuce深度分析介绍
- The server encountered an internal error that prevented it from fulfilling this request的一种解决办法
- Linux 运维是做什么的?有钱途吗?发展前景怎么样?
- html动态图片怎么设背景,微信8.0状态背景视频怎么设置?状态视频动态背景图设置教程[多图]...