- 博客(13)
- 收藏
- 关注
原创 jdk各版本垃圾收集器介绍
本文系统梳理了Java垃圾收集器的发展历程和核心特性。从JDK1.3到JDK21,默认GC经历了从Serial到Parallel再到G1的演变,并逐步引入ZGC等新一代收集器。重点分析了7款经典收集器的工作原理:Serial/ParNew等基础收集器采用标记-复制算法;Parallel系列专注吞吐量优化;CMS追求最短停顿但已淘汰;G1通过Region分区实现可控延迟;ZGC创新性采用染色指针技术实现更低延迟。文章详细阐述了各收集器的适用场景、算法特点及版本演进,展现了Java垃圾回收技术从单线程到并发、从
2025-10-26 07:30:00
1511
原创 可达性分析算法
可达性分析算法通过GC Roots对象作为起点,判断对象是否存活。算法采用三色标记法(白色、灰色、黑色)进行标记,其中黑色对象表示存活,白色对象将被回收。在并发标记过程中,可能出现"对象消失"问题,需通过增量更新(CMS)或原始快照(G1)解决。GC Roots包括虚拟机栈引用、类静态属性、常量引用等。对象可通过finalize()方法进行自救,但需经历两次标记过程。该算法是判断对象存活的关键机制,与垃圾回收策略密切相关。
2025-10-25 20:08:58
378
原创 垃圾回收算法
本文介绍了四种垃圾回收算法:标记-清除算法通过标记和清除两阶段回收垃圾,但存在效率不稳定和内存碎片问题;复制算法将内存分为两半,通过对象复制避免碎片,但浪费空间;Appel式回收将新生代分为Eden和Survivor区,通过对象转移实现高效回收;标记-整理算法让存活对象向内存一端移动后清除边界外内存。新生代适合复制算法因其存活对象少,老年代适合标记-整理算法因其存活对象多且需要保证吞吐量。不同算法根据内存区域特点选择使用。
2025-10-25 20:05:36
202
原创 Javaweb第三天第四天-JavaScript
JavaScript语言诞生主要是完成页面的数据验证。因此它运行在客户端,需要运行浏览器来解析JavaScript代码。js最早取名为LiveScript;为了吸引更多Java程序员,改名JavaScript。JS是弱类型,JAVA是强类型。弱类型就是类型可变,强类型就是定义变量的时候类型已定并且不可变。交互性(他可以做的就是信息的动态交互)安全性(不允许直接访问本地硬盘)跨平台性(只要是可以解释JS的浏览器都可以执行,和平台无关)Object形式的自定义对象对象的定义。
2024-11-05 20:22:19
1011
原创 Javaweb第一天-html_持续更新...
Hyper Test Markup Language(超文本标记语言) 简写:HTMLHTML通过标签来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)标签的格式:封装的数据标签名大小写不敏感标签拥有自己的属性可以修改简单的样式效果onclick="akert('你好!');可以直接设置事件响应后的代码标签又分为:单标签和双标签。
2024-11-03 21:06:40
955
原创 MySQL中的事务
事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。
2024-11-02 16:55:17
213
原创 MySQL中的多表查询
概述:指从多表中查询数据笛卡尔积:笛卡尔乘积是指在数学中,两个集合A和集合B的所有组合情况。(在多表查询时,需要消除无效的笛卡尔积)多表查询分类连接查询:内连接:相当于查询A、B交集部分数据外连接:左外连接:查询左表所有数据,以及两张表交集部分数据右外连接:查询右表所有数据,以及两张表交集部分数据自连接:当前表与自身的连接查询,自连接必须使用表别名子查询。
2024-10-31 19:58:28
489
原创 MySQL中函数及约束
DATE_ADD(date,INTERVAL expr type) 返回一个日期/时间值加上一个时间间隔expr后的时间值。IFNULL(value1,value2) 如果value1不为空,返回value1,否则返回value2。LPAD(str,n,pad)左填充,用字符串pad对str的左边进行填充,达到n个字符串长度。RPAD(str,n,pad)右填充,用字符串pad对str的右边进行填充,达到n个字符串长度。IF(value,t,f) 如果value为true,特返回t,否则返回f。
2024-10-30 23:11:28
781
原创 Java中的类加载
如果在加载阶段就进行验证,可能会导致加载大量不必要的类,而这些类可能根本不会被使用。:验证阶段会对类的结构、字节码的合法性进行复杂的检查。将验证放在链接阶段可以确保在准备和解析阶段之前,有一个明确的时刻去检查类的有效性。在这个阶段,类的二进制字节流会被读取并放入方法区,JVM从类的二进制字节流中读取类的定义,并将其转换为一个Class对象。:通过这种机制,Java能够有效地管理内存,优化启动时间,并避免加载不必要的类,从而提高整体性能。:由于没有被加载的类不会进行链接,因此也就不会执行验证、准备或解析。
2024-10-29 17:38:12
461
原创 GeekDesk极客桌面:美观小巧的桌面快速启动管理神器!
大家在日常工作生活中是不是为了找某个文件或打开某个网址总是要翻箱倒柜?嫌麻烦?这款工具可以让大家轻松启动应用、打开某个网址!提示:以下是本篇文章正文内容,下面案例可供参考体验下来,GeekDesk是一个非常实用的桌面管理工具,适合所有人去使用。免费 / 美观 / 高度定制化 是从GeekDesk诞生开始就有的需求和方向, 未来也会向着这些方向发展。
2024-07-17 12:00:18
8928
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