- 博客(658)
- 收藏
- 关注
原创 2025最全 Java 面试八股文(持续更新)
当一个线程被剥夺cpu使用权时,切换到另外一个线程执行死锁指多个线程在执行过程中,因争夺资源造成的一种相互等待的僵局CAS锁可以保证原子性,思想是更新内存时会判断内存值是否被别人修改过,如果没有就直接更新。如果被修改,就重新获取值,直到更新完成为止。这样的缺点是(1)只能支持一个变量的原子操作,不能保证整个代码块的原子操作(2)CAS频繁失败导致CPU开销大。
2025-03-13 15:41:57
1643
2
原创 (牛客网2024最新版)1100+大厂面试题附答案详解
不论是技术经理还是架构师,没有绝对地说哪条路是对还是错,适合自己才是最重要。小公司的可能没有架构师这个概念,大公司的架构师职位又不是那么容易拿下。但不管怎样,不断去学习新的技术,提升自己的层次是很有必要的,无论你在哪一家公司,过硬的技术水平才能吃得开。
2024-12-10 14:58:00
1930
原创 互联网大厂 最常见的200道Java 面试题
说了这么多,下面进入我们本文的主题,我们这份面试题,包含的内容了十九了模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM。如下图所示:可能对于初学者不需要看后面的框架和 JVM 模块的知识,读者朋友们可根据自己的情况,选择对应的模块进行阅读。适宜阅读人群。
2025-12-25 15:36:08
701
原创 全网最全的 Jenkins + Maven + Git 自动化部署指南!
我们今天用 Jenkins + Maven + Git 来实现一套简单的自动化部署• 首先,程序员将本地代码,git push到远程 GitLab 服务器。• 然后,Jenkinsgit pull到 Jenkins 服务器,并用 maven 帮我们打成 jar 包。• 最后,Jenkins 将打好的 jar 包通过 SSH Publisher 发布到测试服务器。
2025-12-25 15:27:02
597
原创 2000 道 Java面试题及答案整理(2025最新版)
这份总结内容涵盖极广包括各大厂最新面试题以及面经,还有涉及 JVM,Mysql,并发,Spring,Mybatis,Redis,MQ,Zookeeper,Netty,Dubbo,Spring Boot,Spring Cloud,数据结构与算法......等相关技术领域的大厂面试题及详解,还有相关面试突击系列视频以及学习路线。小册分别从软实力跟硬实力两方面入手,全方位为大家解读面试题,近期 LZ 面试前也一直是刷的这个,感觉总结得还是挺全面的。所谓硬实力就是作为程序员的我们所掌握的技术情况了。
2025-12-24 14:34:59
205
原创 优雅解耦!SpringBoot 工厂+策略模式统一多端登录
/ 登录类型标识,如"password"、"wechat"// 登录方法,参数用Map传递不同登录方式的参数回顾三年前的面条代码,再看现在的实现,最大的感受是:好的设计模式能让代码在需求变化面前保持优雅。工厂模式和策略模式的组合,就像给登录模块装了一个 "热插拔" 接口,新增功能时不用改核心逻辑,只需要添加新的 "插件"。最后送大家一句口诀:登录逻辑别硬刚,策略模式来帮忙,工厂负责创实例,开闭原则记心上,Spring Boot 搭舞台,依赖注入真叫爽,需求万变不用慌,代码优雅没商量!
2025-12-24 13:42:53
233
原创 8 万字 208 道 Java 经典面试题总结 (附答案)
线程池就是提前创建若干个线程,如果有任务需要处理,线程池里的线程就会处理任务,处理完之后线程并不会被销毁,而是等待下一个任务。由于创建和销毁线程都是消耗系统资源的,所以当你想要频繁的创建和销毁线程的时候就可以考虑使用线程池来提升系统的性能。java 提供了一个 java.util.concurrent.Executor 接口的实现用于创建线程池。CAS 是 compare and swap 的缩写,即我们所说的比较交换。cas 是一种基于锁的操作,而且是乐观锁。在 java 中锁分为乐观锁和悲观锁。
2025-12-23 15:50:40
446
原创 Java线程协作工具:CountDownLatch 、CyclicBarrier、Phaser、Semaphore 、Exchanger
特性PhaserSemaphoreExchanger引入版本1.51.51.71.51.5是否可重用❌✅✅✅✅协作模式一方等多方所有互相等多阶段动态同步控制并发数两线程交换动态参与者❌❌✅❌❌分层支持❌❌✅❌❌底层机制AQS自定义同步(CAS+自旋+队列)AQSCAS+自旋典型用途初始化等待分阶段计算复杂并行任务协调限流数据交换Condition。
2025-12-23 15:47:49
429
原创 Java 岗 798 道真题解析,定级阿里 P7
春招,秋招,社招,我们 Java 程序员的面试之路,是挺难的,过了 HR,还得被技术面,鄙人在去各个厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥幸能够入职一个独角兽公司,安稳从事喜欢的工作至今...近期也算是抽取出大部分休息的时间,为大家准备了一份通往大厂面试的小捷径,准备了一整套 Java 复习面试的刷题以及答案,我知道很多朋友不知道怎么复习,不知道学习过程中哪些才是重点,其实,你们经历过的事情,鄙人也经历过,正应为经历过,所以不愿意看到还有万千学子为此伤神,
2025-12-22 14:30:23
880
原创 线程数突增!领导:谁再这么写就滚蛋!
如果只是在局部方法中使用线程池,线程池对象不是 bean 的情况时,记得要合理的使用shutdown或者方法来释放线程和线程池对象,如果不使用,会造成线程池和线程对象的堆积。
2025-12-22 13:39:14
484
原创 大厂面试真题解析:java 集合 +spring+ 并发编程 +MyBatis
不知道最近面试是否顺利,是否会经常问到一些自己不熟悉的问题,不知道怎么去回答这些问题,今天小编给大家整理了 2022 年大厂经常问到了的一些面试真题及解析,内容点包含有 java 集合,jvm,并发编程,spring,mybatis,springMVC,微服务,Dubbo,netty,网络,zookeeper,kafka,rabbitMQreadis 缓存,数据库,设计模式。等一线大厂互联网大厂常问到的面试真题,大家可以学习下用来突击金三银四。ArrayList 和 Vector 的区别。说说 ArrayL
2025-12-21 14:52:51
469
原创 注意:雪花算法并不是ID的唯一选择!
秋天,树上掉下两片叶子,你要和它们说再见。但你如何知道这片叶子,不是另外一片叶子?是通过它的形状,还是通过它的重量?当我们在分布式环境中存储一些数据的时候,不得不面对的一个选择,就是ID生成器。使用一个唯一的字符串,来标识一条完整的记录。这时候,不能使用md5或者sha1来对整个记录做摘要,因为我们后续还要改动这个记录。也不能使用单机的计数器,因为计数器容易重启清零,也会存在多台机器上的数值重复,这违背了无状态服务的建设目标。
2025-12-21 14:51:14
539
原创 Java面试题大全(整理版)最全面详细,看完稳了
行业竞争越来越严峻,面试也是越来越难,一直以来我都想整理一套完美的面试宝典,奈何难抽出时间,这套 1000+道的 Java 面试手册我整理了整整 1 个月,上传到 Git 上目前 star 数达到了 30K+这套互联网 Java 工程师面试题包括了:MyBatis、ZK、Dubbo、EL、Redis、MySQL、并发编程、Java 面试、Spring、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 面试专题(共 485 页,32W 字)
2025-12-19 14:55:27
536
原创 SpringBoot 集成 Hera,让日志查看从 “找罪证” 变 “查答案”!
问题原因:自定义字段的value-provider未正确实现,或未注册为 Spring Bean解决方案:确保HeraCustomFieldProvider实现类添加了@Component注解,且方法返回值不为 nullSpringBoot 集成 Hera 的本质,不是简单的 “日志查看工具升级”,而是 “分布式系统可观测性的基础设施建设”。效率提升:将日志排查时间从 “小时级” 缩短到 “分钟级”,某电商平台接入后,平均排障时间从 2 小时降至 15 分钟成本降低。
2025-12-19 14:18:27
833
原创 最全Java面试题 ,热门高频200 题+答案汇总
通过 CAS 进行插入操作,只有在更新链表或红黑树时才使用 synchronized,并且只锁住链表或树的头节点,进一步减少了锁的竞争,并发度大大增加。前者是存储对象的集合类,后者存储的是键值对(key-value)。,即每个 Segment 是独立的,可以并发访问不同的 Segment,默认是 16 个 Segment,所以最多有 16 个线程可以并发执行。红黑树是一种平衡二叉搜索树,插入、删除、查找操作的时间复杂度为 O(log n),在元素多的情况下远优于链表的 O(n)。每个接口有其具体实现类。
2025-12-18 15:56:14
714
原创 SpringBoot + @RefreshScope:动态刷新配置的终极指南
通过,我们实现了:• ✅ 零停机配置更新• ✅ 即时生效的应用参数• ✅ 更灵活的运维体验• ✅ 资源利用最大化最佳实践建议:• 敏感配置(如密码)避免使用动态刷新• 配合配置中心(Nacos/Config Server)使用• 生产环境务必保护刷新端点技术的本质是让复杂变简单。掌握动态配置刷新,让你的应用在云原生时代如虎添翼!
2025-12-18 15:40:48
375
原创 程序员面试必备的Java八股文,适合所有的Java求职者!
本文分享Java后端真实高频面试题,有详细答案,保你稳过面试。题目包括:Java基础、多线程、JVM、数据库、Redis、Shiro、Spring、SpringBoot、MyBatis、MQ、ELK、SpringCloud、设计模式等。包含从简单到困难、从高频到低频的题目,,包括:应届生、转行的、三年以内经验的、三到五年经验的、五到十年经验的等。看过我这篇文章的几个朋友和同事参加了面试后跟我说,他们面试被问到的问题大部分()都在这个文章里。
2025-12-17 13:31:23
593
原创 SpringBoot集成Spring Statemachine(状态机)实战教程
8、扩展(新增一个放款事件,该事件会将订单状态由【审核成功】流转到【放款成功】或者【部分放款成功】,具体流流转哪一个状态是由订单的放款金额决定的,如果申请金额和放款金额一致就是【放款成功】,放款金额小于申请金额就是【部分放款成功】)在我自己使用到的场景中还包含一个事件需要根据不同的条件将同一来源状态流转到不同的目标状态。8.3 优化一下上面的【配置状态转换事件关系】,需要在事件后面增加条件判断(通过。示例中涉及到:状态机的配置、数据持久化、状态恢复查询、同一事件由同一。,并传入相应的事件来改变订单的状态。
2025-12-17 13:25:59
307
原创 互联网大厂Java后端面试中常见面试题及其答案
常见的结构型模式,包括桥接模式(Bridge)、适配器模式(Adapter)、装饰者模式 (Decorator)、代理模式(Proxy)、组合模式(Composite)、外观模式(Facade)、享元模式(Flyweight)等。fnal可以用来修饰类、方法、变量,分别有不同的意义,fnal修饰的class代表不可以继承扩展,fnal的变量是不可以修改的,而fnal的方法也是不可以重写的(override)。不同的引用类型,主要体现的是对象不同的可达性(reachable)状态和对垃圾收集的影响。
2025-12-16 16:18:23
548
原创 从 Spring Boot 2.x 到 3.5.x + JDK21:一次完整的生产环境迁移实战
在 Spring 6.x 后已标记为废弃,后续版本将删除。建议逐步修正所有端点,去除尾斜杠。:EasyExcel 已不再维护,FastExcel 是社区维护的替代方案,API 基本兼容。:Maven 依赖解析采用"最短路径优先"和"第一声明优先"原则,可能导致旧版本覆盖新版本。前两项(命名空间和 JDK 版本)涉及的代码改动量极大,手动修改容易出错且效率低下。/api/user/get 和 /api/user/get/ 视为同一接口。/api/user/get 和 /api/user/get/ 视为。
2025-12-16 16:14:28
887
原创 2025年java后台面试知识点总结
本文主要记录在准备面试过程中遇到的一些基本知识点(持续更新) 1、抽象类和接口的区别 接口和抽象类中都可以定义变量,但是接口中定义的必须是公共的、静态的、Final的,抽象类中的变量跟普通类中的没有区别。从设计上来说,接口是对一系列行为的抽象,而抽象类是对事物的抽象。 2、什么时候使用抽象类和接口 ①当希望某些方法具有默认实现时。 ②希望实现多重继承,必须使用接口。由于Java不支持多继承,子类不能够继承多个类,但可以实现多个接口。因此你就可以使用接口来解决它。 ③如
2025-12-15 14:53:48
428
原创 通用树形结构构建器:Java高性能工具类封装
检测到循环依赖链: 1001 → 1002 → 1003 → 1001。通过泛型参数T(数据类型)和K(ID类型),支持各种业务场景。推荐使用包装类型(避免Long与long的匹配问题)筛选根节点(父ID不存在或对应节点缺失)允许游离节点(父节点不存在时成为根节点)通过ID快速定位节点,验证ID唯一性。预先生成父节点→子节点列表的关系字典。支持自定义排序规则、子节点设置方式。自定义比较器(推荐业务相关排序)原始数据对象应支持子节点集合设置。自动识别根节点、建立父子关系。初始化所有节点的子节点列表。
2025-12-15 14:37:36
280
原创 最新版Java高频面试题(含答案)
因为线程竞争,会导致线程阻塞或者挂起,但是如果同步资源的锁定时间很短,那么阻塞和挂起的花费的资源就得不偿失。自旋锁: 当竞争的同步资源锁定时间短,就让线程自旋,如果自旋完成后,资源释放了锁,那线程就不用阻塞,直接获取资源,减少了切换线程的开销。实现原理是CAS。缺点:占用了处理器的时间,如果锁被占用的时间短还好,如果长那就白白浪费了处理器的时间。所以要限定自旋次数(默认是10次,可以使用-XX:PreBlockSpin来更改)没有成功获得锁,就应当挂起线程。
2025-12-14 21:13:14
830
原创 Oracle SGA核心组件深度解析:Buffer Cache与Shared Pool工作机制
在Oracle数据库的内存架构中,SGA(系统全局区)是决定性能的核心区域,而Buffer Cache与Shared Pool作为SGA中最关键的两个组件,其设计原理和运行机制直接影响数据库的读写效率与资源利用率。
2025-12-14 21:10:38
470
原创 2025年 Java 面试八股文汇总
所谓反射,是java在运行时进行自我观察的能力,通过class、constructor、field、method四个方法获取一个类的各个组成部分。在Java运行时环境中,对任意一个类,可以知道类有哪些属性和方法。这种动态获取类的信息以及动态调用对象的方法的功能来自于反射机制。序列化就是一种用来处理对象流的机制。将对象的内容流化,将流化后的对象传输于网络之间。
2025-12-12 13:54:17
637
原创 替代FinalShell,一款更高效、更智能的开源终端神器!
T-Shell 是一个让你摆脱繁琐的命令,不用每次去百度,去记事本里找的智能命令行终端应用。T-Shell不是一个全新的 shell,目的是为了取代FinalShell。它也不是轻量级的,但是比FinalShell内存占用小。
2025-12-12 13:48:24
225
原创 不愧是京东大牛手码的“redis 深度笔记”从基础到源码应有尽有
Redis()作为一个开源/C实现/高性能/基于内存的key-value存储系统,相信做Java的小伙伴都不会陌生。Redis常用于缓存、分布式锁、队列(或有序集合)等场景,追求技术的小伙伴们肯定不只满足于Redis的使用上,肯定也想了解Redis背后的设计思想及对应的开发实践。如果你是一位后端工程师,面试时八成会被问到 Redis,特别是大厂,不仅要求能简单使用 Redis,还要深入理解底层原理,具备解决常见问题的能力。可以说,熟练使用 Redis 是后端工程师的必备技能。
2025-12-11 15:54:08
926
原创 你的接口很好,但在使用者眼里,它可能只是个打不开的黑盒
有过"考古式开发"的经历吗?你接手了一个离职同事留下的老项目,或者在一个庞大的微服务群里找到了一个看似完美契合需求的内部接口。你满怀期待地点击文档链接,结果页面上只有冷冷清清的一行字:。你只能咬着牙去翻源码。从 Controller 顺藤摸瓜到 Service,再到深埋在 DTO 里的参数定义。你试着传了 ,报错 ;改传 ,依然报错。最后你通过断点调试才发现,这个参数需要嵌套在 对象里,而且必须是 类型。那一刻,哪怕在这个接口内部运用了最精妙的设计模式,优化到了极致的性能,在你眼里,它依然体验极差。在软
2025-12-11 15:52:41
813
原创 5天秒挂8个Java后端,现在面试都不准备的吗
建议找工作可以多做些提升和思考,不仅仅在面试方面,面试只是第一步而已,你怎么过试用期也是一个大问题,给你提的需求,你能不能顺利给到上级,不要被卡在门口了.后面一些业务场景题和一些现在常问的面试题可以去理解一下解题思路,对面试也会有所帮助.但是还是重点看自己,有疑惑的也可以找我,希望大家都可以早日找到工作!无论面的是大厂还是中小公司,决定你能否拿到offer的,不是你听过多少高大上的词,而是你回答时展现出的逻辑、深度和清晰度。场景设计:给你一个需求,比如“设计一个短链接生成系统”,你怎么考虑?
2025-12-10 13:20:40
828
原创 JVM内存与GC机制全景深度剖析:从对象诞生到垃圾回收的完整生命周期
引用类型创建方式垃圾回收时机生存时间(强度)用途强引用永远不会最强程序默认状态,所有正常对象创建软引用内存不足时较强实现内存敏感缓存(如图片缓存)弱引用下一次GC时较弱、防止内存泄漏的辅助缓存虚引用对象被回收的最终时刻最弱(无法获取对象)跟踪对象被回收的事件,用于堆外内存释放等收尾工作第三部分:垃圾回收算法与实现3.1 基础回收算法标记-清除算法过程:先标记所有需要回收的对象,然后统一回收缺点:产生内存碎片,分配大对象时可能失败复制算法。
2025-12-10 13:16:11
519
原创 2025年java面试题,各大企业常见的java笔试题及答案(精华)
其实 LZ 在金三银四跳槽成功之后每天的空余时间就在整理一份面试手册,一是让自己也复盘一下,二是希望能帮助到更多同僚。虽然还没有完全整理好不过也差不多了!今天就把它分享出来,希望能对大家以后面试有所帮助!
2025-12-09 17:34:07
243
原创 Spring使用el表达式
获取class对象创建对象@beanName获取bean对象简便创建数组简便创建map#root获取根对象#variable获取变量#this获取当前对象,集合筛选中使用method()或者调用方法property或者获取属性[index]或者获取集合元素或对象属性list.?筛选集合元素list.?返回筛选后的第一个元素list.?返回筛选后的最后一个元素list.!集合投影?:'value'空值判类似property?.method()
2025-12-09 17:29:24
591
原创 2026年 Java面试全指南(八股文+场景题)
"面了5家公司,挂了4家...""八股文倒背如流,场景题一脸懵逼...""项目经验3年,被问得像个实习生..."如果你也有这样的感受,请务必看完这篇5000字长文,这将是你面试突围的关键!篇幅限制下面就只能给大家展示小册部分内容了。整理了一份核面试小册:Java面试题,简历模板、学习路线,需要的朋友可以在文末获取八股文是你的基础装备项目经验是你的等级系统设计是你的终极技能面试技巧是你的操作意识现在开始准备,下一个拿到心仪Offer的就是你!以上内容有帮助到你就很开心哦,都是打包好的!
2025-12-08 13:57:05
543
原创 面试官:一千万的数据,你是怎么查询的?
面试官:来说说,一千万的数据,你是怎么查询的?B哥:直接分页查询,使用limit分页。面试官:有实操过吗?B哥:肯定有呀此刻献上一首《凉凉》也许有些人没遇过上千万数据量的表,也不清楚查询上千万数据量的时候会发生什么。今天就来带大家实操一下,这次是基于MySQL 5.7.26做测试。
2025-12-08 13:26:05
709
原创 2025 Java面试全指南(八股文+场景题双飞版)
八股文是你的基础装备项目经验是你的等级系统设计是你的终极技能面试技巧是你的操作意识现在开始准备,下一个拿到心仪Offer的就是你!以上内容有帮助到你就很开心哦,都是打包好的!可以点击下方名片获取!
2025-12-07 16:45:44
1265
原创 技术面:MySQL(一条SQL在MySQL的执行过程?、MyISAM和InnoDB的区别?数据库事务机制?)
维度MyISAMInnoDB事务不支持支持(ACID、提交/回滚)锁粒度表级锁行级锁(含间隙锁)外键不支持支持崩溃恢复仅依赖检查/修复表(REPAIR TABLE)redo/undo 日志自动崩溃恢复索引类型非聚簇索引(数据与索引分离)聚簇索引(主键即数据)存储文件.MYD(数据)+.MYI(索引).ibd(单表空间)或共享表空间COUNT(*)内置计数器,瞬间返回(无WHERE条件下)
2025-12-07 15:55:56
615
原创 Java 高频面试题 (2026 最新含答案)
因为线程竞争,会导致线程阻塞或者挂起,但是如果同步资源的锁定时间很短,那么阻塞和挂起的花费的资源就得不偿失。自旋锁: 当竞争的同步资源锁定时间短,就让线程自旋,如果自旋完成后,资源释放了锁,那线程就不用阻塞,直接获取资源,减少了切换线程的开销。实现原理是 CAS。缺点:占用了处理器的时间,如果锁被占用的时间短还好,如果长那就白白浪费了处理器的时间。所以要限定自旋次数(默认是 10 次,可以使用-XX:PreBlockSpin 来更改)没有成功获得锁,就应当挂起线程。
2025-12-05 14:07:13
843
原创 互联网大厂1000 道 Java 面试题解析,已有 372 人上岸(必看攻略)
在备战面试的时候,大家总会通过刷题的方式来准备,然而刷题是有用没错,有时候还得看看押题能不能压中重点,大厂喜欢问些什么技术点,不然当那个笑眯眯的面试官问出那些你再熟悉不过的问题 Java 问题时,你只是感觉似曾相识,却怎么也回答不到点上。比如 HashMap 的工作原理,再或者说 volatile 的使用场景。这个时候,你可能会怀疑自己的能力,也痛恨为什么当初自己没有好好复习。
2025-12-04 15:33:11
537
原创 MySQL主从复制:原理、部署、运维与选型全指南
优先使用(避免跨库同步问题)从库必须开启read_only(防止误写)主从server-id必须唯一(避免循环复制)
2025-12-04 15:17:04
565
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