zoukankan      html  css  js  c++  java
  • 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( ) 来进行垃圾回收

    一路涉足、一路留恋、一路回望。依旧前行。
  • 相关阅读:
    b_jd_水坑数量(向外流dfs)
    b_wy_购买商品使得满减最省(01背包)
    b_wy_最优路径(构造树+dfs)
    Redis:List列表相关指令
    Redis:String字符串常用指令
    Redis:linux基本的指令
    Redis:redis-benchmark性能测试/压力测试
    Redis:增大并发量的演进过程
    Kafka的下载安装和测试,及消费端数据中文乱码问题
    Git:常用命令
  • 原文地址:https://www.cnblogs.com/yuxiangyuan-cloud/p/12167922.html
Copyright © 2011-2022 走看看