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

第10节:类型转换

1、自动类型转换(隐式)

1.1 语法

自动类型转换就是将小范围类型的数据赋值给大范围类型的变量。赋值过程中编译器会自动完成转换,而不需要我们做任何处理。

1.2 转换规则链
1.2.1 byte → short、int、long、float、double
packagecom.qxt.src.chapt9.code1_2_1;publicclassExample{publicstaticvoidmain(String[]args){bytebyteNumber=100;System.out.println("byteNumber: "+byteNumber);shortshortNumber=byteNumber;System.out.println("shortNumber: "+shortNumber);intintNumber=byteNumber;System.out.println("intNumber: "+intNumber);longlongNumber=byteNumber;System.out.println("longNumber: "+longNumber);floatfloatNumber=byteNumber;System.out.println("floatNumber: "+floatNumber);doubledoubleNumber=byteNumber;System.out.println("doubleNumber: "+doubleNumber);}}
1.2.2 short → int、long、float、double
packagecom.qxt.src.chapt9.code1_2_2;publicclassExample{publicstaticvoidmain(String[]args){shortshortNumber=100;System.out.println("shortNumber: "+shortNumber);intintNumber=shortNumber;System.out.println("intNumber: "+intNumber);longlongNumber=shortNumber;System.out.println("longNumber: "+longNumber);floatfloatNumber=shortNumber;System.out.println("floatNumber: "+floatNumber);doubledoubleNumber=shortNumber;System.out.println("doubleNumber: "+doubleNumber);}}
1.2.3 char → int、long、float、double
packagecom.qxt.src.chapt9.code1_2_3;publicclassExample{publicstaticvoidmain(String[]args){charcharNumber='A';System.out.println("charNumber: "+charNumber);intintNumber=charNumber;System.out.println("intNumber: "+intNumber);longlongNumber=charNumber;System.out.println("longNumber: "+longNumber);floatfloatNumber=charNumber;System.out.println("floatNumber: "+floatNumber);doubledoubleNumber=charNumber;System.out.println("doubleNumber: "+doubleNumber);}}
1.2.4 int → long、float、double
packagecom.qxt.src.chapt9.code1_2_4;publicclassExample{publicstaticvoidmain(String[]args){intintNumber=100;System.out.println("intNumber: "+intNumber);longlongNumber=intNumber;System.out.println("longNumber: "+longNumber);floatfloatNumber=intNumber;System.out.println("floatNumber: "+floatNumber);doubledoubleNumber=intNumber;System.out.println("doubleNumber: "+doubleNumber);}}
1.2.5 long → float、double
packagecom.qxt.src.chapt9.code1_2_5;publicclassExample{publicstaticvoidmain(String[]args){longlongNumber=1000000000000L;System.out.println("longNumber: "+longNumber);floatfloatNumber=longNumber;System.out.println("floatNumber: "+floatNumber);doubledoubleNumber=longNumber;System.out.println("doubleNumber: "+doubleNumber);}}
1.2.6 float → double
packagecom.qxt.src.chapt9.code1_2_6;publicclassExample{publicstaticvoidmain(String[]args){floatfloatNumber=3.14f;System.out.println("floatNumber: "+floatNumber);doubledoubleNumber=floatNumber;System.out.println("doubleNumber: "+doubleNumber);}}

2、强制类型转换(显式)

2.1 语法

强制类型转换就是大范围类型数据转换为小范围类型变量。需要手动加 (目标类型) ,可能丢失精度、溢出、变负数。

[目标类型][变量]=(目标类型)原值;(引用类型同样适用,后续章节介绍)
2.2 转换规则链
2.2.1 double → float、long、int、short、byte、char
packagecom.qxt.src.chapt9.code2_2_1;publicclassExample{publicstaticvoidmain(String[]args){doubledoubleNumber=100.0;System.out.println("doubleNumber: "+doubleNumber);floatfloatNumber=(float)doubleNumber;System.out.println("floatNumber: "+floatNumber);longlongNumber=(long)doubleNumber;System.out.println("longNumber: "+longNumber);intintNumber=(int)doubleNumber;System.out.println("intNumber: "+intNumber);shortshortNumber=(short)doubleNumber;System.out.println("shortNumber: "+shortNumber);bytebyteNumber=(byte)doubleNumber;System.out.println("byteNumber: "+byteNumber);charcharNumber=(char)doubleNumber;System.out.println("charNumber: "+charNumber);}}
2.2.2 float → long、int、short、byte、char
packagecom.qxt.src.chapt9.code2_2_2;publicclassExample{publicstaticvoidmain(String[]args){floatfloatNumber=100.0f;System.out.println("floatNumber: "+floatNumber);longlongNumber=(long)floatNumber;System.out.println("longNumber: "+longNumber);intintNumber=(int)floatNumber;System.out.println("intNumber: "+intNumber);shortshortNumber=(short)floatNumber;System.out.println("shortNumber: "+shortNumber);bytebyteNumber=(byte)floatNumber;System.out.println("byteNumber: "+byteNumber);charcharNumber=(char)floatNumber;System.out.println("charNumber: "+charNumber);}}
2.2.3 long → int、short、byte、char
packagecom.qxt.src.chapt9.code2_2_3;publicclassExample{publicstaticvoidmain(String[]args){longlongNumber=1000000000L;System.out.println("longNumber: "+longNumber);intintNumber=(int)longNumber;System.out.println("intNumber: "+intNumber);shortshortNumber=(short)longNumber;System.out.println("shortNumber: "+shortNumber);bytebyteNumber=(byte)longNumber;System.out.println("byteNumber: "+byteNumber);charcharNumber=(char)longNumber;System.out.println("charNumber: "+charNumber);}}
2.2.4 int → short、byte、char
packagecom.qxt.src.chapt9.code2_2_4;publicclassExample{publicstaticvoidmain(String[]args){intintNumber=100;System.out.println("intNumber: "+intNumber);shortshortNumber=(short)intNumber;System.out.println("shortNumber: "+shortNumber);bytebyteNumber=(byte)intNumber;System.out.println("byteNumber: "+byteNumber);charcharNumber=(char)intNumber;System.out.println("charNumber: "+charNumber);}}
2.2.5 short → byte、char
packagecom.qxt.src.chapt9.code2_2_5;publicclassExample{publicstaticvoidmain(String[]args){shortshortNumber=100;System.out.println("shortNumber: "+shortNumber);bytebyteNumber=(byte)shortNumber;System.out.println("byteNumber: "+byteNumber);charcharNumber=(char)shortNumber;System.out.println("charNumber: "+charNumber);}}
2.2.6 byte → short、char
packagecom.qxt.src.chapt9.code2_2_6;publicclassExample{publicstaticvoidmain(String[]args){bytebyteNumber=100;System.out.println("byteNumber: "+byteNumber);charcharNumber=(char)byteNumber;System.out.println("charNumber: "+charNumber);}}
2.2.7 char → short、byte

