1、jvm,java virtual Machine其实就是虚拟在计算机上的一个计算机,但是他和vmware又不一样,后者是能看到的,而jvm 是看不到的,他是在内存中。
2、jvm有个部分叫做class loader,把类加载到虚拟机中执行就靠他。其实对class文件的格式jvm是有判断的。但是判断的工作并不是这个class loader,而是jvm的另一部分解释器 execution engine。
3、jvm有个部分叫做栈,遵循先进后出的原则,保存的是基本数据类型,他的工作模式可以这里来理解,比如最开始调用方法A,A就被压缩在栈的底部,但是A方法又调用了B方法,再执行到B方法的时候B方法又被压缩进了栈内在栈顶,所以B是后进但是会等B方法执行完成后跳出栈,先出来,出来后继续轮到A方法执行完,之后A执行完就线程结束栈也释放。
4、jvm有一个部分叫堆,堆内存分为三个部分,第一个是永久存储区其实就是上次说的持久代,新生区就是上次说的年轻代,养老区其实就是上次说的年老区。新生区又分伊甸区Eden Space和幸存者区 survivor Space,对象都是在伊甸区这里创建的,这个区满了就会放到幸存者0区,0区满了就会放到幸存者1区,1区还满了的话就会被放到年老区就是养老区,垃圾回收也是这样的流程。
5、持久区也叫永久存储区,他存放的东西就是像java class,还有类变量就是静态变量,不是静态变量的叫做实例变量。
时间: 2024-10-08 10:44:28