类加载时类的初始化和创建实例时的初始化顺序

寵の児 提交于 2020-03-16 20:12:26

1.类加载时类的初始化和创建实例时的初始化顺序

1、虚拟机在首次加载Java类时,会对静态初始化块、静态成员变量、静态方法进行一次初始化
 2、只有在调用new方法时才会创建类的实例
 3、类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法;再执行本类继承的子类的初始化块,最后是子类的构造方法
 4、类实例销毁时候,首先销毁子类部分,再销毁父类部分

JAVA类首次装入时,会对静态成员变量或方法进行一次初始化,但方法不被调用是不会执行的, 静态成员变量和静态初始化块级别相同,非静态成员变量和非静态初始化块级别相同。

 

 test类加载的时候首先进行静态成员初始化,之后进行静态代码块初始化,x=10,x=10+5,x=15/3

 test类加载的时候首先进行静态成员初始化,之后进行静态代码块初始化,x=10,x=10+5,x=15/3

 test类加载的时候首先进行静态成员初始化,之后进行静态代码块初始化,x=10,x=10+5,x=15/3

 

2.多线程操控共享资源采用锁的机制,与数据库的锁机制一样。

3.锁,分为读锁,和写锁。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!