自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2024最全 Java 面试八股文(真实,高频,有详细答案)

2024 年的互联网行业竞争越来越严峻,面试也是越来越难,一直以来我都想整理一套完面试宝典,奈何难抽出时间,这套 1000+道的 Java 面试手册我整理了整整 1 个月,上传到 Git 上目前 star 数达到了 30K+这套互联网 Java 工程师面试题包括了:MyBatis、ZK、Dubbo、EL、Redis、MySQL、并发编程、Java 面试、Spring、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 面试专题(共 485 页,32W 字)

2024-02-19 15:21:18 27321 9

原创 一个Java工程师的17个日常效率工具

最后,工具再好,也需要时间精力去掌握。建议每次只引入1-2个新工具,熟练后再考虑扩展。毕竟,真正的效率来源于熟练度,而非工具数量。

2025-06-09 13:16:03 920

原创 Keepalived 高可用的三种路由方案

它可以将原始数据包封装并添加新的包头(内容包括新的源地址及端口、目标地址及端口),从而实现将一个目标为调度器VIP地址的数据包封装,通过隧道转发给后端的真实服务器(Real Server),通过将客户端发往调度器的原始数据包封装,并在其基础上添加新的数据包头(修改目标地址为调度器选择出来的真实服务器的IP地址及对应端口),LVS(TUN)模式要求真实服务器可以直接与外部网络连接,真实服务器在收到请求数据包后直接给客户端主机响应数据。TUN 方案中,真实服务器处理完结果后,直接返回给客户端。

2025-06-08 13:52:41 637

原创 超实用!Dify调用Java的3种实现方式!

Dify 调用 Java 程序的解决方案有以下几种:通过“HTTP 请求”的方式调用 Java 程序。通过“自定义工具”的方式调用 Java 程序。通过MCP的方式调用 Java 程序。接下来,我们分别来看。自定义工具的调用方式,需要先把 Java 程序发不成 Dify 中的自定义工具,才能正常调用,如下图所示:"info": {},],"paths": {"get": {],},同样,Java 服务器端只需要提供一个可以使用 HTTP 协议访问的接口即可。

2025-06-06 13:13:15 460

原创 漏洞警告:SpringBoot 该如何预防 XSS 攻击 ?

*** Filter 过滤器,拦截请求转换为新的请求*//*** 初始化方法*/@Override/*** 过滤方法*/@Override} else {@Override/*注入自定义的序列化工具,将RequestBody的参数进行转译后传输*/// XSS序列化就是注意要分情况处理。拦截器处理一部分,并注意拦截器的注册方式Jackson的方式处理另一部分,也是注意配置方式。

2025-06-05 13:42:30 915

原创 我有 5种接口流量监控方案,5种!性能、成本、复杂度全面对比

一线开发,你是不是经常碰到这样的场景:运维半夜打电话说某个接口被疯狂调用,系统扛不住了产品经理抱怨页面越来越慢,怀疑是接口性能问题老板突然要看各个接口的调用情况,想了解系统热点这时候,如果有一套能精确统计"每个接口每分钟调用次数"的监控系统,就能快速定位问题了。今天我就把自己在项目中实践的几种方案和踩过的坑分享给大家。在深入技术方案前,我们先聊聊为什么需要这样的统计:性能瓶颈发现 - 哪些接口调用最频繁,是不是要优化或加缓存容量规划 - 根据调用趋势决定啥时候该加机器了安全预警 - 接口突然被猛调用,可能是

2025-06-04 13:13:45 497

原创 Java后端开发必看!2025最全面试八股文手册

线程上下文切换当一个线程被剥夺cpu使用权时,切换到另外一个线程执行死锁死锁指多个线程在执行过程中,因争夺资源造成的一种相互等待的僵局CAS锁CAS锁可以保证原子性,思想是更新内存时会判断内存值是否被别人修改过,如果没有就直接更新。如果被修改,就重新获取值,直到更新完成为止。这样的缺点是(1)只能支持一个变量的原子操作,不能保证整个代码块的原子操作(2)CAS频繁失败导致CPU开销大。

