常量在内存中是如何表示的?例如:int i=3;这个3是个整数常量.怎么表示的呢? 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是32位的,那么下面的: byte b=3;又是怎么赋值成功的呢? <<深入java虚拟机>>有详细解释 3都是int的,,赋值给byte的时候截断为8位。而3L就是64位了。 楼上的说的不对,常量怎么有int型.退一步说,3如果是int型,byte b=3;应该报错,因为目标类型的取值范围小于右边的范围 java 中一个整型(int)是以4个字节表示的. 一个空对像是一个32位的指针.java 对字节的按排是高位在前,低位在后.比如一个短整型(short)2个字节也就是说2*8=16位.如果像前面说的byte b = 3,实际上在符值的时候已经把高位截掉了.因为1个字节是8位,能存放不超过255的数字,所以尽管3为整型,高位是没有数据的全部为0,所以截掉并不影响结果,但如果附值超过255时就会出现溢出,而在java中,系统是会自行检查,是不能附值的.编译也通不过. 哦,也就是说java中,系统在进行诸如 byte b=3;这种赋值是会自动检查,如果可以赋值就截断然后再赋值,超出了127就溢出处理? java如何过虑Active Directory中禁用的用户? 用javamail读取邮箱中邮件的总数为什么会出错? 求助:java版本问题 java读取excel里的数据到数据库 java高手帮我看看这段代码表达的意思,赠100 关于String的创建 JAVA驻留程序,请大家给个思路,有代码更好,谢谢。 java3D 打包后运行异常敬请辅导 简单问题(极品菜鸟问题) 修改tree节点Title的问题 请问System.out.println('a'+1);与System.out.println(""+'a'+1);的区别是什么? 为什么这个简单的矩阵算法都有问题?
byte b=3;又是怎么赋值成功的呢?
java 对字节的按排是高位在前,低位在后.比如一个短整型(short)2个字节也就是说2*8=16位.如果像前面说的byte b = 3,实际上在符值的时候已经把高位截掉了.因为1个字节是8位,能存放不超过255的数字,所以尽管3为整型,高位是没有数据的全部为0,所以截掉并不影响结果,但如果附值超过255时就会出现溢出,而在java中,系统是会自行检查,是不能附值的.编译也通不过.