当前位置:网站首页>JVM垃圾回收概述
JVM垃圾回收概述
2022-07-06 09:30:00 【机智的爆爆哥】
带着问题学习更有益于集中我们的注意力,我带着问题来展开这一篇章。
1. 什么是垃圾?
简单的问题,但往往很多人都答不上来,这就是思维上的一种误区,好了不多bb了。
简单来讲,当一个对象没有被任何引用指向,那它就成为了垃圾,如果一个人不被任何人所需要,那他就是垃圾了(例子不好,狗头保命)。
当这样的垃圾多了,而没有被及时的清理,就很容易造成内存溢出了。
2. 为什么需要垃圾回收?
跟生活联系起来,如果垃圾始终放在那里,那么日积月累,房间就变成垃圾堆了,还能住人吗?
对于程序也是这样,最终内存被消耗殆尽,只剩下一堆无用的对象,白白浪费的资源。
而一旦有了垃圾回收,无用对象被清理,多出来的空间又可以存放新的对象了。
3. 早期的内存管理
我们都知道,Java有着自动垃圾回收的机制,这也是C,C++程序员所羡慕的一点,因为他们需要进行手动内存申请,内存释放,而如果忘记释放,就会造成内存泄漏。
什么是内存泄漏?
如果一个对象没有引用指向了,那就是无用对象,但是由于某种原因,并没有被垃圾回收,这就是内存泄漏。
4. Java的自动内存管理
自动的垃圾回收机制使得我们Java程序员无需申请或者释放内存,但是这也弱化了我们在内存溢出时处理问题的能力,所以了解垃圾回收机制对于我们来说还是极为重要的,我们可以借助一些监控或者调优的工具来解决对应的问题。
这里需要强调,GC和OOM只会发生在堆空间和方法区,而方法区的垃圾回收是没有强制规定的,有些JVM其实没有对方法区进行垃圾回收,但是我们默认的HotSpot还是会有的。
垃圾回收重点关注新生代,较少收集于老年代,几乎不动方法区,切记切记!!!
边栏推荐
- Assembly language segment definition
- Notes on how the network is connected
- TCP的三次握手和四次挥手
- Fdog series (VI): use QT to communicate between the client and the client through the server (less information, recommended Collection)
- Activiti directory (I) highlights
- JVM运行时数据区之程序计数器
- MySQL digital function
- Solr word segmentation analysis
- Thank you for your invitation. I'm in the work area. I just handed in the code. I'm an intern in the next ByteDance
- ~86m rabbit practice
猜你喜欢
Activiti目录(三)部署流程、发起流程
The most lost road I have ever walked through is the brain circuit of ByteDance programmers
How to configure hosts when setting up Eureka
亮相Google I/O,字节跳动是这样应用Flutter的
汇编语言寻址方式
"One year after graduation, I won ACL best paper"
The QT program compiled on CentOS lacks a MySQL driven solution
Activit fragmented deadly pit
姚班智班齐上阵,竞赛高手聚一堂,这是什么神仙编程大赛?
koa中间件
随机推荐
The 116 students spent three days reproducing the ByteDance internal real technology project
Shell_ 04_ Shell script
Logical operation instruction
DS18B20数字温度计系统设计
Instructions for Redux
MySQL optimization notes
吴军三部曲见识(七) 商业的本质
Activiti directory (IV) inquiry agency / done, approved
When it comes to Google i/o, this is how ByteDance is applied to flutter
In the command mode in the VI editor, delete the character usage at the current cursor__ Command.
redux使用说明
~Introduction to form 80
Install docker under windows10 (through Oracle VM VirtualBox)
汇编语言寻址方式
谢邀,人在工区,刚交代码,在下字节跳动实习生
Ruoyi-Cloud 踩坑的BUG
ByteDance technical Interviewer: what kind of candidate do I want to pick most
Activit fragmented deadly pit
README. txt
8086 分段技术