2025-06-03 14:59:18 587

原创 解放双手:SpringBoot 公共字段自动填充的6种神技,开发效率飙升!

在开发外卖系统订单模块时,我发现每个实体类都包含create_time、update_by等重复字段。手动维护这些字段不仅效率低下,还容易出错。本文将分享一套经过生产验证的自动化方案,涵盖MyBatis-Plus、AOP、JWT等六种核心策略,助你彻底摆脱公共字段维护的烦恼。痛点总结:代码重复率高(每个Service方法都要设置)维护成本高(字段变更需修改多处)容易遗漏(特别是更新操作)2.2 实体类注解配置三、进阶方案:AOP统一处理3.1 自定义注解3.2 切面实现

2025-06-03 14:47:21 171

原创 15个Java高级岗高频面试题,大厂考官亲授避坑指南

消息中间件如何解决消息丢失问题* Dubbo的服务请求失败怎么处理* 重连机制会不会造成错误* 对分布式事务的理解* 如何实现负载均衡,有哪些算法可以实现?* zookeeper原理和适用场景* zookeeper watch机制* redis/zk节点宕机如何处理* 分布式集群下如何做到唯一序列号* 如何做一个分布式锁* 用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗* MQ系统的数据如何保证不丢失* 列举出你能想到的数据库分库分表策略;* 类的加载过程是什么?

2025-06-02 13:34:59 547

原创 IDEA官方中文文档正式发布,太爽了!

今天给大家分享了IDEA官方的中文文档,内容确实非常全面,作为Java程序员,大家只需掌握我上面提到的章节内容,基本就可以满足日常开发需要了。

2025-06-02 13:28:06 158

原创 2025面试八股文终极答案库(Java/算法/系统设计全涵盖)

不管是基础还是中级、高级,每个 part 都至关重要重要的,而且我觉得特别是基础这一块,如果基础都没有打牢,那怎么去盖楼?而以上我所例举的全部基础部分的面试题、中级开发所对应问题以及高级程序员要掌握的知识点,相关的完整解析都有全部整理的啦。

2025-05-30 14:22:56 635

原创 Java 中 JSON 字段不固定怎么搞序列化?用好这两个注解就够了!

特别适合那些字段不固定、可能需要动态扩展的 JSON 数据结构,比如配置项、参数列表、插件信息等。

2025-05-30 14:09:22 602

原创 2025Java八股文权威解析(含JVM/并发/Spring避坑指南)

我相信大多 Java 开发的程序员或多或少经历过 BAT 一些大厂的面试,也清楚一线互联网大厂 Java 面试是有一定难度的,小编经历过多次面试,有满意的也有备受打击的。因此呢小编想把自己这么多次面试经历以及近期的面试真题来个汇总分析,阐述下如何去准备,去回答面试官的提问,可以和面试官有个愉快的交谈。

2025-05-29 13:17:06 550

原创 MapStruct 超神进阶用法,让你的代码效率提升十倍!

MapStruct 是一个 Java 编译时注解处理框架,用来自动化将一种 Java Bean 对象映射成另一种类型的对象。该框架的主要目标是使开发人员在尽可能少的代码和最低的运行时间成本下实现属性映射。MapStruct 通过在编译时生成代码来实现这点,这与大多数其他 Java Bean 映射框架在运行时通过反射进行映射形成了鲜明对比。简化了 Java Beans 之间转换的代码,自动生成使用简单的赋值语句完成的映射实现。

2025-05-29 13:10:31 381

原创 牛客网最新版Java面试题及答案整理(纯干货,建议收藏)

