java 对象类型信息 存在哪? 强制类型转化的时候需要执行哪些检查以确保程序的正确性?
3 回答
汪汪一只猫
TA贡献1898条经验 获得超8个赞
JVM维护了一个叫方法区的内存区域。方法区里保存了所用到的类型信息,如该类的全限定名,直接父类的全限定名,指向classloader的指针,指向Class对象的指针等等。
所有在堆上创建的对象都有一个指回方法区的指针,该指针指向了该对象的实际类型信息。
执行instanceof的时候,JVM就是通过查找方法区中的类型信息来获得结果的。在做类型转换时,JVM同样需要检查类型信息,以判断该转换是否合法
慕哥9229398
TA贡献1877条经验 获得超6个赞
毫无疑问,对象信息肯定在堆内存啊
栈内存知识存储了对象的一个句柄
可以先用instanceof关键字判断对象是否是你准备转换的类型,然后再向下转换,比较安全
添加回答
举报
0/150
提交
取消