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

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

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

    虚引用:可忽略。

  • 相关阅读:
    XML解析
    异步网络请求和JOSN解析
    iOS iOS8新特性-UIAlertController
    iOS8新特性 UIPresentationController(一)
    iOS沙盒(sandbox)机制及获取沙盒路径
    iOS学习之iOS沙盒(sandbox)机制和文件操作(一)
    IOS沙盒机制(SandBox)
    手势(转)
    //快速添加一个视图控制器
    iOS开发常用的网站(转老师的)
  • 原文地址:https://www.cnblogs.com/jw93/p/6424319.html
Copyright © 2011-2022 走看看