zoukankan      html  css  js  c++  java
  • JVM的内存区域和垃圾回收

    JVM的内存区域
    	1.堆:程序在运行时创建的对象基本上都是在堆中分配的内存,堆里的内存又分为年轻代和年老代,年轻代默认又分为80%的一块区域和两个10%的区域,用于内存回收,当然这个比例是可以通过参数来调整的。
    	2.栈:栈其实可以分为两种,一种是虚拟机栈,就是启动线程时为线程帧栈分配的内存;一种是本地方法栈,就是为Native方法分配的内存。
    	3.方法区:JVM加载类信息、常量、静态变量等使用的内存区域,方法区也称为永久代。
    	4.直接内存区:直接内存区是属于JVM内存区域以外的区域,如NIO,为了提高效率,避免操作系统和JVM内存间的复制,可以通过ByteBuffer直接访问操作系统的内存。
    JVM的垃圾回收
    	JVM的垃圾回收是通过垃圾收集器来实现的,不同的内存区域使用的垃圾收集器也不同,常用的垃圾收集器有年轻代单线程收集器、年轻代多线程收集器、老年代单线程收集器、老年代多线程收集器,CMS收集器。垃圾收集器的算法大致有标记清除法、标记整理法、标记复制法,一般年轻代主要用标记复制法,老年代主要用标记清除和标记整理法。
    
  • 相关阅读:
    python3.x 基础五:模块
    python3.x 基础四:目录获取及目录规范
    python3.x 基础四:json与pickple
    python3.x 基础四:生成器与迭代器
    python3.x 基础三:装饰器
    python3.x 基础三:函数
    [leetcode]Anagrams
    [leetcode]Text Justification
    [leetcode]Single Number
    [leetcode]Longest Palindromic Substring
  • 原文地址:https://www.cnblogs.com/zengxianxi/p/3618982.html
Copyright © 2011-2022 走看看