自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 力扣刷题【2】无重复字符的最长字串

摘要:本文介绍了一种使用哈希表和双指针算法来求解字符串中最长无重复字符子串长度的方法。通过维护一个滑动窗口(left和right指针)和哈希表记录字符位置,当遇到重复字符时更新左边界,并始终保持窗口内无重复字符。时间复杂度为O(n),空间复杂度为O(字符集大小)。关键点在于使用Math.max防止左指针回退,确保窗口只向右移动。该方法高效解决了经典的无重复字符最长子串问题。

2025-07-05 18:29:20 238

原创 力扣刷题记录【1】146.LRU缓存

摘要:本文介绍了LRU缓存的设计与实现,通过双向链表维护访问顺序(头部为最新数据,尾部为最久未使用)和哈希表提供O(1)查找。关键点包括哨兵节点简化边界处理,以及get/put操作时节点移动的O(1)时间复杂度处理。当容量超限时自动移除尾部节点。作者分享了自己首次通过AI辅助理解算法并成功实现的经历,强调数据结构基础的重要性,并鼓励读者持续刷题提升能力。全文包含完整Java代码实现和复杂度分析。

2025-07-04 15:59:51 388

原创 痛定思痛:大二下期的自救之路

这导致了我现在的基础很差很差,什么都会一点儿什么都不精。我觉得要有一种这个项目是我自己创造的感觉,不要只是机械式的抄代码,其实这样的人很多,我发现网上很多人现在一样忘记了自己在苍穹外卖或者黑马点评中学到了什么,哎,不要太焦虑没用的,现在我敢打赌很多学习java的大学生其实对于java的技术都是一知半解,都只会表面的,深一点的东西都不会了,这其实就是拉开与别人差距的地方,大家都是一知半解,用着大差不差的项目,学着大差不差的技术,都是同一班流水线中出来的,如果你的学历还不行,跟我一样,那么你将淹没在人群中。

2025-06-30 03:17:01 275 1

原创 【java基础重要内容|第二篇】深入探寻Threadlocal类一看就懂

ThreadLocal是Java中用于实现线程局部变量的类,它为每个线程提供独立的变量副本,实现线程隔离。文章详细分析了ThreadLocal的内部结构,包括ThreadLocalMap的实现机制、哈希冲突的线性探测法解决方案,以及弱引用key的设计原因。重点探讨了可能存在的内存泄漏问题,强调使用后必须调用remove()方法清理数据。通过源码解析,文章展示了set/get方法的实现逻辑,并解答了关于弱引用回收、Entry清理等常见问题。最后提醒开发者正确使用ThreadLocal以避免内存泄漏,确保多线程

2025-06-19 21:55:57 1416

原创 【从零学习JVM|第九篇】常见的垃圾回收算法和垃圾回收器

本文介绍了Java堆内存中的垃圾回收算法与实现。主要内容包括:1)四种核心算法:标记清除(简单但有碎片)、标记整理(消除碎片但效率低)、复制算法(高效但内存利用率低)、分代回收(综合运用);2)常见回收器:年轻代的Serial、ParNew、ParallelScavenge,老年代的SerialOld、ParallelOld、CMS;3)G1回收器的创新设计,包括分区管理、可预测停顿和并发处理等特性。文章详细分析了各算法与回收器的优缺点、适用场景及实现原理,帮助开发者根据应用特点选择合适的垃圾回收策略。

2025-06-16 15:09:37 1142

原创 【从零学习JVM|第八篇】深入探寻堆内存

Java堆回收机制通过自动清理无效对象来管理内存,核心算法包括引用计数法和可达性分析法。引用计数法实时性强但存在循环引用问题,可达性分析通过GC Roots对象(如虚拟机栈引用、静态变量等)判断对象是否存活。Java提供五种引用类型:强引用(不会被回收)、软引用(内存不足时回收)、弱引用(GC运行时回收)、虚引用(仅用于回收通知)和终结器引用(finalize方法调用)。开发者应合理使用引用类型优化内存管理,避免内存泄漏。堆内存参数(-Xms/-Xmx)的设置直接影响程序性能,理解回收机制有助于提升应用稳定

2025-06-12 21:06:12 1506

原创 【从零学习JVM|第七篇】快速了解直接内存

Java直接内存是JVM堆外的操作系统内存区域,通过ByteBuffer操作,核心优势是零拷贝和减轻GC压力。它避免了I/O操作时的数据复制,提升大文件传输性能,并减少堆内存占用。但需手动管理释放,否则易内存泄漏,且分配成本较高。使用时需设置内存上限(MaxDirectMemorySize),评估场景合理使用。直接内存适合高性能I/O和大内存管理,但需谨慎管理生命周期。

2025-06-12 16:13:14 1078

原创 【从零开始学习JVM | 第六篇】运行时数据区

JVM运行时数据区是Java程序执行的核心内存管理结构,主要包括堆、方法区、虚拟机栈、本地方法栈和程序计数器五大区域。堆是最大且线程共享的区域,用于存储对象实例,由垃圾回收器管理;方法区存储类元数据、常量等共享信息,在JDK8后改为元空间实现;虚拟机栈和本地方法栈均为线程私有,分别处理Java方法和本地方法调用;程序计数器记录线程执行位置。这些区域协同工作,通过不同的内存分配策略支持Java程序运行,其中堆和方法区需特别注意内存溢出问题。理解这些区域的特性对于Java性能调优和内存管理具有重要意义。

