码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA虚拟机类型转换

时间:2016-04-30 12:42:04      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:

  Java虚拟机包括血多进行基本类型转换工作的操作码,这些执行转换工作的操作码后面没有操作数,转换的值从栈顶端获得。Java虚拟机从栈顶端弹出一个值,对它进行转换,然后再把转换结果压入栈。进行int、long、float和double类型之间转换的操作码。

技术分享

这些操作码是把int类型转换为比int类型占据更小空间的数据类型。这些操作码从操作数栈中弹出一个int类型值,将它转换为能用byte、short或char类型描述的int类型值,然后再把这个转换后的int类型值压入栈。

Java虚拟机中没有把long、float、double类型值直接转换为比int类型占据更小空间的数据类型的操作码。那么把float类型值转换为byte类型需要两个步骤:1、float类型值必须通过f2i指令转换为int类型,然后,所得的int类型再通过i2b转换为byte类型值。

设计byte、short和char类型的运算操作首先会把这些值转换为int类型,然后对int类型值进行运算,最后得到int类型的结果,因此,如果把两个byte类型值相加,最后会得到一个Int类型的结果,如果需要得到byte类型结果,必须将这个int类型的结果显示转换为byte类型,否则会编译失败。

JAVA虚拟机类型转换

标签:

原文地址:http://www.cnblogs.com/yangsy0915/p/5448552.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!