java内存管理(转载)

虚烬
• 阅读 145

由JVM进行管理
一、堆
1、存储所有new出来的对象,包含成员变量;
2、没有任何引用指向的对象就是垃圾;垃圾回收器不定时清理垃圾;回收过程是透明的;可调用System.gc(),建议GC尽快来回收。
3、成员变量的生命周期:创建对象时,存储在堆中,对象被回收时,成员变量一并被回收;建议对象不再使用时,及时将引用置为null;
二、栈
1、用于存储正在调用中的方法的所有局部变量,包含参数;
2、调用方法时在栈中为该方法分配一块对应的栈帧,栈帧中存储的是方法中的所有局部变量(包含参数),方法调用结束时,栈帧被清除,局部变量一并被清除;
3、局部变量的生命周期:调用方法时,局部变量被加载在栈中,方法调用结束时,栈帧中一起被清除;
三、方法区
1、用于存储.class字节码文件,包括方法
2、方法只有一份,对象在调用方法时,通过this指针来区分具体的对象。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java中的GC和内存泄漏
java中的GC1.GC是什么?为什么要有GC? GC是垃圾回收的意思。是指JVM清理不再使用的对象释放内存。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存.2\.需要GC的内存区域垃圾回收区域:主要针对无用堆对象回
Wesley13 Wesley13
3年前
java 面试知识点笔记(四)垃圾回收 上篇
问:对象判定为垃圾的标准?没有被其他对象引用问:对象判定为垃圾的算法?引用计数算法通过判断对象的引用数量来判断对象是否可以被回收每个对象实例都有一个引用计数器,被引用则1,完成引用1任何引用计数为0的对象实例可以当垃圾收集的    优点:执行效率高,程序受影响较小    缺点:无法检测出
3A网络 3A网络
2年前
Java 垃圾回收机制
面试必问:Java垃圾回收机制介绍在C/C中,程序员负责对象的创建和销毁。通常程序员会忽略无用对象的销毁。由于这种疏忽,在某些时候,为了创建新对象,可能没有足够的内存可用,整个程序将异常终止,导致OutOfMemoryErrors。但是在Java中,程序员不需要关心所有不再使用的对象。垃圾回收机制自动销毁这些对象。垃圾回收机制是守护线
九路 九路
4年前
4 Java 如何判定是否存活或者死亡
在堆中存放着几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事就是要确定这些对象之中哪些还活着,哪些对象已经死去.判断对象是否已经死亡有以下几种算法:引用计数法算法定义:给对象中添加一个引用计数器,当有一个地方引用时,计数器加1,引用失效时,就减1,当对象的引用计数器为0时,对象就是不可再被使用的.特点:JAVA虚拟机中很少使用这
xiguaapp xiguaapp
4年前
垃圾回收机制
GC标记算法对象被判定为垃圾的标准:没有被其他对象引用引用计数算法:判断对象的引用数量:通过判断对象的引用数量来决定对象是否可以被回收每个对象实例都有一个引用计数器,被引用则1,完成引用则1任何引用计数为0的对象实例可以被当做垃圾收集优点:执行效率高,程序执行受影响较小。
Wesley13 Wesley13
3年前
.NET中的GC垃圾回收
本章将和大家分享.NET中的GC垃圾回收。托管堆垃圾回收CLR提供GC。1、什么样的对象需要垃圾回收?  托管资源引用类型  托管资源和非托管资源:    托管的就是CLR控制的,例如:new的对象、string字符串、变量等;    非托管不是CLR能控制的,例如:数据库连接、文件流、句柄、打印机连接等;    u
Stella981 Stella981
3年前
Python C 扩展的引用计数问题探讨
PythonGC机制对于Python这种高级语言来说,开发者不需要自己管理和维护内存。Python采用了引用计数机制为主,标记清除和分代收集两种机制为辅的垃圾回收机制。首先,需要搞清楚变量和对象的关系:变量:通过变量指针引用对象。变量指针指向具体对象的内存空间,取对象的值。对象,类型已知,每个对象都包
Wesley13 Wesley13
3年前
PHP垃圾回收机制
php5.3之前使用的垃圾回收机制是单纯的“引用计数”,也就是每个内存对象都分配一个计数器,当内存对象被变量引用时,计数器1;当变量引用撤掉后,计数器1;当计数器0时,表明内存对象没有被使用,该内存对象则进行销毁,垃圾回收完成。“引用计数”存在问题,就是当两个或多个对象互相引用形成环状后,内存对象的计数器则不会消减为0;这时候,这一组内存对象已经
Stella981 Stella981
3年前
Python的垃圾回收机制
垃圾回收机制「垃圾回收(GC)」大家应该多多少少都了解过,什么是垃圾回收呢?垃圾回收GC的全拼是GarbageCollection,在维基百科的定义是:在计算机科学中,垃圾回收(英语:GarbageCollection,缩写为GC)是一种自动的内存管理机制。当一个电脑上的动态内存不再需要时,就应该予以释放,以让出内存,这种内存资源
Stella981 Stella981
3年前
Android开发的内存问题
不少人认为Java(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.51code.com%2F)程序因为有垃圾回收机制,就不会有内存泄漏。其实如果我们一个程序中已经不再使用某个对象,但是依然有引用指向它,垃圾回收器就没有办法回收它,所以该对象占用的内存就无法被使用,造成内存泄露
Stella981 Stella981
3年前
JVM的GC算法总结
Java程序在运行过程中,会产生大量的内存垃圾(一些没有引用指向的内存对象都属于内存垃圾,因为这些对象已经失去标记,程序用不了它们了,对程序而言它们已经废弃),为了确保程序运行时的性能,java虚拟机在程序运行的过程中不断地进行自动的垃圾回收(GC),这就是我们的垃圾回收机制,关于垃圾回收我总结了一下几种:标记–清除算法(MarkSweep)