面试,跳槽,每天都在发生,而对程序员来说"金三银四"更是面试和跳槽的高峰期,跳槽,更是很常见的,对于每个人来说,跳槽的意义也各不相同,可能是一个人更向往一个更大的平台,更好的地方,可以通过换一个环境改变自己的现状。而我正是其中一员,投了十多家互联网公司,目前 已收到五个 Offer,其实跳槽是把双刃剑,有好也有坏,要看你是因为什么原因跳槽。如果说你即将准备跳槽,是否准备充足了呢?小编即将分享的正是这些面经分享和我的成长笔记。

2025-05-28 14:38:39 822

原创 抛弃 Maven!官方推出全新一代 Java 高性能构建神器,性能炸裂!!

当我们使用 Maven 构建项目时,通常需要启动 Maven 进行编译、测试和打包等操作,而 Maven 传统的构建太慢了,所以 Maven 新起了一个maven-mvnd项目,它的宗旨就是,借鉴来自 Gradle 和 Takari 中的技术以提供更快的 Maven 构建速度。需要注意的是,maven-mvnd并不能有独立于 Maven 使用,它只是对 Maven 的一种封装和改进,可以让 Maven 的构建操作更快、更高效。

2025-05-28 14:35:24 585

原创 牛客网2025最新Java八股文最全题库(动态更新版)

其实Java开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。上面分享的腾讯、头条、阿里、美团、字节跳动等公司的高频面试题,LZ还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。还有更多关于分布式、微服务、高可用、高并发等没有展现出来,可以直接获取原文件来查看,学习。希望能够帮助到更多的朋友。

2025-05-27 13:41:01 577

原创 当你在电商下单时,钱到底怎么扣?用TCC模式解决分布式事务难题

假设你正在开发一个电商系统,用户下单时需要同时完成:创建订单扣减库存冻结优惠券扣减账户余额这四个操作分布在不同的微服务中,如何保证它们要么全部成功,要么全部回滚?这就是分布式事务要解决的核心问题。今天我们要讨论的TCC模式,正是解决这类问题的经典方案。正确姿势先评估业务场景是否真的需要设计阶段明确资源预留方式实现完善的异常处理机制配合监控系统实时跟踪事务状态常见误区把TCC当作银弹到处使用忽略幂等性和防悬挂控制没有配套的监控和报警系统。

2025-05-27 13:30:06 517

原创 2025 Java面试八股文全栈通关手册(含源码级详解)

准备面试的小伙伴,一定要根据自身情况制定好复习计划!并且,你最好还要时不时自测一下,对着一些面试常见的问题进行自问。为了方便大家,我分析了百余份 2020 最新大厂面经,整理了面试中最最最常问的一些问题!小伙伴们可以对照着这篇文章学习或者准备面试。以下所有问题的答案都有相应的解析文档参考,网上也有一些类似的面试题总结的文章,但小编这份绝对是数一数二,剩下你了去网上一个个找的时间!这是我在工作、面试中学习并总结到的一些知识点,都是一些比较典型的、面试常被问到的问题。

2025-05-26 14:46:59 577

原创 公共字段自动填充的6种神技,开发效率翻倍!

在开发外卖系统订单模块时,我发现每个实体类都包含create_time、update_by等重复字段。手动维护这些字段不仅效率低下,还容易出错。本文将分享一套经过生产验证的自动化方案,涵盖MyBatis-Plus、AOP、JWT等六种核心策略,助你彻底摆脱公共字段维护的烦恼。痛点总结:代码重复率高(每个Service方法都要设置)维护成本高(字段变更需修改多处)容易遗漏(特别是更新操作)2.2 实体类注解配置三、进阶方案:AOP统一处理3.1 自定义注解3.2 切面实现

2025-05-26 14:45:54 294

原创 2025年精选大厂高频Java面试真题集锦(含答案)

面试是跳槽涨薪最直接有效的方式。掌握了这些知识点,面试时在候选人中又可以夺目不少,暴击9999点。机会都是留给有准备的人,只有充足的准备,才可能让自己可以在候选人中脱颖而出。

