• java垃圾回收机制简介


    1.背景

    传统C 或C++是程序员负责回收已分配的内存,也就是显示进行垃圾回收。因为程序员不知道内存应该何时释放,所以会导致一些分配出去的内存得不到回收,造成 ”内存泄漏“ 。导致系统运行速度下降,程序瘫痪。

    2。什么是内存泄漏?

    一些分配出去的内存得不到回收,导致系统运行速度下降,甚至程序瘫痪的现象。

    3.显示回收垃圾的缺点:

    1)程序忘记及时回收无用内存,导致内存泄漏,降低系统性能

    2)程序错误回收程序核心类库,导致系统崩溃

    4.java中的垃圾回收机制 ,也就是GC (Garbage Collection)

    java程序的内存分配和回收都是由JRE在后台自动进行的,这种机制叫“垃圾回收机制,Garbage Collection,即GC。

    JRE提供了一条超级线程进行检测和控制,一般都是在CPU空闲或内存不足时进行自动回收垃圾,因为程序员无法掌控垃圾回收时间和顺序。

    java的堆内存是一个运行时数据区,用于 保存 “对象”,即类的实例。程序中的所有对象都是放在堆内存中的,一般堆内存是由垃圾回收机制负责的。垃圾回收是一种动态存储管理技术,它会自动释放 “不再被程序引用的对象”,按特定算法回收垃圾。

    5.java垃圾回收机制主要回收 两种情况:

    (1)当没有对象引用指向原先分配给某个对象的内存时,该内存就成了垃圾。也就是当一个对象不再被引用的时候,其内存空间就会被回收

    (2)垃圾回收也可以清除内存记录碎片。由于创建对象和垃圾回收器释放丢弃对象所占的内存空间,内存会出现碎片。“碎片”指分配给对象的内存块之间的空闲内存区,碎片处理将占用的堆内存移到堆的一端,JVM将整理出的内存重新分配给新对象。

    6.垃圾回收机制的优点

    (1)提高编程效率。不需要程序员花时间处理内存垃圾。

    (2)保护程序的完整性,是java安全性策略的一个重要部分。

    7.垃圾回收机制的缺点

    垃圾回收影响程序性能。因为java虚拟机必须跟踪程序中有用的对象,从而确定哪些对象是需要 回收的,这样一来就会花费处理器一定的时间

    8.垃圾回收 的特点;

    (1)垃圾回收的目标是回收无用的对象的内存空间,这些内存空间是JVM中的内存空间,垃圾回收只能回收内存,对物理资源,如数据库连接、磁盘IO等资源无能为力。

    (2)可以通过把引用对象的值设为null来暗示该对象为可回收对象

    9.程序员手动回收垃圾并释放 内存空间:

    通过 对象.finalize( ) 或者 System.gc( ) 来进行垃圾回收

    一路涉足、一路留恋、一路回望。依旧前行。
  • 相关阅读:
    迁移服务器遇到django-crontab不执行定时任务问题
    纯CSS3+DIV实现小三角形边框
    mysql密码错误-ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor:yes)
    收货地址下边的平行四边形彩色线条
    小程序导航栏全屏navigationStyle自定义导航栏,小程序轮播图导航栏
    移动宽带下Github网页上不去的解决办法
    线段比例式或等积式的证明思路
    两角不等的证明思路
    线段不等的证明思路
    两角相等的证明思路
  • 原文地址:https://www.cnblogs.com/yuxiangyuan-cloud/p/12167922.html
Copyright © 2020-2023  润新知