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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

显示初始化时什么。那个初始化顺序是什么啊!他的优先级呢?

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

2 个回复

倒序浏览
你说的显示初始化就是形如:
private String name = "zhangsan";
这样的,就叫显示初始化。
还有就是你说的应该是初始化顺序那块的东西, 关于包含静态代码块的类,初始化相关可以概括为以下内容[size=14.666666984558105px]1static代码块:静态代码块。 静态代码块的作用也是完成一些初始化工作。首先执行静态代码块,然后执行构造方法。静态代码    块在类被加载的时候执行,而构造方法是在生成对象的时候执行;要想调用某个类来生成对象,首先需要将类加载到Java 虚拟    机上( JVM),然后由JVM 加载这个类来生成对象。
2)类的静态代码块只会执行一次,是在类被加载的时候执行的,因为每个类只会被加载一次,所以静态代码块也只会被执行一次      而构造方法则不然,每次生成一个对象的时候都会调用类的构造方法,所以 new 一次就会调用构造方法一次。
3)如果继承体系中既有构造方法,又有静态代码块,那么首先执行最顶层的类的静态代码块,一直执行到最底层类的静态代码块   然后再去执行最顶层类的构造方法,一直执行到最底层类的构造方法。 注意:静态代码块只会执行
   一次。

类加载初始化顺序,根据毕老师基础视频总结如下:
Person p = new Person(“zhangsan”,20;

类加载----静态代码块----在堆内存中开辟空间分配内存地址----在堆内存中建立对象的特有属性并进行默认初始化----对属性进行显示初始化----对对象构造代码块初始化---对对象对应的构造函数初始化---讲内存地址赋值给栈内存中的p变量。

回复 使用道具 举报 1 0
feng_0207 发表于 2014-11-3 16:19
你说的显示初始化就是形如:
private String name = "zhangsan";
这样的,就叫显示初始化。

明白了。谢谢!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马