首先,java在内存开辟分区为:栈内存,堆内存,方法区,还有一个区我不知名字,(知道的,请分享)
这是我个人的猜测:肯定有很多不对或不知道,愿指证!
类加载器将.class文件加载到了方法区中, 其存在形式是字节码, 称为一个对象:字节码文件对象,
在方法区中字节码对象又被分区存放了: 静态变量和静态方法存在方法区的静态区,普通方法存在方法区的变通方法区,对于其他成员变量可能还有相关的区存放
下面对了解的一点运行过程也分析一下,指正:
当程序运行到方法时或普通成员变量时,就会将方法区中的方法或成员变量加载到栈内存,
当栈内存在的方法运行到new一个对象时,方法区中的字节码对象被new(加载)一个到堆内存,方法区中的方法或变量运行过后在栈内存被释放,
如果上面的完全不对,也有可能是栈内存,堆内存,方法区之外的另外一个区,存放了字节码对象
|