A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李新辉 中级黑马   /  2013-10-31 21:13  /  665 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李新辉 于 2013-11-4 15:34 编辑

对象的初始化过程遵循以下的规律:
1、 如果存在继承关系,就先父类后子类;
2 、如果在类内有静态变量和静态块,就先静态后非静态,最后才是构造函数;
3 、继承关系中,必须要父类初始化完成后,才初始化子类。
--------------------------------------------
类的加载:
当在cmd操作台调用java命令执行文件的时候,虚拟机先从main函数读起(主函数为静态),然后装载器(loader)就会寻找和main同名的class文件
class类文件就被加载进内存方法区
如果有继承,就先加载父类,还有父类的父类,这个时候还没有对象的存在(注意类文件在加载时,同样遵循先父类后子类

加载类文件的同时执行类文件中的静态代码块对类进行初始化,
类初始化顺序遵循从先父类后子类,本类内部从上往下。因为子类的初始化有可能会用到父类的静态成员,这个顺序很重要

这个时候类就加载并初始化完毕,下一步就该建立对象了
-----------------------------------
对象的建立:(对象初始化时先父类后子类,类内部是从上往下,顺序很重要)

然后就在内存中为父类开辟空间  并进行默认初始化
接着就在内存中为子类开辟空间  并进行默认初始化

默认初始化完成后,
从父类开始显示初始化并执行非静态方法块和构造函数,
然后再子类开始显示初始化并执行非静态方法块和构造函数。

当数据都建立完毕,对象就初始化完成了

对象就是来封装数据的,java里数据只有被封装在了对象里,才能为我们所用……

万物皆对象……

评分

参与人数 1黑马币 +3 收起 理由
黄炳期 + 3 辛苦了~

查看全部评分

3 个回复

正序浏览
有什么不足之处还望大家多多之处哦……
多多交流,共同进步……
回复 使用道具 举报
我顶………………
回复 使用道具 举报
手敲个字都能乱码  
又让再整理一遍

真苦逼……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马