Java的垃圾回收机制介绍
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的垃圾回收机制介绍相关推荐
- [Java基础] 垃圾回收机制
写在前面 本文简单介绍一下Java的垃圾回收机制相关概念. 活动地址:CSDN21天学习挑战赛 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩:迟一天就多一天平庸的困扰.各位小伙伴,如果您 ...
- java的垃圾回收机制包括:主流回收算法和收集器(jvm的一个主要优化方向)
2019独角兽企业重金招聘Python工程师标准>>> java的垃圾回收机制是java语言的一大特色,解放了开发人员对内存的复杂控制,但如果你想要一个高级java开发人员,还是需要 ...
- JAVA虚拟机垃圾回收机制和JAVA排错三剑客
一.Java虚拟机逻辑回收机制 1.Java垃圾回收器 Java垃圾回收器是Java虚拟机(JVM)的三个重要模块(另外两个是解释器和多线程机制)之一,为应用程序提供内存的自动分配(Memory Al ...
- 【Java】Java的垃圾回收机制小结
文章目录 1. Java的垃圾回收机制? 1.1 Java的引用类型 1.2 哪些内存需要回收? 1.3 怎么定义垃圾? 1.4 怎么回收垃圾? 2. JVM一次完整的GC流程? 3.触发GC之后,会 ...
- java垃圾回收机制_乐字节Java|GC垃圾回收机制、package和import语句
本文接上一篇:乐字节Java|this关键字.static关键字.block块.本文是接着讲述JavaGC垃圾回收机制.package 和 import语句. 一.GC垃圾回收机制 GC全名:Garb ...
- 全面解析Java的垃圾回收机制
Java的堆是一个运行时数据区,类的实例(对象)从中分配空间.Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new.newarray.anewarray和mult ...
- Java GC垃圾回收机制
Java提供了gc机制,jvm 中,程序计数器.虚拟机栈.本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 jav ...
- java垃圾回收机制优化_JVM性能优化--Java的垃圾回收机制
一.Java内存结构 1.Java堆(Java Heap) java堆是java虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域,在虚拟机启动时创建.此内存区域的唯一目的就是存放对象实例 ...
- java gc回收堆还是栈_浅析JAVA的垃圾回收机制(GC)
1.什么是垃圾回收? 垃圾回收(Garbage Collection)是Java虚拟机(JVM)垃圾回收器提供的一种用于在空闲时间不定时回收无任何对象引用的对象占据的内存空间的一种机制. 注意:垃圾回 ...
最新文章
- 程序员自学编程创立 GREE,推出世界上第一款手机社交游戏,白手起家成为亚洲最年轻的巨富...
- Android 教程
- DNS服务器分离解析 RAID阵列 进程管理 日志管理 systemd作用
- 48-如何实现unix2dos功能
- verilog中的综合与不可综合
- 如何编写自己的Java / Scala调试器
- 去掉边框_安卓也有堪比 VOUN 的加边框应用了,素材丰富到没朋友
- css 相对单位rem详解
- 《深入理解Java虚拟机》第3章 GC与内存分配策略
- 宝塔面板如何部署Java项目教程【新版】
- spring 13-Spring框架基于Annotation的AOP配置
- 电脑遇到某某dll文件缺失、某某OCX缺失怎么办?
- 卸载wps后安装office图标异常的问题
- 第六版PMBOK豆知识
- 7-22 龟兔赛跑 (20 分)
- angular.js使用路由时,子控制器监听不到父级$boardcast的事件
- Linux 机器重启reboot命令
- html5怎么设置滚动字幕,HTML5如何设置滚动字幕?_惠州网页设计
- 电路中滤波电容和退耦电容_怎么分清滤波电容、去耦电容、旁路电容
- java中repeat什么意思_repeat是什么意思_repeat的翻译_音标_读音_用法_例句_爱词霸在线词典...
热门文章
- 树莓派4b外置wifi
- 《三国猛将如云》隐私政策
- 荣耀magicwatch2鸿蒙,小猪搞机的评测 篇二十三:荣耀MagicWatch 2 上那些实用小功能盘点 功能还不是一般的丰富...
- 运用数据分析论坛签名和外链在百度新算法中的效果
- Python数据分析入门(二十):绘制饼图
- AIDL详解 安卓最新AIDL详解!!!!!!!!
- Python+Vue计算机毕业设计红酒企业响应式b3lvm(源码+程序+LW+部署)
- 哲♂学三幻神带你学习ConstraintLayout(约束布局)
- java三目运算符与比较
- Golang 通用连接池