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

12.类型转换

类型转换

  • 由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换

  • 运算中,不同类型的数据先转化为同一类型,然后进行运算

    低---------------------------------------------------------->高(这个从低到高是它的容量,就是它的字节大小)

byte,short,char->int->long->float->double

float是32位,long是64位,而在上面的排序中,却是float却在long的后面,是因为小数的优先级一定大于整数

public class Demo05 {public static void main(String[] args) {int i = 128;byte b = (byte)i;//加了括号的转换就叫强制转换System.out.println(i);//输出128System.out.println(b);//输出-128//byte 最大值是127,而我们代码给b赋值128,这样就导致了内存溢出//内存溢出了,它的值就完全变样子了//我们转换的时候要避免内存溢出的情况}
}
  • 强制类型转换

    强制转换:(类型)变量名

    强制转换是从高转到低:高--->低

  • 自动类型转换

    从低到高不需要强制转换,就是自动转换

    自动转换什么都不用写,它字节就转换了

    public class Demo05 {public static void main(String[] args) {int i = 128;double b = i;System.out.println(i);//输出128System.out.println(b);//输出128.0}
    }
    

注意点

  1. 不能对布尔值进行转换,布尔值是按位的,不能进行这个预算

  2. 不能把对象类型,转换为不相干的类型

  3. 在把大容量转换为低容量的时候,强制转换

  4. 转换的时候可能存在内存溢出,或者精度问题!

    public class Demo05 {public static void main(String[] args) {System.out.println((int)23.7);//23System.out.println((int)-45.89f);//45}
    }

像上面的代码就是精度丢了,23.7int后,最后输出23,后面的小数的小数不见了

public class Demo05 {public static void main(String[] args) {char c = 'a';int d = c+1;System.out.println(d);//98System.out.println((char) d);//b}
}

char的本质是数字

所有字符的本质是数字,在上面的代码中c=a=97,c+1=98,强制反转98就是b

Unciode表中a=97,顺位下来b=98

操作比较大的数的时候,注意溢出问题!

public class Demo06 {public static void main(String[] args) {//操作比较大的数的时候,注意溢出问题!//JDK7的新特性,数字之间可以用下划线分割_int money = 10_0000_0000;//下划线并不会被输出System.out.println(money);//1000000000int years = 20;int total = money*years;System.out.println(total);//-1474836480,计算的时候溢出了long total1 = money*years;System.out.println(total1);//-1474836480,// money*years已经默认位int了/*total=-1474836480total=money*yearstotal1=money*yearstotal=total1total1=-1474836480* * */}
}

在上面的代码中money, years默认是int,最开始给money, years赋值的时候也是int,

在long total1 = money*years;中

money*years计算完然后转化位int,

然后int再转化为long, 但是int转化之前已经存在问题

int转化位long 为低转高,所以它自动转化了,total1最后输出为-1474836480

解决办法

public class Demo06 {public static void main(String[] args) {//操作比较大的数的时候,注意溢出问题!//JDK7的新特性,数字之间可以用下划线分割_int money = 10_0000_0000;//下划线并不会被输出System.out.println(money);//1000000000int years = 20;int total = money*years;System.out.println(total);//-1474836480,计算的时候溢出了long total1 = money*years;System.out.println(total1);//-1474836480,默认int,所以算出来还是有问题long total3 = money;long total4 = years;long total5 = total3*total4;System.out.println(total5);//20000000000//上面是自己想的笨方法,就是把他们两,先全部转化为long;然后再算他们的乘出来的值long total123 = money*((long)years);//老油条方法,先把他们其中一个数转化为long,就可以了long total1234 = ((long)money)*years;System.out.println(total123);//20000000000System.out.println(total1234);//20000000000}
}

代码要精简易读,所以用老油条的方法

int和long运算时自动转化为long,而不加(long)是默认两个int运算后再转long

long赋值后面加L,大写和小写l都是可以的,都是小写l和数字1,带代码中很像,为防止错认成数字,都用大写L

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

相关文章:

