java类的加载与初始化

https://blog.csdn.net/u013349237/article/details/71076617

1在命令行启动虚拟机jvm进行加载,

2用class.forname()方法进行动态加载;

3用ClassLoader.loadClass()进行动态加载;

区别:用二方法加载时,还会对类进行解释,执行其中的static语句块;

          用三方法时候,static语句块不会被执行,只有在类创建对象的时候才会加static语句块;

注意:class.forname(name,initialize,loader)也可以自己定义是否加载static,并且是调用了NewInstance()方法

采用构造函数创建对象的时候才可以;

初始化:只有在使用时类才会被初始化。

1 初始化,也就是new时候会初始化类

2 访问类或者接口中的静态变量或者对其赋值

3 调用类的静态方法

4 反射(Class.forName("com.geminno");)

5 初始化它的子类,父类也会初始化

6 虚拟机启动时被标明是启动类的类(java Test),直接用java.exe运行某个类;

程序执行结束的几种方式:

1 system.exit();

2 正常执行完毕;

3程序运行错误,报错

4系统出现问题,虚拟机停止运行;


---------------------
作者:lijian159148528
来源:CSDN
原文:https://blog.csdn.net/lijian159148528/article/details/79717143
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自www.cnblogs.com/minikobe/p/9882245.html