Java入门教程推荐,GC垃圾回收

通过一系列“GCRoots”对象作为起点进行搜索,如果在“GCRoots”和一个对象之间没有可达路径,则称该对象是不可达的。不可达对象不一定会成为可回收对象。进入DEAD状态的线程还可以恢复,GC不会回收它的内存。(把一些对象当做root对象,JVM认为root对象是不可回收的,并且root对象引用的对象也是不可回收的)

2、以下对象会被认为是root对象:

(1)虚拟机栈(栈帧中本地变量表)中引用的对象

(2)方法区中静态属性引用的对象

(3)方法区中常量引用的对象

(4)本地方法栈中Native方法引用的对象

3、对象被判定可被回收,需要经历两个阶段:

(1)第一个阶段是可达性分析,分析该对象是否可达

(2)第二个阶段是当对象没有重写finalize()方法或者finalize()方法已经被调用过,虚拟机认为该对象不可以被救活,因此回收该对象。(finalize()方法在垃圾回收中的作用是,给该对象一次救活的机会)

4、方法区中的垃圾回收:

(1)常量池中一些常量、符号引用没有被引用,则会被清理出常量池

(2)无用的类:被判定为无用的类,会被清理出方法区。判定方法如下:

A、该类的所有实例被回收

B、加载该类的ClassLoader被回收

C、该类的Class对象没有被引用

5、finalize():

(1)GC垃圾回收要回收一个对象的时候,调用该对象的finalize()方法。然后在下一次垃圾回收的时候,才去回收这个对象的内存。

(2)可以在该方法里面,指定一些对象在释放前必须执行的操作。

二、虚拟机频繁fullGC的解决对策

(1)首先用命令查看触发GC的原因是什么jstat–gccause进程id

(2)如果是System.gc(),则看下代码哪里调用了这个方法

(3)如果是heapinspection(内存检查),可能是哪里执行jmap–histo[:live]命令

(4)如果是GClocker,可能是程序依赖的JNI库的原因

三、经典的垃圾回收算法

1、Mark-Sweep(标记-清除算法):

(1)思想:标记清除算法分为两个阶段,标记阶段和清除阶段。标记阶段任务是标记出所有需要回收的对象,清除阶段就是清除被标记对象的空间。

(2)优缺点:实现简单,容易产生内存碎片

2、Copying(复制清除算法):

(1)思想:将可用内存划分为大小相等的两块,每次只使用其中的一块。当进行垃圾回收的时候了,把其中存活对象全部复制到另外一块中,然后把已使用的内存空间一次清空掉。

(2)优缺点:不容易产生内存碎片;可用内存空间少;存活对象多的话,效率低下。

3、Mark-Compact(标记-整理算法):

(1)思想:先标记存活对象,然后把存活对象向一边移动,然后清理掉端边界以外的内存。

(2)优缺点:不容易产生内存碎片;内存利用率高;存活对象多并且分散的时候,移动次数多,效率低下

4、分代收集算法

思想:把堆分成新生代和老年代。

(1)因为新生代每次垃圾回收都要回收大部分对象,所以新生代采用Copying算法。新生代里面分成一份较大的Eden空间和两份较小的Survivor空间。每次只使用Eden和其中一块Survivor空间,然后垃圾回收的时候,把存活对象放到未使用的Survivor(划分出from、to)空间中,清空Eden和刚才使用过的Survivor空间。

(2)由于老年代每次只回收少量的对象,因此采用mark-compact算法。

(3)在堆区外有一个永久代。对永久代的回收主要是无效的类和常量

6、几种不同的垃圾回收类型:

(1)MinorGC:从年轻代(包括Eden、Survivor区)回收内存。

A、当JVM无法为一个新的对象分配内存的时候,越容易触发MinorGC。所以分配率越高,内存越来越少,越频繁执行MinorGC

B、执行MinorGC操作的时候,不会影响到永久代(Tenured)。从永久代到年轻代的引用,被当成GCRoots,从年轻代到老年代的引用在标记阶段直接被忽略掉。

(2)MajorGC:清理整个老年代,当eden区内存不足时触发。

(3)FullGC:清理整个堆空间,包括年轻代和老年代。当老年代内存不足时触发

以上就是动力节点java培训机构的小编针对“Java入门教程推荐,GC垃圾回收”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