  • 2026镀铜钢行业精选:品质与服务并重的企业,铜包钢接地棒/覆铜钢棒/接地施工队伍/铜排焊接模具,镀铜钢厂商有哪些 - 品牌推荐师
  • SvelteKit 服务端渲染深度解析
  • 强烈安利! 降AI率工具 千笔·降AIGC助手 VS Checkjie,专科生专属
  • 2026年 PP管材厂家实力推荐榜:PP管道/PP管件/PP阀门/PP法兰/PP弯头/PP三通/PP球阀/PP蝶阀,精选耐腐抗压工业流体输送解决方案 - 品牌企业推荐师(官方)
  • 主流降ai率工具大汇总,论文降aigc一篇搞定(含免费降ai率工具) - 晨晨_分享AI
  • 2026老化房优质厂家推荐榜:高温试验箱厂家、uv紫外耐候老化试验箱、三箱式冷热冲击试验箱、三综合老化试验箱选择指南 - 优质品牌商家
  • 闲置卡券变现必看:5家靠谱卡券回收平台深度测评 - 资讯焦点
  • 2026年3月椭圆异型管厂家推荐,椭圆截面钢管实力企业 - 品牌鉴赏师
  • SvelteKit 加载函数深度解析
  • 2026年 蚀刻工艺厂家推荐排行榜:金属/五金/不锈钢/铜蚀刻,卷对卷料带连续蚀刻、精密及微孔蚀刻技术深度解析 - 品牌企业推荐师(官方)
  • ONLSO昂里素深化规范渠道合作,益生菌品牌构建长期竞争壁垒 - 资讯焦点
  • TongWeb8.0 hibernate事务接口
  • 聊聊广州翻译工具服务口碑好的公司,怎么选择? - myqiye
  • 分析北京好用的翻译工具,轻寻科技的服务在当地靠谱吗? - mypinpai
  • SvelteKit 文件路由深度解析
  • 2026年蓄电池代理机构推荐,有实力的蓄电池代理机构哪家靠谱 - 工业推荐榜
  • 聊聊2026年北京好用的翻译工具服务,轻寻科技口碑出众值得选 - 工业设备
  • VirtualLab:衍射角计算器
  • 2026年上海力卡卡板箱服务商推荐,哪家值得选 - 工业品网
  • 2026年3月民用清洁盐酸厂家推荐,精准检测与稳定性能深度解析 - 品牌鉴赏师
  • 从Vue到Spring Boot:一个Java全栈开发者的面试实战
  • Linux boot和根目录扩容
  • 2026 Python 毕设天花板 30 题!零基础也能做,避开 CRUD,查重率 0%
  • 2026年承插焊管件厂家推荐排行榜:承插法兰/弯头/三通/隔膜阀/球阀/止回阀/高压阀/焊接管件,专业工业流体连接解决方案精选 - 品牌企业推荐师(官方)
  • 2026年UPVC管材厂家推荐排行榜:UPVC管/管件/阀门/法兰/弯头/三通/球阀,耐腐蚀高精度工业流体解决方案优选 - 品牌企业推荐师(官方)
  • 2026年全国热门的拆迁维权律所推荐:处理房屋拆迁纠纷靠谱的律所排名 - 工业品牌热点
  • 深度学习框架目标检测算法基于yolov8的垃圾分类系统 可回收垃圾 / 可回收物 有害垃圾 / 危险废物 厨余垃圾 / 餐厨垃圾 其他垃圾 / 其它废弃物的训练及应用
  • 2026 小程序毕业设设计王炸 30 题!云开发 + 校园场景,0 基础也能搞定,查重率 0%
  • MioCodec音频编解码器:高效语音建模新突破[特殊字符]
  • 2026年岩棉板制造厂商推荐,口碑佳选打造舒适空间,保温结构一体板/岩棉板/保温装饰一体板,岩棉板生产厂家排行榜 - 品牌推荐师