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
版权声明:本文为博主原创文章,转载请附上博文链接!