首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
java面试题基础
冒泡排序算法
插入排序算法
归并排序算法
二叉树排序算法
基数排序
选择排序
堆排序
快排
TCP-三次握手
HTTP协议
WebSocket
Mysql架构
Innodb与Myisam数据库引擎
事务隔离级别
面向对象(OOP)
异常
泛型
Object
StringBuilder
代理
注解
java面试题基础二
HashMap
ConcurrentHashMap
BlockingQueue
线程
Volatile
AtomicInteger
Synchronized
Java虚拟机架构
类加载器
内存模型
垃圾回收
Mybatis面试题
IOC
高并发系统设计
分布式缓存
分布式锁
分布式事务
消息队列
当前位置:
首页>>
技术小册>>
Java面试指南
小册名称:Java面试指南
### Java中的垃圾回收介绍 Java中的垃圾回收是自动进行的,这意味着程序员无需手动释放内存,Java虚拟机会根据一定的算法来判断哪些对象已经不再被程序所引用,然后释放这些对象所占用的内存。Java中的垃圾回收主要包括以下几种方式: 标记清除算法(Mark-Sweep):该算法分为标记和清除两个阶段,首先标记所有活跃对象,然后清除所有未被标记的对象。该算法的缺点是可能产生大量的碎片,导致内存使用效率低下。 复制算法(Copying):该算法将可用内存分为两个区域,一部分用来存放活跃对象,另一部分则不被使用。当活跃对象所占用的空间超过了分配给该区域的空间时,就将所有活跃对象复制到未使用的区域中,然后将原来的区域清空。该算法的优点是可以避免碎片问题,缺点是需要耗费一部分内存来存放未使用的区域。 标记整理算法(Mark-Compact):该算法将所有活跃对象向一端移动,然后将另一端的空间全部清空。该算法可以避免碎片问题,但需要耗费大量的时间。 Java虚拟机会根据当前的情况选择合适的垃圾回收算法。Java中的垃圾回收是由Java虚拟机的垃圾回收器来执行的。Java中的垃圾回收器会定期运行,自动回收不再使用的内存。 下面是一个简单的示例代码,用来演示Java中的垃圾回收机制: ```java public class GarbageCollectorDemo { public static void main(String[] args) { for (int i = 0; i < 10000; i++) { String s = "Hello, World!"; System.out.println(s); } } } ``` 在上面的代码中,我们创建了一个循环,循环中创建了10000个String对象。由于每个String对象都不再被引用,因此它们会在Java虚拟机的垃圾回收器运行时被回收,从而释放所占用的内存。
上一篇:
内存模型
下一篇:
Mybatis面试题
该分类下的相关小册推荐:
Java语言基础5-面向对象初级
Java语言基础8-Java多线程
Java必知必会-Maven高级
JAVA 函数式编程入门与实践
Mybatis合辑5-注解、扩展、SQL构建
手把手带你学习SpringBoot-零基础到实战
SpringBoot零基础到实战
SpringBoot合辑-高级篇
Java语言基础9-常用API和常见算法
经典设计模式Java版
Java语言基础1-基础知识
Mybatis合辑1-Mybatis基础入门