JVM内存回收策略介绍
来源:互联网 发布:法兰克机器人编程 编辑:程序博客网 时间:2024/06/05 03:27
java语言不像C/C++一样可以通过malloc这种语法直接操作内存,java语言没有提供直接操作内存的语法,但程序都需要内存空间来支持,java语言通常有两种内存申请方法:一种是静态内存分配,另一种是动态内存分配。
1、静态内存分配和回收
java静态内存分配是指java被编译时,就已经能够确定需要的内存空间,当程序被加载时,系统会一次性分配内存给它,这些内存不会在程序执行是发生变化,直到程序结束内存才会被回收。例如一些数据类型和对象的引用。这些静态内存空间是在java栈上分配的,当这个方法运行结束时,对应的栈也就撤销,所以分配的静态内存空间也就回收了。
2、动态内存分配和回收
原生数据类型存储在java栈中,方法执行结束就会消失,关于对象类型,他存储在java堆中,它可以被共享,不一定随着方法执行结束而消失。所谓动态类型分配就是在程序执行时才知道要分配的存储空间的大小,而不是在编译时就能确定的。这个对象什么时候被回收也是不确定的,只有等到这个对象不再使用时才会被回收。Java程序员不需要关注内存的分配和回收,只需要关注这些数据类型的使用就行了。
3、关于java中内存分配:
- 栈内存分配
- 堆内存分配
4、如何进行垃圾回收(GC)呢?
JVM在做垃圾回收时会检查堆中的所有对象是否都会被这些根对象直接或间接引用,能够被引用的对象就是活动对象,否则就可以被垃圾收集器回收。所谓根对象是堆中持久用的对象,它若引用或者间接引用其他对象时,引用的对象不能被垃圾器回收,若此对象没有直接引用和间接引用,则就要被垃圾收集器回收。
本文不再讨论内存垃圾收集算法。
4 0
- JVM内存回收策略介绍
- JVM内存回收策略
- JVM内存回收策略
- java jvm 内存分配和回收策略
- JVM(二)内存分配和回收策略
- JVM内存分配与回收策略
- JVM-内存分配与回收策略
- JVM虚拟机-内存分配与回收策略
- JVM垃圾回收及内存分配策略
- JVM-内存分配与回收策略
- JVM内存分配与回收策略
- JVM垃圾回收和内存分配策略
- JVM内存分配和垃圾回收策略
- JVM内存管理之内存回收策略
- JVM:内存分配与回收策略
- JVM堆内存分配与回收策略
- JVM内存分配与回收策略
- JVM内存分配与回收策略
- 自定义ListView控件在滑动的过程中动态提示item(四)
- 一元多项式相加(无头结点,c++)
- XHR finished loading […] log message
- undefined symbols for architecture x86_64
- Delphi中如何调用Excel VBA
- JVM内存回收策略介绍
- Socket Programming
- cygwin跨平台移植开发系列3--GCC+VC联合使用
- 程序员常去的14个顶级开发社区
- 严蔚敏 数据结构习题6.47
- 【解决方案】Cmder v1.2 解决 “profile.ps1”和"Join-Path"方法
- CSS入门(3)-background:transparent的作用
- fastJson解析
- poj 1061/2142 扩展的欧几里得(青蛙的约会/砝码称重)