2025-05-25 14:33:32 866

原创 每秒 600 万订单: SpringBoot + Disruptor 实现特快高并发处理

Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于 Disruptor 开发的系统单线程能支撑每秒 600 万订单,2010 年在 QCon 演讲后,获得了业界关注。Disruptor是一个开源的Java框架,它被设计用于在生产者—消费者(producer-consumer problem,简称PCP)问题上获得尽量高的吞吐量(TPS)和尽量低的延迟。

2025-05-25 14:26:55 632

原创 Java面试全攻略:从JVM到Spring Boot,啃透这些offer拿到手软

1. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的;2. 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;2.和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;3.注意自己开源的Github项目,面试官可能会挖你的Github项目提问;

2025-05-23 13:45:14 670

原创 SpringBoot+责任链 实现接口动态编排!

事先定义好的执行顺序”,可以保存到数据库中项目启动的时候加载到内存,或者直接维护到Redis中。业务上下文,用于每个子类(每个功能点)之间的数据通信。其实要实现这个功能使用 LiteFlow 框架最合适,文档友好,接入简单,功能强大。我是因为公司内部对依赖包的引入有要求审核严格,所以自己实现了一个简单版本的。不同的客户对这个接口的要求也不同,有些功能不需要,有些需要添加特定功能。传入不同的index顺序,业务逻辑中执行的顺序也不同。,spring 管理的上下文,用于根据类名获取类实体。

2025-05-23 13:40:56 276

原创 2025年Java高频考点TOP100(持续更新中)

不受检查的异常不需要在方法或者是构造函数上声明,就算方法或者是构造函数的执行可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者是构造函数的外面。远程方法调用可以看做是激活远程正在运行的对象上的方法的步骤。Java提供了一种叫做对象序列化的机制,他把对象表示成一连串的字节,里面包含了对象的数据,对象的类型信息,对象内部的数据的类型信息等等。与此对应,LinkedList是以元素列表的形式存储它的数据,每一个元素都和它的前一个和后一个元素链接在一起,在这种情况下,查找某个元素的时间复杂度是O(n)。

2025-05-22 13:29:20 519

原创 开发微服务的9个最佳实践

微服务架构是一种演进的模式,从根本上改变了服务器端代码的开发和管理方式。这种架构模式涉及将应用程序设计和开发为松散耦合服务的集合,这些服务通过定义良好的轻量级 API 进行交互以满足业务需求。它旨在通过促进持续交付和开发来帮助软件开发公司加速开发过程,微服务架构模式从根本上改变了服务器端代码的开发和管理方式。如果我们谈论其基本特征,则特定的微服务本身充当应用程序,与其他微服务形成更大的应用程序,这使得:更轻松、更快速的开发可维护性可扩展性从本质上讲,这使您可以更有效地管理和维护应用程序。

2025-05-22 13:21:54 983

原创 熬了3个通宵整理的2025Java大厂面试题:美团字节腾讯真题+避坑指南

本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向。在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点。面试,是大家从学校走向社会的第一步。互联网公司的校园招聘,从形式上说,面试一般分为 2-3 轮技术面试 +1 轮 HR 面试。但是一些公司确实是没有 HR 面试的,直接就是三轮技术面。技术面试中,面试官一般会先就你所应聘的岗位进行相关知识的考察,也叫基础知识和业务逻辑面试。只要你回答的不是特别差,面试官通常会说:“咱们写个代码吧”,这个时候就开始了算法面试。

2025-05-21 14:24:32 714

原创 MapStruct 超神进阶用法,让你的代码效率提升十倍!

MapStruct 是一个 Java 编译时注解处理框架,用来自动化将一种 Java Bean 对象映射成另一种类型的对象。该框架的主要目标是使开发人员在尽可能少的代码和最低的运行时间成本下实现属性映射。MapStruct 通过在编译时生成代码来实现这点,这与大多数其他 Java Bean 映射框架在运行时通过反射进行映射形成了鲜明对比。简化了 Java Beans 之间转换的代码,自动生成使用简单的赋值语句完成的映射实现。

