当前位置:首页 > JAVA教程 > 正文内容

3分钟相识JAVA中GC的观点【JAVA教程】,gc,概念

搜教程4年前 (2019-12-02)JAVA教程186

媒介

GC(Garbage Collection)是我们在进修 JVM 的过程当中不可避免的一道坎,接下来,我们就来体系的进修一下 GC。

做一件事变之前,我们肯定要去晓得我们为何要去做,这里不仅仅指 GC,更实用我们一样平常的进修和生活,知其然,知其所以然,方能百战不殆。

(引荐视频:java视频教程)

下面我们先去相识为何要有 GC,以及 GC 在 JVM 中扮演了一个什么样的角色,起到了什么的作用?

为何要有 GC

用过 C++ 的同砚大概晓得,对象所占的内存在顺序完毕运转之前一向被占用,在明白开释之前不能分派给别的对象。假如我们不去手动的消灭这些无用的对象,内存很快就被占满,而在 JVM 中,GC 所起到的作用就是一个清道夫,它能够协助我们去剖断哪些对象是无用对象,怎样举行垃圾网络,以及决议内存分代和内存分派的战略**。

大概有同砚会问了,既然我们的 JVM 会给我们做 GC 的事情,我们为何还要去进修 GC 呢,统统交给 JVM 不好吗?固然,在我们的一样平常情况下,我们平常不会去体贴 GC 的一些细节,然则当我们碰到内存泄漏,内存溢出,高并发瓶颈的时刻,我们就须要去对 GC 开刀,举行更加仔细的监控和调治。

内存泄漏:指顺序中己动态分派的堆内存由于某种原因顺序未开释或没法开释,形成体系内存的糟蹋,致使顺序运转速率减慢以至体系崩溃等严重后果。

内存溢出:运用体系中存在没法接纳的内存或运用的内存过量,终究使得顺序运转要用到的内存大于能供应的最大内存。

那末如今问题来了,我们要举行垃圾接纳,起首我们须要晓得垃圾在哪

垃圾在哪

前面我们讲了JVM 的运转时内存地区,晓得线程能够分为线程独有区和线程同享区,个中线程独有区(顺序计数器,虚拟机栈,当地要领栈)的内存生命周期是和线程保持一致,且这几个地区分派的内存大小跟类的大小有关,也就是说,当我们的类构造牢固以后,这部份的内存就不会再发作变动,且当要领或线程完毕的时刻,内存天然就跟随着接纳了.

而线程同享区的堆内存和要领区则不一样,堆内存和要领区所用的内存是在编译时期没法肯定的,由于一个接口的差别完成,一个要领的差别掌握前提分支所实行的代码大概完整相反,我们只要在运转时才晓得会建立哪些对象,这部份的内存的分派和接纳是动态的,而我们的 GC 关注的就是该部份的内存。

打个比方来讲:JVM 假如是一辆车,线程独有区的就像是零件,在出厂时这些零件的寿命基本上都是已知的,线程同享区就像是汽油,汽油的斲丧跟我们所采纳的线路有关,所以我们关注的部份就是这部份会动态变化的,比方怎样开车才更省油~

本文来自ki4网,java教程栏目,迎接进修!

以上就是3分钟相识JAVA中GC的观点的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/16321.html

标签: gc概念
分享给朋友:

“3分钟相识JAVA中GC的观点【JAVA教程】,gc,概念” 的相关文章

JVM内存地区和垃圾接纳的剖析(图文)【JAVA教程】,JVM

JVM内存地区和垃圾接纳的剖析(图文)【JAVA教程】,JVM

本篇文章给人人带来的内容是关于JVM内存地区和垃圾接纳的剖析(图文),有肯定的参考价值,有须要的朋侪可以参考一下,愿望对你有所协助。 一、JVM简介 JVM,全称Java Virtual Machine,即Java虚拟机。以Java作为编程言语所编写的应用顺序都是运转在JVM上的。JVM是一...

spring validation作为数据校验的要领引见(附代码)【JAVA教程】,springboot,spring,java

本篇文章给人人带来的内容是关于spring validation作为数据校验的要领引见(附代码),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 数据的校验是交互式网站一个不可或缺的功用,前端的js校验能够涵盖大部分的校验职责,如用户名唯一性,生日花样,邮箱花样校验等等经常运用...

ThreadLocal的完成道理的剖析引见(附代码)【JAVA教程】,ThreadLocal

ThreadLocal的完成道理的剖析引见(附代码)【JAVA教程】,ThreadLocal

本篇文章给人人带来的内容是关于ThreadLocal的完成道理的剖析引见(附代码),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 ThreadLocal,即线程局部变量,用来为每一个运用它的线程保护一个自力的变量副本。这类变量只在线程的生命周期内有效。而且与锁机制那种以时候调...

java8中predicate的用法引见(代码示例)【JAVA教程】,java

本篇文章给人人带来的内容是关于java8中predicate的用法引见(代码示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 通报代码 我们首先看一个例子,假定你有一个 Apple 类,它有一个getColor要领,另有一个变量inventory保存着一个Apples的列表...

java基本之运算符与逻辑掌握的细致引见(附示例)【JAVA教程】,java

本篇文章给人人带来的内容是关于java基本之运算符与逻辑掌握的细致引见(附示例),有肯定的参考价值,有需要的朋侪能够参考一下,愿望对你有所协助。 运算符和逻辑掌握 运算符 java中的运算符能够分为以下几种: 算符运算符 关联运算符 位运算符 逻辑运算符 赋值运算符...

java究竟能够干什么?【JAVA教程】,java,java可以干什么

java究竟能够干什么?【JAVA教程】,java,java可以干什么

java是什么?java究竟能干吗?许多人说进修java,岂非你们只知道java薪资高?本日ki4网带着人人来看下,java能够干什么?【引荐教程:Java教程】 java重要分红三个部份javaSE,javaME,javaEE JAVA SE是进修JAVA EE、JAVA ME的基础,...