Java隐式类型转换和强制类型转换
2024-10-20 11:30:33
一、强制类型转换
char 和 整型之间的类型转换
char a7 = 'a';
System.out.println(a7); System.out.println( (int)a7 );
System.out.println( (byte)a7 );
System.out.println( (short)a7 ); int b1 = 101;
System.out.println( (char)b1 );
System.out.println( (char)(b1 + 1) );
输出:
a
97
97
97
e
f
下面这段代码会把 26 个小写字母对应的 int 值打印出来
char[] chs = {
'a','b','c','d','e','f','g','h','i','j','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z'}; for (int i = 0; i < chs.length; i++) {
System.out.println( (int)chs[i] );
}
二、隐式类型转换
这是一个很经典的题目,先看代码:
short a = 1;
short b = 2; short c = a + b;
答案是第4行代码出现编译错误:“可能损失精度”
原因:在进行 a + b 操作时,会把结果的类型“隐式”提升为 int 类型,此时再使用 short 类型的 c 变量引用时,就会出现“损失精度”
可以把 a + b 的结果强制转换为 short 类型,但是可能导致数值精度发生错误。也就是说可以解决编译期的错误,但是可能在运行期出现BUG
short a = 1;
short b = 2; // short c = (a + b);
short c = (short)(a + b);
还可以使用 int 或者 long 类型变量接收返回值
short a = 1;
short b = 2; int c = (a + b);
最新文章
- dbcp数据源配置杂谈
- linux下git的简单运用
- 说说Thread.Sleep(0)的那些奇怪的事
- 【POJ1442】【Treap】Black Box
- Java疯狂讲义(二)
- AppUtils【获取手机的信息和应用版本号、安装apk】
- ThinkJS 开发node后端 使用 简介
- Censor SCU - 4438
- java 开发微信中回调验证一直提示 解密失败处理(Java)
- 在 Centos7 的KVM上启用嵌套虚拟化
- spring boot 使用拦截器 无法注入 配置值 、bean问题
- ArcGIS Pro体验03——主界面
- HBase1.2.0增删改查Scala代码实现
- Hadoop 入门教程
- Tomcat启动报错:org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalin
- [elk]logstash的最佳实战-项目实战
- python 3+djanjo 2.0.7简单学习(五)--Django投票应用
- CSS变量使用解析
- HDU1323_Perfection【水题】
- 2 abp 领域层创建实体
热门文章
- pdf 翻译
- vue+elementui搭建后台管理界面(8 同步/异步获取数据渲染table)
- 为什么用ls和du显示出来的文件大小有差别?【转】
- Linux中mpstat命令参数详解
- remaining connection slots are reserved for non-replication superuser connections
- [转]css3自适应布局单位vw,vh你知道多少?
- SEO前端篇(一)页面布局
- ios label根据内容自适应高度
- python提取mysql中指定列参数,并循环打印
- mybatis:字符串转成数组拼接成SQL