2025-05-21 14:19:12 313

原创 2025年Java高频考点TOP1000(持续更新中)

此外还有的特性,都依赖它,比如 Spring 核心的 Ioc 和 AOP,都用到了反射,而且 Java 自身的动态代理也是利用反射实现的。此外还有 Java 一些标准库也是非常常见,比如集合、I/O、并发,几乎在 Web 开发中无处不在,也是面试经常会被问到的,所以在面试 Java 后端岗位之前,不妨先打好这些核心的基础。Github 作为,一直以来都是程序员最喜欢逛逛、学习的地方,小编也不例外,最近看到一份,已经。

2025-05-20 14:33:22 773

原创 SpringBoot+责任链 实现接口动态编排!

事先定义好的执行顺序”,可以保存到数据库中项目启动的时候加载到内存,或者直接维护到Redis中。业务上下文,用于每个子类(每个功能点)之间的数据通信。其实要实现这个功能使用 LiteFlow 框架最合适,文档友好,接入简单,功能强大。我是因为公司内部对依赖包的引入有要求审核严格,所以自己实现了一个简单版本的。不同的客户对这个接口的要求也不同,有些功能不需要,有些需要添加特定功能。传入不同的index顺序,业务逻辑中执行的顺序也不同。,spring 管理的上下文,用于根据类名获取类实体。

2025-05-20 14:16:07 230

原创 2025新版Java面试实战指南:场景题+源码级解答

作为一个 Java 程序员,你平时总是陷在业务开发里,每天噼里啪啦忙敲着代码,上到系统开发,下到 Bug 修改,你感觉自己无所不能。然而偶尔的一次聚会,你听说和自己一起出道的同学早已经年薪 50 万,而自己却囊中羞涩。于是你也想看看新机会,找个新平台,好好发展。但是面试的时候,当那个笑眯眯的面试官问出那些你再熟悉不过的 Java 问题时,你只是感觉似曾相识,却怎么也回答不到点上。比如 HashMap 的工作原理,再或者 volatile 的使用场景。

2025-05-19 16:23:47 699

原创 领导:谁再用 Redis 实现过期订单关闭,立马滚蛋!

在电商、支付等领域,往往会有这样的场景,用户下单后放弃支付了,那这笔订单会在指定的时间段后进行关闭操作,细心的你一定发现了像某宝、某东都有这样的逻辑,而且时间很准确,误差在1s内;那他们是怎么实现的呢?一般实现的方法有几种:使用 rocketmq、rabbitmq、pulsar 等消息队列的延时投递功能使用 redisson 提供的 DelayedQueue有一些方案虽然广为流传但存在着致命缺陷,不要用来实现延时任务使用 Redis 的过期监听使用 rabbitmq 的死信队列。

2025-05-19 15:48:15 306

原创 2025最新Java高频面试题(1000 道附答案解析)

以上便是我的学习笔记和方式,让我成功的在金三银四拿到 offer,相信爱学习的你只要静下心来学习,更多的大厂 offer 会向你招手。学无止境,学习是一种态度,无论你是小白菜鸟,还是技术大牛,日常都不能够落下学习这件事情,一旦落后下来,就容易遭到淘汰。

2025-05-18 13:56:47 880

原创 深入解析 Guava Cache

通过解析 Guava Cache 的实现原理,我们发现 Guava LocalCache 与 ConcurrentHashMap 有以下不同:ConcurrentHashMap ”分段控制并发“是隐式的(实现中没有Segment对象),而 LocalCache 是显式的。在 JDK 1.8 之后,ConcurrentHashMap 采用实现:当 put 的元素在哈希桶数组中不存在时,直接 CAS 进行写操作;在发生哈希冲突的情况下使用 synchronized 锁定头节点。

2025-05-18 13:54:33 942

