来自:Shawn_wang - 博客 (点击尾部阅读原文前往) 一、JVM体系结构 1.1 JVM中主要包括(PC寄存器,栈,)(堆,方法区,)本地方法区一个Java线程中,包括PC寄存器(保存当前执行的指令位置),和栈帧(一个方法对应一个栈帧),本地变量(保存计算中的临时数据),当一个线程结束后,线程内所有数据就自动销毁,不需要垃圾回收。
将1压入栈中,将2压入栈中,将1,2弹出计算1+2,将3压入栈顶,OVER。 方法区是堆的一部分,就是java的永久区PermGen。
本地方法区是为了JVM运行native方法(c/c++等语言写的方法)准备的区。 1.2 内存分配方式:
在编译时确定需要的内存空间,当程序加载时系统把内存一次性分配给它。静态内存分配是在java栈上分配的,当方法结束时对应的栈帧也就撤销,所以分配的内存空间就被回收。
上面一段代码会占用内存空间4+4+8+4+4=24。
程序执行的时候才知道要分配的内存大小,当对象创建的时候,在堆上给对象分配一块空间,空间回收时间不定,由JVM垃圾回收器管理。 1.3 垃圾回收算法
●本文编号1564,以后想阅读这篇文章直接输入1564即可。 ●本文分类“Java”搜索分类名可以获得相关文章。 ●输入m可以获取到文章目录 Java编程↓↓↓ C/C++编程↓↓↓ |
|