JVM加载一个类的机制

     首先,在了解jvm加载类之前,我们应该先了解该类中的成分:


             一个类中若包含了:(1)静态块 (2)代码块 (3)main方法 (4)构造函数

              那么,在java虚拟机里如何加载一个类呢。


            通过一个简单的代码运行就可以得出结论:


             public class Test{

                                       Test(){

                                                        System.out.println("构造方法");

                                         }

                                        static {

                                                         System.out.println("静态块");

                                         }

                                        {

                                                            System.out.println("实例块");

                                          }

                                    public static void main(String[] args){

                                                           System.out.println("main方法");

                                                         //   new Test;

                                      }

             }

在这样的程序中,只会输出:静态块

                                                     main方法

因为我们在main中并未实例化一个对象。


因此不会有构造方法的调用,也不会有实例块的调用。


但是 ,如果我们加上注释掉的  new Test;会输出的即为:静态块

                                                                                                    main方法

                                                                                                    实例块

                                                                                                    构造方法

由此,我们可以看出来,JVM加载类时的顺序:静态块——main方法——实例块——构造方法(当然前提是该类中,有main方法,如果没有main函数,就跳过这节,如果有其他的方法,则是什么时候调用,什么时候运行。在构造方法之后。)


因此,可以看出,如果我们想配置什么环境设置,运行前检测环境等功能时,可以将代码加载静态块中。


如果想要校验一些数据,可以再实例块中加入对应代码。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值