8、基本数据类型转换(自动转换和强制转换)

基本类型转换

  • 1、自动类型转换
  • 2、强制类型转换

1、自动类型转换

定义:当Java程序在进行赋值或者运算时,精度小的类型会自动转换成精度大的数据类型,这个就是自动类型转换。(自动小转大)
背多芬:
在这里插入图片描述

这里要明确一个概念:高司令当初创建Java的时候规定char 和 byte、short是不能自动转换,所以这是Java语言的规则,我们记住就可以了。
另外,Boolean在Java中只有true和false,没有0/1,所以不参与类型转换。
在long(8字节)可以转换成float(4字节)中,我其实查了一些资料,就我个人理解:应该是因为float采用科学计数法,本身精度就大,所以能自动转换。(感兴趣的可以自己去查一下哈,我不太感兴趣,所以直接背喽😁)

使用细节:
①有多种类型数据一起进行混合运算时,系统首先自动将所有数据转换成容量最大的数据类型,然后再进行计算。

int n1 = 10;
float f1 = n1 + 1.1F;		 //float
System.out.println("f1 = "+f1);    
double d1 = n1 + 1.1;		//double
System.out.println("d1 = "+d1);

结果:
在这里插入图片描述
分析一下: 第二条语句中参与运算的有int 和 float,所以 int类型 先转换成 float类型,再进行运算(注意:此处 1.1 一定要加 ‘ F ’,不然系统会默认为double,然后报错,所以变量最终的类型精度要大于或等于运算结果的精度),第四条语句同上。

 
②当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换。
小  ----自动类型转换---->   大
大  ----强制类型转换---->   小

③、(byte,short)和char之间不会自动转换。
在这里插入图片描述

 
④byte,short,char三者任意可以进行计算,在计算时首先转换为int类型。

char c1 = 1;
byte b1 = 1;
byte b2 = 2;
short s1 = 1;int x = c1 + b1;
System.out.println("c1 + b1 = " + x);int y = b1 + b2;
System.out.println("b1 + b2 = " + y);long z = c1 + b1 + s1;
System.out.println("c1 + b1 + s1 = " + z);

结果:
在这里插入图片描述
我们可以从溢出角度理解,假设两个byte类型、赋值为127的变量相加,那么结果是254,而byte是一个字节,范围是(-128~127),如果仍然存进byte类型,就会溢出。同理,这三者任意搭配都有可能出现溢出的情况,因此直接拿精度(容量)较大的int类型去装它们,可以避免这种情况的发生。

⑤Boolean类型不参与转换。
前面提过了,Java中Boolean只有true和false的取值,没有0/1,所以不能自动转换。
在这里插入图片描述

2、强制类型转换

定义:自动类型转换的逆过程,将容量大的数据类型转换成容量小的数据类型。使用时要加上强制转换符(),eg:(int),(float)…但可能造成精度降低或溢出,格外要注意。

上代码:
在这里插入图片描述
结果:
在这里插入图片描述

分析一下:
Ⅰ、(int)1.9很明显损失了精度,不赘述了。
Ⅱ、用(byte)把 int类型进行强制转换,系统首先会判断这个将要存进的数的大小,若在byte精度范围里面,则可以存进去;若超出了精度范围,就会出现第三种情况,造成数据溢出。(其他强制转换也是如此。)

使用细节:
①强制符号()只针对最近的操作数有效,往往会使用小括号提升优先级。
在这里插入图片描述

 
来练习一下吧:

short s = 12;		//ok
s = s - 9;			//错误,int -> shortbyte b = 10;		//ok
b = b + 11;			//错误,int -> bytechar c = 'a';		//ok
int i = 16;			//ok
float d = .314F;	//ok
double result = c + i + d;		//ok, float -> double

本人正在B站跟着韩顺平老师学Java(非广告),所以做个笔记仅供学习,文章虽标为原创,但大体思路是韩顺平老师的授课思路,在此基础上加上了自己的理解,不喜勿喷哦。
大家一起学,一起进步!!
各位宝子们如果觉滴还不错的话,可以点个赞 or 收个藏 or 打个赏哦,佛系博主一个。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/682036.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探讨关于AutoPSA里CII算法的结构荷载

