JAVA 中 Object 和 Class ,谁是鸡?谁又是蛋?

才疏学浅,博君一笑,文字观点难免有批错疏漏之处,多多包涵。尽信书不如无书,望斟取。我会尽最大努力为自己的文字负责,如有指教,欢迎沟通。主为己记录学习,若汝看过有思,吾倍感足也。

1. 都是对象,我的呢?

JAVA中一切皆对象,所以也可以说一切皆有类。

在这里插入图片描述
Class 和 Object 也是两个类,不过他们有点特殊,都是由JVM自带的,出生显贵,可谓 JVM 左膀右臂。那么接下来就简单介绍一下,他们两位的传奇身世,他们之间的爱恨情仇。以及和我们之间又有什么瓜葛呢?

2. 家族背景

Object 是所有类和接口的父类,不需要显式地 extends(不管你承不承认,我都是爸爸 )。
在这里插入图片描述
Class 类,在其他所有类载入 JVM 时候都会创建一个与之对应的 Class 类型的对象(保存类的相关信息),自动由 JVM 创建(想自己创建,不好意思,不可以 )。

3. 江湖恩怨

JVM 大背景下,Class 和 Object 双子星皆为一人之下,万人之上,谁都当仁不让。二者之间的千丝万缕,又该如何理清呢?

3.1 一码归一码

  1. 既然 Object 是所有类的父类,那么他也是 Class 类的父类(这是没有问题地 )。
  2. 如此,在 JVM 创建装载 Class 类型的对象时,理论上需要先初始化其父类 Object 的构造,然后再初始化自己(这也是没有问题地 )。
  3. 但是,别忘了 Class 的身份:一切类在装载入 JVM 时都会创建一个与之对应的 Class 类对象,Object 类也不例外,于是问题产生了。

3.2 你行你先

在 JVM 装载 Object 类时需要创建一个 Class 类型对象与之对应,但在创建一个 Class 对象时又需要先初始化其父类 Object。理论上看着,二者在装载初始化自己的过程中,彼此需要对方先初始化好(谁先可用)。如此,陷入了类似鸡和蛋谁先存在的问题?(鸡需要先有蛋才能被孵出来,蛋需要先有鸡才能被生出来)。
在这里插入图片描述

问题不解决,那这个世界上就不仅仅没有 JAVA,那么鸡和蛋也会因为谦虚推脱谁先谁后的问题鸽了地球人的餐桌,还有各种类似的问题,例如先有男人还是先有女人等等层出不穷的问题都会令我佛头大,最后一切归于空空如也~

3.3 有谱么?

所幸,混沌开元,万物初始,并没有被如此等等根本问题所桎梏。创世纪之初,问题被解决了(虽然我目前没有答案,你有么?进化论?)。不管怎样,解决了,于是有了太阳万物,有了你我,有了文字字符,有了 0 和 1 (看到这二位,是不是有种真混沌的赶脚~)。

4. 大结局

看到 JVM 加载字节码跑出的 【HELLO WORLD !】 表明以上问题和担忧已经不在了。
在这里插入图片描述
深入底层,探寻本质,才是学习所以然的最好方式,所以在 JVM 中有了这样的答案:

在程序启动,JVM 初始过程中,有一个 BootStarp 阶段,该阶段类比混沌开元,一切并没有轮廓分明,包括 Class 和 Object 的关系。在 JVM 内存中给他们配有“特区”,让他们同时进行初始化(并不是我等你先,你等我先式的),当他们都完成可用后,之后程序的运行,一切就按照既定的规定往下运行了。

5. 错过彩蛋,就错过了全部

在这里插入图片描述
以上都是为了抛砖引玉哈,以下这两位大牛的博文才是重点。(黔家仔,仔呀,为了引导你来学习,我可是用心了呢,好好和盆友们一起好好读读下面两篇文章吧,也不费我用心良苦了吼

1. 先有 Class 还是先有 Object ?

2. JAVA 中的 Class 类和 Object 类

如果文章中一个点或者一句话对您有一点点帮助或者启发,请小伙伴们不要犹豫一键三连(点赞,评论,关注)哦,那是对黔家仔我最大的鼓励哈,博文有什么问题或错误,欢迎留言评论沟通吼。谢谢您嘞。
世界这么大,我只是一个永远需要不断学习和思考的小学生,感谢所有的挫折和困难。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值