2025-06-11 20:28:15 1361

原创 【从零学习JVM|第五篇】打破双亲委派机制

文章摘要:双亲委派机制虽能避免重复加载类并保护核心类库安全,但在实际开发中常需打破以满足业务需求。打破该机制主要为了:1)实现模块化系统中不同版本类库共存;2)解决多应用环境下的类冲突;3)支持动态加载/卸载和热部署;4)满足特殊业务需求。实现方法包括:自定义类加载器重写loadClass方法、使用线程上下文类加载器(如JDBC的SPI机制)以及OSGi框架的"本地优先"加载策略。这些方式突破了传统类加载限制,实现了更灵活的类管理,但需权衡安全性与灵活性。

2025-06-10 20:04:08 1083

原创 【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

双亲委派机制是Java类加载的核心机制,采用层级委托方式实现类加载。主要包含启动类加载器(Bootstrap)、扩展类加载器(Extension)和应用类加载器(Application)三级结构。其工作流程是:子加载器先委托父加载器尝试加载,只有当父加载器无法完成时才自行加载。这种机制保证了类的唯一性,防止核心API被篡改,同时实现类的隔离。源码中通过loadClass()方法实现逐层委托,findClass()完成具体查找。该机制是Java安全模型的基础,既能避免类重复加载,又能确保核心类库安全。

2025-06-09 21:21:09 1244

原创 【从零学习JVM|第三篇】类的生命周期(高频面试题)

Java类的生命周期包括:加载(将字节码加载到内存,生成Class对象)、连接(验证字节码、准备静态变量内存并赋默认值、解析符号引用)、初始化(执行静态代码块和赋值)、使用(创建实例、调用方法)、卸载(类不再使用时被回收)

2025-06-09 19:40:16 1811

原创 【从零学习JVM|第二篇】字节码文件

摘要:本文介绍了Java字节码文件(.class)的结构与组成。主要内容包括:字节码文件的基本组成(魔数、版本号、常量池等8个部分);各部分的具体作用与存储方式;字节码指令的执行示例(如i++与++i的区别);以及使用jclasslib工具查看字节码的方法。通过分析字节码底层实现,帮助开发者更深入理解JVM工作原理和代码执行机制。文章最后强调了学习字节码对掌握Java底层逻辑的重要性。

2025-06-04 19:19:11 956

原创 【从零学习JVM|第一篇】初识jvm

Java虚拟机(JVM)是现代软件开发的核心组件,Java虚拟机这块的知识很重要,不仅仅是体现在面试当中,更是体现在技术上,如果你想成为一个技术大牛,那这块的知识必须好好理解

2025-06-03 19:14:04 1376

原创 【从零学习Rabbitmq第三篇】消费可靠性和延迟消息和业务米

让你了解什么叫消费者可靠性并如何保障,了解业务幂等性和延迟消息

2025-05-29 21:03:47 1066

原创 【从零学习Rabbitmq第二篇】确保生产者和mq的消息可靠性

如何确保我们的生产者可靠性和mq可靠性

2025-05-28 20:45:09 966

原创 【从零学习Rabbitmq第一篇基础篇】初识Rabbitmq

简单了解Rabbitmq本篇文章等待你的阅读,来吧小伙子

2025-05-27 21:00:15 450

原创 【java基础重要内容|第一篇】HashMap源码解析

从源码上了解hashmap的底层原理

2025-05-22 22:37:58 947

原创 苍穹外卖—万字总结

  苍穹外卖写完了,作为我的第一个项目,可谓是收获满满。不管是知识上的收获,还是思维上的收获,都是非常多的,所以我现在回头来好好看看这个项目,总结一下我的这个项目。

2025-04-15 14:18:32 2601

原创 苍穹外卖第九和第十天

昨天写了一整天的接口,今天完成了一点功能,还是有收获的。

2025-04-06 22:02:46 960

原创 苍穹外卖第七天和第八天

今天放假了,上午有点摆,一直玩,然后下午两点才开始学,昨天的项目日记今天一起补上。

2025-04-04 20:06:14 995

原创 苍穹外卖第六天

今天下午没课,然后课上补了一些之前javaweb没听懂的知识,今天学下来的感受就是有些听不懂有一点懵。

2025-04-01 19:58:59 653

原创 苍穹外卖项目第五天

今天课不多,然后下午体育课直接润,待在寝室写代码,这一周的课都不多,所以这一周加上清明节,就准备完成苍穹外卖这个项目。

2025-03-31 18:56:45 1457

原创 苍穹外卖第四天

今天全是课,完全没时间,接口还是在一些机房课上拿自己电脑偷偷写的。

2025-03-27 22:05:46 319

原创 今天是苍穹外卖项目第三天

这一周的课都很多,单周课多,下周双周的话可以多写一点代码,今天写的不多但是收获蛮多的。

2025-03-26 21:23:44 396

原创 学习苍穹外卖第二天

今天下午五点下课回来开始学项目,学了三个半小时,然后发现状态不行了,就明天在学吧。

2025-03-25 21:34:39 218

原创 苍穹外卖项目第一天

这是我的第一篇博客,也是我第一个项目的开始,写这个的原因就是第一个记录一下来鞭策一下我自己,第二个也是回顾一下今天的学习。

2025-03-24 20:23:10 254

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除