UKP3D,AutoPDMS导出应力计算文件至管道应力分析软件分析,如下图AutoPSA.用户咨询如图 1.如果计算时考虑水重,把工况中的w改为ww; 2.CAD表格中结构荷载不是单纯的1.5倍,是参照仿GLIF的算法,计算了水重的(根…

Abp框架,EF 生成迁移文件时,自动添加表和字段注释内容

在使用 abp 框架,或者ef 的时候都会遇到一个问题,就是建实体后要将实体描述生成到数据库中,就需要手动去添加 [Comment("注释内容")] 注解,这样相当于手动写两次注释(即使你是 Ctrl C)&#x…

Apipost使用心得,让接口文档变得更清晰,更快捷

Idea和Apipost结合使用 Idea 安装插件Apipost-Helper-2.0 在【file】–>【settings】–>【Plugins】搜索 “Apipost-Helper-2.0”–>【install】,重启Idea 编写controller接口 在idea中编写业务功能及接口之后,在controller中鼠标【右键】单…

分享10个高质量宝藏网站~

分享一波高质量宝藏网站~ 这10个宝藏网站,个个都好用到爆,娱乐、办公、学习都能在这里找到! 1、Z-Library https://zh.zlibrary-be.se/ 世界最大的免费电子书下载网站!电子书资源超千万,不过这个网站不太稳定&#…

复现NerfingMVS(更新中)

按以下代码一步步操作 conda create -n NerfingMVS python3.7 conda activate NerfingMVS conda install pytorch1.7.1 torchvision0.8.2 torchaudio0.7.2 -c pytorch pip install -r requirements.txthttps://colmap.github.io/install.html Linux 中 建议的依赖&#xff1…

机器学习:基于线性回归、岭回归、xgboost回归、Lasso回归、随机森林回归预测卡路里消耗

前言 系列专栏:机器学习:高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目,每个项目都处理一组不同的问题,包括监督和无监督学习、分类、回归和聚类,而且涉及创建深度学…

如何从未入库的gerrit中撤销一个文件

用一个例子说明 比如有一个提交里面的default.xml的修改没有必要,需要从未入库的gerrit中移除 步骤如下: 1.做reset操作 git reset HEAD^ packages/SettingsProvider/res/values/defaults.xml 2.做checkout操作 git checkout packages/SettingsProv…

从“制造”到“智造”:“灯塔”经验助力中国制造业转型升级-转载

作者:Karel Eloot,侯文皓,Francisco Betti,Enno de Boer和Yves Giraud 作为中国实体经济的主体,制造业是推动中国经济发展乃至全球制造业持续增长的重要引擎。站在历史与未来交汇的新起点上,中国制造业将背…

ASP.NET信息安全研究所设备管理系统的设计与实现

摘 要 以研究所的设备管理系统为背景,以研究所设备管理模式为研究对象,开发了设备管理系统。设备管理系统是设备管理与计算机技术相结合的产物,根据系统的功能需求分析与定义的数据模式,分析了应用程序的主要功能和系统实现的主…

MoviePy(Python音视频开发)

音视频基础帧率、码率、分辨率视频格式H.264和H.265视频压缩算法 Moviepy常见剪辑类VideoFlieClipImageFlieClipColorClipTextClipCompositeVideoClipAudioFlieClipCompositeAudioClip 常见操作音视频的读入与导出截取音视频 音视频基础 帧率、码率、分辨率 体积(V…

中国场外信用衍生产品交易基本术语与适用规则(2022 年版)

中国场外信用衍生产品交易基本术语与适用规则 (2022 年版) 版权所有© 中国银行间市场交易商协会 2022 声 明 中国银行间市场交易商协会(简称“交易商协会”)发布《中国场外信用衍 生产品交易基本术语与适用规则(2…

知从科技应邀参加恩智浦技术日巡回研讨会郑州站汽车电子专场

4月18日,恩智浦技术日巡回研讨会的首个汽车电子专场在郑州成功举办。此次研讨会汇聚了众多行业专家,聚焦前沿的赋能技术,共同探讨汽车电子架构、ADAS、汽车电气化、车载信息娱乐系统、UWB超宽带等热门应用。作为恩智浦合作伙伴,知…