THE END
1.算法的初学者教程算法入门算法的初学者教程 本文介绍了算法的基本概念,包括时间复杂度和空间复杂度,并详细讲解了数组、链表、栈、队列、哈希表和树等常见数据结构。接着,讨论了排序算法如冒泡排序、选择排序、插入排序和快速排序,以及查找算法中的顺序查找和二分查找。最后,概述了动态规划、贪心算法和回溯算法的应用,如最长公共子序列问题、https://blog.csdn.net/qq_35522002/article/details/130116043
2.初学者必学的算法基础教程初学者必学的算法基础教程 标签: 算法 算法与数据结构 收藏 概述 本文介绍了算法的基本概念和重要性,涵盖了算法的组成部分和不同类型,如搜索算法、排序算法和图算法。文章还解释了算法的时间复杂度和空间复杂度,并提供了示例代码和学习资源,帮助读者更好地理解和应用算法。 算法基础知识简介 什么是算法 算法是一https://www.imooc.com/article/362340
3.算法学习路线总结:算法工程师的修炼手册51CTO博客我将为大家详细解读算法工程师的学习路线,不仅包括基础理论知识,还涵盖实战经验和项目实践。 为了更好地帮助大家,我还专门收集整理了配套的视频教程、教材推荐以及刷题网站等资源。 希望这篇文章能对你有所帮助,别忘了点赞、收藏和分享哦! 二、学习路线 https://blog.51cto.com/u_16542656/11420521
4.编程的50种基础算法编程是现代社会中一项非常重要的技能。无论是在科技行业,金融领域,还是其他各个行业中,编程都扮演着关键的角色。而算法则是编程的基础,是解决问题的关键步骤。在本文中,我们将介绍50种基础算法代码,帮助读者更好地理解和应用这些算法。编程的50种基础算法 1. 二分查找算法:用于在有序数组中查找特定元素的算法https://baijiahao.baidu.com/s?id=1781505364709418582&wfr=spider&for=pc
5.01《算法入门教程》算法简介比如我们在学习 Java 语言的时候,发现里面有很多关于数组(Array),集合(Set),哈希表(Map)等数据结构,这些数据结构的实现底层都涉及到了算法知识。学习算法知识有助于我们可以更好地理解编程语言的一些内部实现,帮助我们理解其中的函数设计思路及底层代码实现逻辑。https://www.jianshu.com/p/6efeecac23f2
6.算法分析入门教程实战篇及应用篇曾经夸下海口,要写一篇关于算法分析入门教程的文章。新春佳节之际,祝各位破友心情愉快,破解顺利,破解技术节节高。顺便在看雪论坛上又浏览了一圈,发现算法分析的文章确实都很好,但似乎没有一位对算法分析进行系统、全面的阐述的,对初学算法分析的人的实战困惑解答很少。倒是发现了一位好同志laomms的好文章自效验,读https://www.pediy.com/kssd/pediy10/59537.html
7.Hello算法》:动画图解一键运行的数据结构与算法教程本项目旨在打造一本开源免费、新手友好的数据结构与算法入门教程。 全书采用动画图解,内容清晰易懂、学习曲线平滑,引导初学者探索数据结构与算法的知识地图。 源代码可一键运行,帮助读者在练习中提升编程技能,了解算法工作原理和数据结构底层实现。 提倡读者互助学习,欢迎大家在评论区提出问题与分享见解,在交流讨论中共同进https://github.com/krahets/hello-algo
8.FreeRTOS入门教程(空闲任务和钩子函数及任务调度算法)简介:FreeRTOS入门教程(空闲任务和钩子函数及任务调度算法) 前言 本篇文章将带大家学习一下什么是空闲任务以及钩子函数,以及学习FreeRTOS中的任务调度算法,了解在FreeRTOS中任务是如何进行切换调度的。 一、空闲任务概念 空闲任务(Idle Task)是嵌入式实时操作系统(RTOS)中的一种特殊任务。它是系统中优先级最低的任务https://developer.aliyun.com/article/1399466
9.《算法竞赛入门经典》PDF下载数据结构教程《算法竞赛入门经典》是一本算法竞赛的入门教材,把C/C++语言、算法和解题有机地结合在了一起,淡化理论,注重学习方法和实践技巧。全书内容分为11章,包括程序设计入门、循环结构程序设计、数组和字符串、函数和递归、基础题目选解、数据结构基础、暴力求解法、高效算法设计、动态规划初步、数学概念与方法、图论模型与算法https://www.yuanlei.net/225676.html
10.轻松搞定JAVA数据结构&算法入门到实践教程1轻松搞定JAVA数据结构&算法-入门到实践教程 1-2 数据结构基本概念-数据元素,是爱奇艺教育类高清视频,于20200810上映。内容简介:动力节点推出的本套课程,适用于具有一定Java开发基础的开发人员。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,数据结构也https://m.iqiyi.com/v_14g6lbvyebo.html
11.Thrust快速入门教程(三)——算法1Thrust快速入门教程(三)——算法 1 Thrust提供了丰富的常用并行算法。这算法的功能与STL中的非常相似,于是我们使用了相同的名称(例如thrust::sort与std::sort)。 所有的Thrust算法均提供了主机端和设备端。特别指出,当转入主机端迭代器时,将会调度主机端方法,相似的,当使用设备端迭代器时将使用设备端实现。https://blog.itpub.net/10433498/viewspace-696384/
12.算法与数据结构视频教程从小白到入门实战课程xingwxzti算法与数据结构视频教程从小白到入门实战课程 课程目录 第一章:当我们在讨论算法的时候,我们在讨论什么? 1-1 我们究竟为什么要学习算法 1-2 课程介绍 第二章:排序基础 2-1 选择排序法 2-2 使用模板(泛型)编写算法 2-3 随机生成算法测试用例 2-4 测试算法的性能https://www.cnblogs.com/xingwxzti/p/11088034.html
13.面向JavaScript入门初学者的二叉搜索树算法教程javascript技巧到此这篇关于面向JavaScript入门初学者的二叉搜索树算法教程的文章就介绍到这了,更多相关JavaScript二叉搜索树算法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 您可能感兴趣的文章: javascript数据结构之二叉搜索树实现方法 Javascript实现从小到大的数组转换成二叉搜索树 javascript算https://www.jb51.net/article/221731.htm
14.图深度学习入门教程(五)——模型的优化器腾讯云开发者社区深度学习还没学完,怎么图深度学习又来了?别怕,这里有份系统教程,可以将0基础的你直接送到图深度学习。还会定期更新哦。 本教程是一个系列免费教程,争取每月更新2到4篇。 主要是基于图深度学习的入门内容。讲述最基本的基础知识,其中包括深度学习、数学、图神经网络等相关内容。该教程由代码医生工作室出版的全部书籍https://cloud.tencent.com/developer/article/1605912
15.深度学习框架之Keras入门教程问答模型训练(可选)华为云帮助中心为你分享云计算行业信息,包含产品介绍、用户指南、开发指南、最佳实践和常见问题等文档,方便快速查找定位问题与能力成长,并提供相关资料和解决方案。本页面关键词:深度学习框架之Keras入门教程。https://support.huaweicloud.com/topic/985405-4-S
16.喜报:昌平二中学子在信息学奥赛系列活动中斩获佳绩!2022年秋季,由昌平二中杨静老师牵头编著,中国工程院院士蔡鹤皋作为总主编的信息学普及图书《算法与编程竞赛入门教程》已正式出版,全书将科学性与趣味性结合、内容结构合理、例题丰富、配套高质量智慧学习平台,为学生的学习提供了很好的引导,该书的出版为昌平二中乃至全区信息学人才培养做了开创性贡献。 https://bjcpez.com/newsinfo/4704391.html
17.《C语言入门教程》全套教学课件(共7章完整版).pptx《C语言入门教程》全套教学课件(共7章完整版)wC语言入门教程(1) C语言课程概述C语言入门教程(1)大纲 1.什么是语言,什么是C语言 2.为什么要学习C语言 3.如何学习C语言 4.C语言的学习目标是什么 5.C语言的课程概述6.初学者的疑难解答w1.1什么是语言,什么是C语言w1.1基本常识w1.1基本常识什么是软件?软件:一https://m.book118.com/html/2022/0923/6130032221004241.shtm
18.头条文章stata入门教程_一个简单的程序模板 1.将数据转换成面板数据 面板数据有特定的格式,每一行代表某个企业在某一年的数据。很多人一开始下载的数据可能是下面这种形式,需要使用reshape命令将其转成面板数据格式。 reshape long var, i(证券代码) j(year) (1)变量名称调整。统一调整为“变量名+年份”的形式,如2018年https://card.weibo.com/article/m/show/id/2309404484669931389345
19.近7百本免费中文编程教程电子书汇总Disque 使用教程 Apache Spark 设计与实现 「返回目录」 PostgreSQL PostgreSQL 8.2.3 中文文档 PostgreSQL 9.3.1 中文文档 PostgreSQL 9.5.3 中文文档 「返回目录」 MySQL MySQL索引背后的数据结构及算法原理 21分钟MySQL入门教程 「返回目录」 管理和监控 ELKstack 中文指南 Mastering Elasticsearch(中文版) ElasticSearchhttps://www.iplaysoft.com/free-programming-books.html