无符号(char)和有符号(short、byte)是两种完全不同的类型,必须进行强转。

packagecom.qxt.src.chapt9.code2_2_7;publicclassExample{publicstaticvoidmain(String[]args){charcharNumber='A';System.out.println("charNumber: "+charNumber);bytebyteNumber=(byte)charNumber;System.out.println("byteNumber: "+byteNumber);shortshortNumber=(short)charNumber;System.out.println("shortNumber: "+shortNumber);}}

章节预告 —— 算术运算符

http://www.jsqmd.com/news/887211/

相关文章:

  • 推荐题目:P1002 [NOIP 2002 普及组] 过河卒
  • 盒马墨水屏2.13低分屏,免费固件,只有公历和时间
  • 别再被‘找不到源文件’卡住了!IIS和.NET 3.5安装失败的终极排查手册
  • 面向科研领域的智能数据分析与AI工作流实战
  • ARM架构中CONSTRAINED UNPREDICTABLE行为解析
  • 2026年上海财产继承律师TOP5专业服务客观盘点:上海继承纠纷律师/上海起诉离婚律师/上海遗产分割律师/上海遗产处理律师/选择指南 - 优质品牌商家
  • SkillVLA:通过技能复用应对双-臂操纵中的组合多样性
  • Win10系统清理避坑指南:你的BAT脚本真的安全吗?盘点那些不能乱删的文件
  • 从病人分组到用户分群:利用二元变量相似度矩阵做聚类的完整流程(Sklearn实战)
  • 你的bWAPP靶场网络通了吗?VMware NAT模式配置与常见访问故障排查指南
  • Foundation 顶部导航栏详解
  • GPT-5.5 vs 国产大模型:2026年5月AI编程工具横评实测
  • 非接触电梯控制系统:基于Arduino与语音识别的低成本改造方案
  • 上海单方起诉离婚律师实测评测:上海离婚股权分割律师/上海离婚诉讼律师/上海离婚财产分割律师/上海离婚隐匿财产律师/选择指南 - 优质品牌商家
  • Windows 10/11系统下,SecureCRT 8.7.2保姆级安装与激活图文指南(含Keygen使用避坑点)
  • 选对名师少走弯路,感恩戴氏的马晓辉老师悉心教导
  • 【UniApp小程序开发】解决无法使用Vue自定义指令的完美替代方案:权限组件封装
  • BlockTable索引器支持字符串和ObjectId键
  • 20newsgroups数据集实战:从原始文本到TF-IDF向量,手把手教你搭建文本分类Pipeline
  • ARM SPE Profiling Buffer架构与性能优化实践
  • 工业风扇选型避坑指南:3个技术拷问,拒绝为虚标的L10寿命交学费
  • 荣耀时刻!格瑞普公司荣膺2026 UASE无人机展“金鹰奖”与“低空经济产业十强”双料大奖
  • 解决css线性渐变边框的radius问题
  • 串口通信粘包问题:成因深度解析与项目实战解决方案
  • 2026广州搬家打包权威机构推荐:广州搬家收纳、广州搬屋、广州搬迁、广州红木搬运、广州蚂蚁搬家、广州蚂蚁搬屋、广州专业搬家选择指南 - 优质品牌商家
  • 内网环境下Win7系统批量离线补丁部署实战指南
  • 2026雪花全粉辊筒干燥机技术拆解与主流品牌盘点:马铃薯雪花全粉设备、麦片辊筒干燥机、米粉辊筒干燥机、红薯全粉设备选择指南 - 优质品牌商家
  • 2026年近期温州专业的语音智能开关贴牌商选哪家?聚焦温州罗邦智能开关的深度剖析 - 2026年企业推荐榜
  • 用Python+Pandas+Seaborn复现Lending Club数据分析(附完整代码与数据集)
  • 华为正式发表半导体领域新定律