我是新手,请问一下方法在加载进堆的时候,是先读取方法区里的类信息,可以这样理解吗?
比如说我写一个类,在没有new的时候,它的信息是在方法区吗?然后当我new 了之后,读取方法区里的信息,然后加载进堆里。
------解决思路----------------------
java中的所有信息首先会转换成字节码class文件(可以理解成一条一条的jvm指令),然后方法和堆没有关系,堆是用来存储对象的,而方法的执行和栈息息相关,每个线程拥有一个独立栈,每一个方法就是其中一个栈帧,可以理解为每个方法的执行到结束,就是该栈帧进栈和出栈的过程。具体细节可以参考《jvm原理》
------解决思路----------------------
你这么理解过于复杂了。当你定义好一个类的时候,其实就是指做了一个 模板。当用到new的时候,就从这个模板里产生出了这个类的一个实例