`
JiongBull
  • 浏览: 8334 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

解惑6:多重转型

 
阅读更多

[声明]所有代码均来自Joshua Bloch和Neal Gafter所著的<Java解惑>一书,本人仅因学习需要摘抄和注释,感谢二位作者的知识分享.

 

代码:

 

public class Multicast {
    public static void main(String[] args) {
        System.out.println((int) (char) (byte) -1);
    }
}
 

结果:

 

65535

 

分析:

int类型的数值-1经过两次转换后再转换回int型时数值竟然发生了改变,这是为什么?

int类型的-1(0xFFFFFFFF)转换成byte时会进行截取-1(0xFF)

byte类型再转换成char类型时,因为char是无符号型,所以符号位会当成普通二进制位进行转换为0xFFFF

再转换成int型时值为0x0000FFFF,即为:65535.

 

分享到:
评论

相关推荐

    java 解惑.pdf

    **谜题6:多重转型** - **描述**:涉及到多个数据类型的相互转换,但结果却与预期不符。 - **解惑**:数据类型转换是Java中的常见操作,但需要注意自动类型提升和显式转换的区别。当从低精度类型转换到高精度类型时...

    java解惑很全的题目

    ### 谜题 6:多重转型 多重转型涉及Java的多态性和类型转换。在Java中,向上转型(父类引用指向子类对象)是自动的,而向下转型(子类引用指向父类对象)需要显式进行,并可能抛出`ClassCastException`。 ### 谜题 ...

    java 解惑.doc

    6. **多重转型**:Java的多态性和类型转换是其核心特性之一,谜题6可能讨论了不当转换导致的错误。 7. **互换内容**:在Java中,两个对象的互换可能不那么简单,尤其是对于非基本类型的对象,谜题7可能涉及对象引用...

    Java解惑(谜题)CHM中英文双版本

    谜题6:多重转型 谜题7:互换内容 谜题8:Dos Equis 谜题9:半斤 谜题10:八两 Java谜题2——字符谜题 谜题11:最后的笑声 谜题12:ABC 谜题13:畜牧场 谜题14:转义字符的溃败 谜题15:令人晕头转向的...

    学校教师的个人述职报告锦集7篇.docx

    随着时代的发展,教师的角色早已超越了传统的“传道、授业、解惑”的范畴。在现代教育体系中,教师不仅要具备扎实的专业知识,还需要具备多元化的技能和素养,以适应教育教学的综合性和服务性的需求。本文将结合教师...

Global site tag (gtag.js) - Google Analytics