不可不知的JVM 中堆 Heap、栈 Stack、方法区 Method area 、本地方法区 Native method area

来源:互联网 发布:阿里云服务器可以干嘛 编辑:程序博客网 时间:2024/06/03 02:56

每个jvm实例都有方法区和一个堆(hasone method area and one heap)。这两个区域被jvm中的线程共享。当JVM加载了一个class文件后,则class中的参数、类型等信息会存储在方法区中。程序运行时所有创建的对象存储在堆中。

         当每一个新线程启动时会有自己的程序计数器pcregister (program counter)和栈,如果线程调用方法,则程序计数器表明下一条执行的指令。线程栈存储线程的方法调用状态(包括局部变量、和被调用的参数、返回值、中间结果)。上面所说本地方法(见下图)调用相独立,本地方法调用存储在独立的本地方法栈中,或其他独立的内存区域。


         每个线程都有一个程序计数器,也就是会说每创建一个线程时就会创建一个程序计数器,JVM中所说的程序技术器区域就是所有线程程序计数器取得总称。

         栈区域是由栈桢组成,每个栈桢就是每个调用的方法的栈。当方法调用结束时JVM会POPS栈,即抛弃此方法的栈桢。

0 0
原创粉丝点击