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

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

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

    虚引用:可忽略。

  • 相关阅读:
    日期转换DateTime
    linux 常用命令
    springcloud集成 xxl-job
    maven-阿里云镜像
    mysql 8.0+忘记root密码-linux
    java注解与自定义注解
    mysql联合索引的生效规则
    Maven常用命令及其作用、常见问题、常用命令使用场景举例
    反射的理解
    VirtualBox创建centos
  • 原文地址:https://www.cnblogs.com/jw93/p/6424319.html
Copyright © 2011-2022 走看看