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();",只要强引用存在,则不会被垃圾收集器回收;

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

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

    虚引用:可忽略。

  • 相关阅读:
    Realtime crowdsourcing
    maven 常用插件汇总
    fctix
    sencha extjs4 command tools sdk
    首次吃了一颗带奶糖味的消炎药,不知道管用不
    spring mvc3 example
    ubuntu ati driver DO NOT INSTALL recommand driver
    yet another js editor on windows support extjs
    how to use springsource tools suite maven3 on command
    ocr service
  • 原文地址:https://www.cnblogs.com/jw93/p/6424319.html
Copyright © 2011-2022 走看看