1.类加载子系统与方法区
类加载子系统其实就是我们经常听到的虚拟机中的类加载器,类信息它是负责从文件系统或者网络中加载class信息,加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中可能还会存放运行时的常量池信息,包括字符串字面量和数字常量
2.Java堆
Java堆在虚拟机启动的时候建立,它是Java程序中最主要的内存工作区域。几乎所有的Java对象实例都存放在Java堆。堆空间是所有线程共享的
3.直接内存
Java中的NIO库允许Java程序使用直接内存,直接内存是在堆外的,直接向系统申请的内存空间,所以通常访问速度会优于Java堆
4.垃圾回收系统
垃圾回收系统可以对方法区,Java堆和直接内存进行回收。其中Java堆是垃圾收集器的工作重点。不像C/C++的free(),delete()这样的函数释放制定的内存区域,Java中的垃圾回收系统会在后台默默工作,释放垃圾对象
5.Java栈
每一个Java虚拟机线程都有一个私有的Java栈,一个线程的Java栈在线程创建的时候被创建,即线程没有创建时,就没有Java栈。Java栈中保存着一个帧信息,局部变量,方法参数,同时和Java方法的生命周期(即方法的调用和返回)有着密切关系
6.本地方法栈
本地方法栈和Java栈类似,最大的不同则是Java栈用于方法的调用,而本地方法栈则用于本地方法的调用
还有的基础慢慢补充....