1.JVM(java虚拟机)

全称 java virtual macine ,一种能够运行java字节码的虚拟机,作为一种编程语言的虚拟机,实际上不只是专用于java语言,只要是生成的编译文件匹配JVM对加载编译文件格式要求,任何语言都可以由JVM编译运行。简单来说,就是一次编译,多次运行。

分为三分部:

(1)类加载子系统

也就是.class文件

(2)运行时数据区(内在结构)

分类五部分:

a. 方法区(method area)

类的所有字段和字节码,以及一些特殊方法;如构造器,接口代码也在这里定义。简单来说,所有定义的方法的信息都保存在该区域,静态变量,常,类的信息(构造方法,接口定义),运行时常量池都存在方法区中。虽然JAVA虚拟机规范把方法区描述为堆的一个逻辑分区,但是它却有一个别名叫NON-Heap(非堆),目的可能是为了和java的堆区分开。

b.堆(Heap)

虚拟机启动时自动分配创建,用于存放对象的实例,几乎所有的对象都在堆上分配内在,当对象无法在该空间申请到内在将抛出ourOfMoryErroy异常,同时也是垃圾收集器管理的主要区域。

同时又分为新生代,老年代和元空间。

posted on 2020-08-12 13:34  恋你如初之BUG  阅读(142)  评论(0编辑  收藏  举报