java里是先有的class还是现有的object?
来源:互联网 发布:linux上安装redhat 编辑:程序博客网 时间:2024/06/01 08:26
Java的对象模型中:
- 所有的类都是Class类的实例,Object是类,那么Object也是Class类的一个实例。
- 所有的类都最终继承自Object类,Class是类,那么Class也继承自Object。
这个问题看起来就像是先有鸡还是先有蛋,但实际上1是错误的,准确来说,所有的类对象都是Class的实例。Object是一个抽象的结构,没有实例化的Object并不是Class的一个实例。
第二句话是则是正确的,所有的类最终都会继承Object,包括Class。
那在jvm的初始化过程中,到底是先有的Class还是先有的Object?
其实是在一种混沌的状态下初始化的,再建立两者之间的关系。
混沌
在“混沌”(boostrap过程)里,JVM可以为对象系统中最重要的一些核心类型先分配好内存空间,让它们进入[已分配空间]但[尚未完全初始化]状态。此时这些对象虽然已经分配了空间,但因为状态还不完整所以尚不可使用。然后,通过这些分配好的空间把这些核心类型之间的引用关系串好。到此为止所有动作都由JVM完成,尚未执行任何Java字节码。然后这些核心类型就进入了[完全初始化]状态,对象系统就可以开始自我运行下去,也就是可以开始执行Java字节码来进一步完成Java系统的初始化了。
阅读全文
0 0
- java里是先有的class还是现有的object?
- java怎么还是那么渣O(∩_∩)O哈哈~Class,Object这些混淆的概念
- 先有Class还是先有Object?
- java Class object
- java Object class分析
- Java Class Object
- Java Object和Class
- Java Class&Object
- Class、Object的关系
- Scala和Java的区别--Object与Class的区别
- Java Object and Class基本
- Java Class/Object Memory layout
- Java Class 没有父类 怎么继承 Object的
- object.getClass()和Object.class的区别
- Objective-C的object、class、meta-class
- Class<Object>与Class<?>的区别
- 这个函数是手动声明的还是向导里有的??
- 对攻读计算机研究生的看法(差距还是有的)
- JAVA----关于数组模拟链表的练习总结
- java基础(二)——继承
- 常见缓存更新策略
- linux用户权限管理
- Leetcode | Convert BST to Greater Tree
- java里是先有的class还是现有的object?
- HDU 4436 str2int
- slowhttptest
- 深度学习动手入门:GitHub上四个超棒的TensorFlow开源项目
- Linux搭建SVN服务器
- 使用sublime text 3
- Ubuntu远程登录服务器失败
- Python 3.6.1 安装mlab 出现二进制和str文本格式转换问题
- LCX端口转发源码分析