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自动类型转换相关推荐

  1. java装箱和拆箱_java自动装箱和拆箱

    这个是jdk1.5以后才引入的新的内容,作为秉承发表是最好的记忆,毅然决定还是用一篇博客来代替我的记忆: java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装成为装箱 ...

  2. java 的数据类型转换_java数据类型转换汇总

    Java的数据类型的转换一般分为三种,分别是:简单数据类型之间的转换.字符串与其他数据类型的转换.其他实用数据类型的转换. 一.简单数据类型之间的转换 在java中,整型.实型.字符型被视为简单数据类 ...

  3. java自动封箱_java自动封箱是什么意思

    3 Autoboxing and Unboxing 自动装箱与解箱 3.1 Converting Primitives to Wrapper Types 看一下代码 int foo = 0; Inte ...

  4. java什么是拆装箱_JAVA自动拆装箱

    1.自动拆装箱是什么?(是什么) 自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过 ...

  5. java 原生数据类型的转换_Java基本数据类型转换分析

    基本数据类型(原生类.内置类型)8种: 整型(默认int):byte(1个字节).short(2个字节).int(4个字节).long(8个字节) 浮点类型(默认double):float(4个字节) ...

  6. java 自动编译_java自动编译批处理

    最近开始学习java 教程中用的是dos命令行环境, 每次都要输入一大堆命令 比较繁琐 (据说命令行方式是新手必须要掌握的 , 但我认为重复输入那几个命令是万万没有必要的 ) 所以就写了个批处理来完成 ...

  7. java object强制类型转换_JAVA 强制类型转换

    object对象转换为String的一些总结 在 java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有 Object.toS ...

  8. java的布尔类型转换_java string类型转换boolean类型的方法

    下面小编就为大家带来一篇java string类型转换boolean类型的方法.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 今天偶然想把string 类型转换成 bo ...

  9. java数组类型转换_java数据类型转换和数组总结

    流程控制 分支 循环语句 if...else... if...else if...else switch(值0) {          ------------值0是什么类型, case后面的值就要是 ...

  10. java map类型转换_Java string类型转换成map代码实例

    背景:有时候string类型的数据取出来是个很标准的key.value形式,通过Gson的可以直接转成map 使用方式: Gson gson = new Gson(); Map map = new H ...

最新文章

  1. 区跨链应用 | 区块链创业者不要再骗自己了
  2. 谷歌浏览器添加JSON-Handle插件
  3. Machine Learning - Andrew Ng on Coursera (Week 2)
  4. VC6导入和使用二进制资源
  5. numpy.random.normal
  6. 树莓派python开发工具哪个好_Thonny——树莓派上Python的最新IDE
  7. .NET Core开发实战(第32课:集成事件:解决跨微服务的最终一致性)--学习笔记...
  8. BOM函数之history对象
  9. Bootstrap创建按钮组
  10. 数百辆共享单车被丢垃圾场!官方回应...
  11. java中sql语句怎么把开始和结束时间作为参数写sql查询_java程序员跳槽的一道坎,大公司面试官都会问的Mybatis...
  12. 如何增加Android模拟器的可用空间
  13. Axure RP 9 for mac 高保真原型图 - 案例18 【导航栏-展开、收起】导入元件库
  14. 【Python】简体繁体转换
  15. Windows安装多个不同版本谷歌chrome浏览器
  16. Java使用FFmpeg(自定义cmd)系列之MP4 转码 HLS m3u8 AES128 加密
  17. Redis客户端Lettuce深度分析介绍
  18. The server encountered an internal error that prevented it from fulfilling this request的一种解决办法
  19. Linux 运维是做什么的?有钱途吗?发展前景怎么样?
  20. html动态图片怎么设背景,微信8.0状态背景视频怎么设置?状态视频动态背景图设置教程[多图]...

热门文章

  1. 星环大数据平台 TDH inceptor 问题排查
  2. Java网络编程学习汇总
  3. python搭建图书管理系统
  4. 学习TP5(一):TP5框架下载与快速入门使用
  5. 享誉全球的 Java 经典著作《Java核心技术》Java 17
  6. 【老生谈算法】matlab实现遗传算法源码——遗传算法
  7. EDA技术实用教程 | 复习九 | 数据选择器的行为级描述
  8. eclipse关联KEmulator模拟器开发J2ME游戏
  9. 操作系统实验一:Linux基本操作
  10. Java从json串中获取某个值