原创 2025 最新java面试八股文合集(1000 道附答案解析)

2025 年金三银四已经过去了,总结了上半年各类 Java 面试题,初中级和中高级都有,包括 Java 基础,JVM 知识面试题库,开源框架面试题库,操作系统面试题库,多线程面试题库,Tcp 面试题库,架构设计与分布式面试题库,算法面试题库,数据库面试题库,消息队列面试题库,缓存面试题库;

2025-05-16 14:54:55 674

原创 面试官:MySQL 主从同步方案的优缺点是什么?

Replication 是目前 MySQL 使用最多的灾备方案,主要有 3 个作用:读写分离,写主库读从库。这样大大降低主库的负载,即使主库出现类似锁表之类的情况,也不影响应用读取数据。实现灾备,当主库发生故障时,可以方便地把从库切换成主库,实现高可用(HA)。水平扩展,当应用访问量导致数据库 I/O 高时,可以通过水平扩展的方式将降低单机负载,降低磁盘 I/O。下面是一个 MySQL Replication 的案例。

2025-05-16 14:43:02 665

原创 java八股面试文(带答案,万字总结,精心打磨,建议收藏)堪称2025最强

2025秋招即将来临,很多同学会问Java面试八股文有必要背吗?很有必要。你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂。国内的互联网面试,恐怕是现存的、最接近科举考试的制度。而且,我国的八股文确实是独树一帜。以美国为例,北美工程师面试比较重视算法(Coding),近几年也会加入Design轮(系统设计和面向对象设计OOD)和BQ轮(Behavioral question,行为面试问题)。那么为什么国内面试不采取这样的考察方式呢?

2025-05-15 14:21:47 358

原创 面试被吊打:100G内存下,MySQL查询200G大表会OOM么?

状态3表示,这次访问的数据页不存在于链表,所以需要在BP中新申请一个数据页Px,加到链表头。可以看到,这个策略最大的收益,就是在扫描这个大表的过程中,虽然也用到了BP,但对young区完全没有影响,从而保证了Buffer Pool响应正常业务的查询命中率。一个数据页里面有多条记录,这个数据页会被多次访问到,但由于是顺序扫描,这个数据页第一次被访问和最后一次被访问的时间间隔不会超过1秒,因此还是会被保留在old区域。那么,按此算法扫描,就会把当前BP里的数据全部淘汰,存入扫描过程中访问到的数据页的内容。

2025-05-15 14:00:08 316

原创 Java面试题及答案整理(2025年5月最新版,持续更新)

Atomic包中的类基本的特性就是在多线程环境下,当有多个线程同时对单个(包括基本类型及引用类型)变量进行操作时,具有排他性,即当多个线程同时对该变量的值进行更新时,仅有一个线程能成功,而未成功的线程可以向自旋锁一样,继续尝试,一直等到执行成功。wait():wait()是Object类的方法,当一个线程执行到wait方法时,它就进入到一个和该对象相关的等待池,同时释放对象的机锁,使得其他线程能够访问,可以通过notify,notifyAll方法来唤醒等待的线程。不一样,因为内存的分配方式不一样。

2025-05-14 14:20:09 766

原创 别再用雪花算法生成ID了!试试这个吧

对比来看,我们之前申请ID都是一次自增1,而这种预申请一批的方式,是一次申请N个ID,自增N,可以减少请求量和并发。如果申请了一段区间的id,但是没有用完,服务器停服再启动后会再申请一段新的,原来未使用的ID就被浪费了。然而这种方式部署限制和消耗都太大,而且我们的登录服是多开的,即使在单登录服内控制串行,多个进程也不好控制,因此这个初始的方案只能被pass。这种方式的特点就是,登录服服务过程中,对应数据库里的 left 为 0,如果停了,数据库里 left 为号段内剩余的可用数量。

2025-05-14 13:55:16 745

空空如也

空空如也

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

TA关注的人

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