当前位置: 首页 > news >正文

Java的类型转换

1.自动类型转换为什么要学习类型转换呢因为在我们实际开发中可能存在将某种类型变量的值赋值给另一个类型的变量也可能存在多种数据类型的数据一起运算的情况。在以上情况中其实都会涉及到类型转换。类型转换的形式总体分为2种一种是自动类型转换一种是强制类型转换。什么是自动类型转换答自动类型转换指的是数据范围小的变量可以直接赋值给数据范围大的变量 byte a 12; int b a; //这里就发生了自动类型转换(把byte类型转换int类型)自动类型转换的原理是怎样的答自动类型转换其本质就是在较小数据类型数据前面补了若干个字节除了byte和int之间的转换之外其他类型也可以转换转换顺序如下图所示下面我们通过代码演示一下自动类型转换的各种形式。public class TypeConversionDemo1 { public static void main(String[] args) { // 目标理解自动类型转换机制。 byte a 12; int b a; // 发生了自动类型转换了 System.out.println(a); System.out.println(b); int c 100; // 4 double d c;// 8 发生了自动类型转换了 System.out.println(d); char ch a; // a 97 00000000 01100001 int i ch; // 发生了自动类型转换了 00000000 00000000 00000000 01100001 System.out.println(i); } }表达式的自动类型转换自动类型转换还有另外一种形式就是表达式的自动类型转换。所谓表达式指的是几个变量或者几个数据一起参与运算的式子。如果同一个表达式中出现不同类型的变量或者数据一起运算这种情况下运算结果是一个什么数据类型呢需要遵守下面的两条运算规则1.多种数据类型参与运算其结果以大的数据类型为准 2.byte,short,char 三种类型数据在和其他类型数据运算时都会转换为int类型再运算 注:boolean类型不能与其他基本数据类型相互转换。代码演示:public class TypeConversionDemo2 { public static void main(String[] args) { // 目标掌握表达式的自动类型转换机制。 byte a 10; int b 20; long c 30; long rs a b c; System.out.println(rs); double rs2 a b 1.0; System.out.println(rs2); byte i 10; short j 30; int rs3 i j; System.out.println(rs3); // 面试笔即使两个byte运算结果也会提升为int byte b1 110; byte b2 80; int b3 b1 b2; System.out.println(b3); } }2.强制类型转换前面我们学习了自动类型转换我们知道可以将数据类型小的数据可以直接赋值给数据范围大的变量。那反过来能不能将数据范围大的数据直接赋值给数据范围小的变量呢答案是会报错。因为数据范围大的数据赋值给数据范围小的变量它有可能装不下就像把一个大桶的水倒入一个小桶中有溢出的风险。什么是强制类型转换但是你强行将范围大的数据赋值给范围小的变量也是可以的这里就需要用到强制类型转换。下面是 强制类型转换的格式目标数据类型 变量名 (目标数据类型)被转换的数据;下面是强制类型转换的代码演示public class TypeConversionDemo3 { public static void main(String[] args) { // 目标掌握强制类型转换。 int a 20; byte b (byte) a; // ALT ENTER 强制类型转换。 System.out.println(a); System.out.println(b); int i 1500; byte j (byte) i; System.out.println(j); double d 99.5; int m (int) d; // 强制类型转换 System.out.println(m); // 丢掉小数部分保留整数部分 } }强制类型转换的原理强制类型转换的原理其实就是强行把前面几个字节砍掉但是有数据丢失的风险。注意事项:1. 强制类型转换可能造成数据(丢失)溢出2. 浮点型强转成整型直接丢掉小数部分保留整数部分返回。
http://www.rkmt.cn/news/1399423.html

相关文章:

  • 别再手动解析事件了!用FastAPI + CloudEvents库,5分钟搞定事件驱动微服务接口
  • 从X11到Wayland:一个Linux桌面开发者的迁移实战与避坑指南
  • 分布式强化学习的网络瓶颈与OLAF优化方案
  • 小白也能学会的盒模型基础!!!
  • 从Unity 2022到Unity 6:平台判断API的变迁与未来兼容性写法
  • 这次走对了,微软AgenticRAG实测5.9倍提升
  • 以知识管理赋能 DevSecOps,Gitee Wiki 加速关键领域软件自主演进
  • AI代码审查CLI工具十年演进:从功能驱动到体验驱动的开发者体验设计
  • model_optimizer支持用cuteDSL实现自定义fmha算子了
  • 别再手动拖了!用脚本一键将Unity场景Hierarchy结构生成UI折叠菜单(支持无限级)
  • Serverless AI外呼实战:无需运维,5步构建智能营销自动化
  • acados MPC求解器实战:8个常见错误排查与解决指南
  • 别再傻傻分不清!嵌入式调试接口JTAG和SWD的保姆级接线指南(附J-Link连接图)
  • AI API成本优化实战:不修改提示词,如何降低40%调用成本
  • AI结对编程实战:从零构建现代化个人作品集网站
  • Simulcast多流自适应技术详解
  • ARM编译器IPv6许可支持与配置指南
  • SDSS-V天文巡天项目:自动化观测与数据管理技术解析
  • 2026年靠谱的无锡不锈钢低压水泵/水泵批量采购厂家推荐 - 行业平台推荐
  • ASTRI-Horn望远镜Variance数据技术解析与应用
  • 构建统一收入数据仪表盘:从API集成到Grafana可视化的全流程实践
  • ISP V4L2驱动开发:格式支持与映射实战
  • ARMv8-M架构VMLA/VMLAS指令差异解析与优化实践
  • SVM模型内部结构解析:正交核贡献分析(ORCA)原理与应用
  • 手把手教你用FormData搞定泛微Ecology9附件上传(附完整JS代码)
  • 企业集成架构实战:从API、ESB到事件驱动,打通数字资产的核心路径
  • 氯酚类化合物电氧化过程PSO-BP-ANN预测模型【附算法】
  • matlab代做合规科普:拒绝学术作弊,解锁专业技术辅助新方式
  • 2026年比较好的会展家具租赁/展会家具租赁优质厂家汇总推荐 - 行业平台推荐
  • 加热炉制造系统马尔可夫排队建模优化方法【附程序】