当前位置:网站首页>JVM垃圾回收概述
JVM垃圾回收概述
2022-07-06 09:30:00 【机智的爆爆哥】
带着问题学习更有益于集中我们的注意力,我带着问题来展开这一篇章。
1. 什么是垃圾?
简单的问题,但往往很多人都答不上来,这就是思维上的一种误区,好了不多bb了。
简单来讲,当一个对象没有被任何引用指向,那它就成为了垃圾,如果一个人不被任何人所需要,那他就是垃圾了(例子不好,狗头保命)。
当这样的垃圾多了,而没有被及时的清理,就很容易造成内存溢出了。
2. 为什么需要垃圾回收?
跟生活联系起来,如果垃圾始终放在那里,那么日积月累,房间就变成垃圾堆了,还能住人吗?
对于程序也是这样,最终内存被消耗殆尽,只剩下一堆无用的对象,白白浪费的资源。
而一旦有了垃圾回收,无用对象被清理,多出来的空间又可以存放新的对象了。
3. 早期的内存管理
我们都知道,Java有着自动垃圾回收的机制,这也是C,C++程序员所羡慕的一点,因为他们需要进行手动内存申请,内存释放,而如果忘记释放,就会造成内存泄漏。
什么是内存泄漏?
如果一个对象没有引用指向了,那就是无用对象,但是由于某种原因,并没有被垃圾回收,这就是内存泄漏。
4. Java的自动内存管理
自动的垃圾回收机制使得我们Java程序员无需申请或者释放内存,但是这也弱化了我们在内存溢出时处理问题的能力,所以了解垃圾回收机制对于我们来说还是极为重要的,我们可以借助一些监控或者调优的工具来解决对应的问题。
这里需要强调,GC和OOM只会发生在堆空间和方法区,而方法区的垃圾回收是没有强制规定的,有些JVM其实没有对方法区进行垃圾回收,但是我们默认的HotSpot还是会有的。
垃圾回收重点关注新生代,较少收集于老年代,几乎不动方法区,切记切记!!!
边栏推荐
猜你喜欢

Solr standalone installation

MySQL日期函数

Logical operation instruction

Full record of ByteDance technology newcomer training: a guide to the new growth of school recruitment

The 116 students spent three days reproducing the ByteDance internal real technology project

Assembly language segment definition

我走過最迷的路,是字節跳動程序員的腦回路

字节跳动海外技术团队再夺冠:高清视频编码已获17项第一

JVM类加载子系统

Shell_ 04_ Shell script
随机推荐
Basic knowledge of assembly language
How to configure hosts when setting up Eureka
1. JVM入门介绍
Introduction to microservices
"One year after graduation, I won ACL best paper"
8086 内存
~Introduction to form 80
ByteDance open source Gan model compression framework, saving up to 97.8% of computing power - iccv 2021
Shell_ 04_ Shell script
字节跳动春招攻略:学长学姐笔经面经,还有出题人「锦囊」
TCP的三次握手和四次挥手
README. txt
Shell_ 06_ Judgment and circulation
MySQL optimization notes
字节跳动2022校招研发提前批宣讲会,同学们最关心的10个问题
唯有学C不负众望 TOP4 S1E6:数据类型
Logical operation instruction
Description of project structure configuration of idea
DOS 功能调用
控制转移指令