没有合适的资源?快使用搜索试试~ 我知道了~
JAVA内存管理总结.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 107 浏览量
2021-10-04
18:36:25
上传
评论
收藏 29KB PDF 举报
温馨提示
试读
10页
JAVA内存管理总结.pdf
资源推荐
资源详情
资源评论
JAVA 内存管理总结
1. java 是如何管理内存的
Java 的内存管理就是对象的分配和释放问题。(两部分)
分配 :内存的分配是由程序完成的, 程序员需要通过关键字 new 为每个对象申请内存空间 (基
本类型除外 ),所有的对象都在堆 (Heap) 中分配空间。
释放 :对象的释放是由垃圾回收机制决定和执行的, 这样做确实简化了程序员的工作。 但同时,
它也加重了 JVM 的工作。 因为, GC 为了能够正确释放对象, GC 必须监控每一个对象的运行状
态,包括对象的申请、引用、被引用、赋值等, GC 都需要进行监控。
2. 什么叫 java 的内存泄露
在 Java 中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对
象是可达的,即在有向图中,存在通路可以与其相连(也就是说仍存在该内存对象的引用);其
次,这些对象是无用的,即程序以后不会再使用这些对象。 如果对象满足这两个条件, 这些对象
就可以判定为 Java 中的内存泄漏,这些对象不会被 GC 所回收,然而它却占用内存。
3. JVM 的内存区域组成
java 把内存分两种:一种是栈内存,另一种是堆内存 1。在函数中定义的基本类型变量和对象的
引用变量都在函数的栈内存中分配; 2。堆内存用来存放由 new 创建的对象和数组以及对象的实
例变量 在函数(代码块)中定义一个变量时, java 就在栈中为这个变量分配内存空间,当超过
变量的作用域后, java 会自动释放掉为该变量所分配的内存空间;在堆中分配的内存由 java 虚
拟机的自动垃圾回收器来管理
堆和栈的优缺点
堆的优势是可以动态分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分
配内存的。
缺点就是要在运行时动态分配内存,存取速度较慢; 栈的优势是,存取速度比堆要快,仅次于
直接位于 CPU 中的寄存器。
另外,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。
4. Java 中数据在内存中是如何存储的
a) 基本数据类型
资源评论
maodi_lzc
- 粉丝: 1
- 资源: 4万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功