java 类 加载 初始化_java类的加载与初始化

本文详细介绍了在Java中三种不同的类加载方式:命令行启动、`Class.forName()`动态加载和`ClassLoader.loadClass()`动态加载,重点对比了它们之间的区别,特别是对于静态语句块的执行情况。此外,还阐述了类的初始化时机以及程序执行结束的四种方式。内容深入浅出,适合Java开发者参考学习。
摘要由CSDN通过智能技术生成

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

版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值