zoukankan      html  css  js  c++  java
  • java 虚拟机自动内存管理

            java堆内存如图:

    Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。
    在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。
    这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。

    java程序员无需去关心有关内存的问题。原因则为:java具有自动内存管理机制。下文则介绍java该机制的大概是如何工作的。

    java内存自动管理,无非是在做两个事情,①内存分配;②然后将分配出去的内存回收回来。在此内存分配不多叙述,重点关注java是如何将分配出去的内存是回收回来的。 

    垃圾收集器:

    ps:关于引用:

    在对象判活时无论是通过引用计数算法还是可达性分析,都与“引用”有关。

    在jdk1.2以前,java中的类只存在“引用”与“未引用”两种概念。

    在jdk1.2之后,对其进行了扩充。用以描述一些“食之无味,弃之可惜”的类。

    强引用:类似“Object o = new Object();",只要强引用存在,则不会被垃圾收集器回收;

    软引用:被软引用的对象,在系统发生内存溢出之前,会将其二次回收。

    弱引用:活到下一次垃圾收集器工作;

    虚引用:可忽略。

  • 相关阅读:
    jxl读和取Excel文件
    Studio for WPF:定制 C1WPFChart 标记
    为C1Chart for WPF添加自定义标题、坐标轴单位标签以及旋转坐标轴注释
    自定义饼图(PieChart)各个PieSlice的外观
    vue组件
    vue双向绑定
    第一个Vue程序
    vue入门介绍
    js生成随机固定长度字符串的简便方法
    JavaScript 函数式编程读书笔记1
  • 原文地址:https://www.cnblogs.com/jw93/p/6424319.html
Copyright © 2011-2022 走看看