java中构造方法不是的执行流程和类加载器的区别

首先,这个问题的答案是:java中的构造函数不是静态的。但是,构造函数是做什么的,运行机制是什么,比知道答案更重要。

一、我们先从java的运行机制说起。程序员编写好.java文件后,由jdk提供的javac工具编译。编译完成后生成一个.class字节码文件,jvm可以运行。jvm在运行.class字节码文件时,通过类加载器将字节码中的指令存入jvm打开的内存中的方法区,然后利用程序计数器配合执行引擎执行方法区刚刚加载。在这些说明中。

二、那么我们知道了java的运行机制构造方法没有返回类型,我们来说说类是如何加载的。

1.加载类时,首先要验证.class文件的正确性构造方法没有返回类型,即验证.class文件是否为java程序。

2.其次,类加载器为类的静态变量分配内存空间,并赋予默认值。

在3.之后,类加载器加载这个类中引用的其他类

4.之后,类加载器将指定的值赋给之前分配的静态,并执行静态代码块

我们发现在类加载的过程中,静态部分被创建并执行了,但是构造函数并没有被执行。那么我们就可以知道静态部分是在构造函数之前执行的。那么,构造函数什么时候执行呢?

结合上述一、两点,当类加载完毕,开始使用类时,程序计数器配合执行引擎执行类构造函数,创建类对象。

至此,我们了解了JVM的执行过程和类的加载过程,弄清楚了构造方法和静态的区别。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论