1、java的语言框架

(1)CPU->操作系统内核->应用层框架->JVM(java虚拟机)->Java字节码->Java源代码
(2)java是解释型语言,嵌入式常用的C/C++是编译型语言,简单来说:编译型语言只需要编译一次就可以执行,比如将C/C++编译成可执行程序;解释型语言是解释一句执行一句,依赖运行时环境,比如java运行依赖JVM;
(3)Java虚拟机是Java语言的运行时环境,也是Java语言跨平台的关键;

2、java的垃圾回收机制介绍

(1)垃圾收集GC(Garbage Collection)是Java语言的核心技术之一, 在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理;
(2)GC线程(Java虚拟机中的守护线程)负责垃圾回收,java程序员不用操心;

2.1、什么样的对象是垃圾

(1)对于Java对象来讲,如果说这个对象没有被其他对象所引用该对象就是无用的,此对象就被称为垃圾,其占用的内存也就要被销毁;
(2)引出一个问题,怎么来判断哪些对象时垃圾?

2.2、标记垃圾的算法

2.2.1、引用计数法

(1)实现思路:给对象中添加一个引用计数器,每当有一个地方引用它,计数器就加 1;当引用失效,计数器就减 1;任何时候计数器为 0 的对象就是不可能再被使用的,可以当做垃圾收集;
(2)优点:执行效率高,程序执行受影响较小;
(3)缺点:无法检测出循环引用的情况,导致内存泄露;

2.2.2、可达性分析算法

实现思路:通过一系列的称为 “GC Roots” 的对象作为起点,从这些节点开始向下搜索,节点所走过的路径称为引用链,当一个对象到 GC Roots 没有任何引用链相连的话,则证明此对象是不可用的。

3、java垃圾回收机制总结

(1)java的垃圾回收机制让程序员免于考虑对象的生命周期和资源的申请、释放,降低java程序员的编程难度;
(2)垃圾回收机制的稳定性和效率取决于运行时环境(JVM等)设计和实现的好坏;
垃圾回收机制是要增加额外开销的,相当于用效率和内存来降低程序员的编程难度,让程序员更加去关注业务而不是语言;

Java的垃圾回收机制介绍相关推荐

  1. [Java基础] 垃圾回收机制

    ​写在前面 本文简单介绍一下Java的垃圾回收机制相关概念. ​ 活动地址:CSDN21天学习挑战赛 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩:迟一天就多一天平庸的困扰.各位小伙伴,如果您 ...

  2. java的垃圾回收机制包括:主流回收算法和收集器(jvm的一个主要优化方向)

    2019独角兽企业重金招聘Python工程师标准>>> java的垃圾回收机制是java语言的一大特色,解放了开发人员对内存的复杂控制,但如果你想要一个高级java开发人员,还是需要 ...

  3. JAVA虚拟机垃圾回收机制和JAVA排错三剑客

    一.Java虚拟机逻辑回收机制 1.Java垃圾回收器 Java垃圾回收器是Java虚拟机(JVM)的三个重要模块(另外两个是解释器和多线程机制)之一,为应用程序提供内存的自动分配(Memory Al ...

  4. 【Java】Java的垃圾回收机制小结

    文章目录 1. Java的垃圾回收机制? 1.1 Java的引用类型 1.2 哪些内存需要回收? 1.3 怎么定义垃圾? 1.4 怎么回收垃圾? 2. JVM一次完整的GC流程? 3.触发GC之后,会 ...

  5. java垃圾回收机制_乐字节Java|GC垃圾回收机制、package和import语句

    本文接上一篇:乐字节Java|this关键字.static关键字.block块.本文是接着讲述JavaGC垃圾回收机制.package 和 import语句. 一.GC垃圾回收机制 GC全名:Garb ...

  6. 全面解析Java的垃圾回收机制

    Java的堆是一个运行时数据区,类的实例(对象)从中分配空间.Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new.newarray.anewarray和mult ...

  7. Java GC垃圾回收机制

    Java提供了gc机制,jvm 中,程序计数器.虚拟机栈.本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 jav ...

  8. java垃圾回收机制优化_JVM性能优化--Java的垃圾回收机制

    一.Java内存结构 1.Java堆(Java Heap) java堆是java虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域,在虚拟机启动时创建.此内存区域的唯一目的就是存放对象实例 ...

  9. java gc回收堆还是栈_浅析JAVA的垃圾回收机制(GC)

    1.什么是垃圾回收? 垃圾回收(Garbage Collection)是Java虚拟机(JVM)垃圾回收器提供的一种用于在空闲时间不定时回收无任何对象引用的对象占据的内存空间的一种机制. 注意:垃圾回 ...

最新文章

  1. sql和python还有c语言_Python语言之原生sql整理
  2. pytorch torch.norm(input, p=2) → float、torch.norm(input, p, dim, out=None) → Tensor(求范数)
  3. 关于vscode插件autoprefixer 3.0无法使用的问题
  4. jdk12 jdk1.8_JDK 12的Files.mismatch方法
  5. textract安装使用
  6. 使用HTML5创建和播放声音
  7. 多核处理器_游戏爱好者的福音!AMD全新一代高性能多核处理器3950X
  8. qps多少才算高并发_AGV小车价格多少才算合适?
  9. 内存映射第一步:idmap swapper
  10. paip.php eclipse output echo 乱码
  11. 0框架前端-如何写一个下拉菜单(Dropdowns)
  12. 停掉暴风影音stormliv.exe进程
  13. 工商银行二维码业务开发
  14. fidder无法抓取浏览器Https,提示“证书错误”
  15. 四川职业技术学院linux,2019年四川交通职业技术学院单招中职(信息技术一类)专业技能测试大纲...
  16. 云南计算机一级c类基础知识,云南省大学计算机一级C类多选题及答案.pdf
  17. 用深度学习完成3D渲染任务的蹿红
  18. 大林算法,比较基础的,无振铃的改了对象需要手动改一下
  19. 使用xInt开源库生成Excel文档xlsx
  20. python实用大全pdf_超级实用干货|九大技巧,带你用Python玩转PDF

热门文章

  1. echarts 折线图小圆点修改为实心,折线图下方半透明效果
  2. 飞舞的泡泡(Dancing bubbles)
  3. AcWing_97 约数之和
  4. 如何录制电脑屏幕并且生成视频
  5. linux全屏时钟应用下载,全屏时钟app下载-全屏时钟手机版下载v1-IT168下载站
  6. sql中CONCAT函数使用
  7. Google 今日发布基于 TensorFlow 运行的 DIY 工具包:AIY Vision Kit
  8. chatgpt大火,这些公众号你关注了吗
  9. 运行python脚本卡住_为什么我的 Python 程序卡住啦!
  10. linux fsck