自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

print_helloword的博客

java相关知识

  • 博客(86)
  • 收藏
  • 关注

原创 11.反射机制与性能优化

反射允许你在运行期Class<?> clazz动态代理底层依赖反射:Proxy.newProxyInstance“反射让程序在运行期具备操作类型的能力。

2025-11-20 20:45:00 21

原创 10.泛型底层原理:类型擦除与边界限定

要从中取数据(Producer),用 extends要往里放数据(Consumer),用 super背这个就够了。

2025-11-19 18:42:45 494

原创 9.fail-fast 机制与 ConcurrentModificationException 深度剖析

fail-fast(快速失败)是Java 集合框架的安全机制当集合在遍历过程中被结构性修改(增删元素)时,会立即抛出异常,防止数据不一致。“遍历中乱改,立刻报错。在每次next()✅ 当遍历时检测到集合被修改(modCount变化),就会触发 fail-fast。

2025-11-19 18:39:49 549

原创 8.Collections.synchronizedMap 与 ConcurrentMap 的区别与适用场景

类型来自包出现版本线程安全机制java.utilJDK 1.2外层整体加锁(synchronized)JDK 1.5分桶锁 + CAS + 局部 synchronized“一个外包锁,一个分区锁。

2025-11-14 20:15:00 655

原创 7.ConcurrentHashMap 全流程解析

🚀 高频指数:★★★★★🎯 你将收获:ConcurrentHashMap 底层结构、JDK8 无 Segment 化机制、CAS + synchronized 并发原理、扩容机制与项目选型建议。

2025-11-12 20:45:00 936

原创 6.HashMap 从 JDK7 到 JDK21 的演进

🚀 高频指数:★★★★★🎯 你将收获:底层结构演变、扩容与树化机制、hash冲突解决、并发风险与源码逻辑图。

2025-11-11 20:30:00 968

原创 5.LinkedList vs ArrayList:谁更快?到底该怎么选?

🚀 高频指数:★★★★★🎯 你将收获:底层结构对比、时间复杂度分析、源码解读、项目选型模板。

2025-11-10 20:30:00 805

原创 4.ArrayList 扩容机制与 Fail-Fast 原理

/ 存储元素 private int size;// 实际元素个数 }// 存储元素// 实际元素个数底层是一个Object[]数组,随着元素增多自动扩容。

2025-11-09 19:00:00 756

原创 3.String、StringBuilder、StringBuffer:性能差别多大?

🚀 高频指数:★★★★★🎯 你将收获:字符串常量池机制、不可变性的原理、三者底层结构与性能对比、项目实战场景。

2025-11-08 19:00:00 738

原创 Java面试全生态图谱(2025体系版)

🚀 从基础到源码,从八股到实战。系统讲解 Java 面试核心知识点,帮你从“背八股”进化为“讲原理”的开发者。

2025-11-07 21:49:04 365

原创 2.equals 与 hashCode:为什么必须同时重写?

🚀 高频指数:★★★★★🎯 你将收获:对象比较原理、哈希结构机制、重写陷阱、集合类行为差异、项目答题模板。

2025-11-07 21:29:18 448

原创 1.Java内存模型基础:栈、堆、方法区你真的懂了吗?

🚀 高频指数:★★★★★🎯 你将收获:Java运行时内存结构、对象与引用的关系、JMM与线程隔离原理、面试官追问模板。

2025-11-07 21:22:31 939

原创 Java 25 新特性全解析:从语法到性能,一文带你掌握最新 LTS!

🚀 性能提升显著:ZGC、Vector API、COH🧩 语言特性更强:Scoped Values、模式匹配🧠 并发更优雅:结构化并发 + 虚拟线程完美结合🔐 安全更强:PEM、KDF、TLS 优化☕ 长期支持 LTS:主流框架同步适配如果你是 Java 后端开发者,JDK 25 不仅仅是版本号的跃升,它代表的是现代 Java 编程范式的真正成熟。你正在使用的还是 JDK 8、11 吗?升级到Java 25,才能真正体验到语言的现代化与运行时的极致性能。Java8 新特性。

2025-10-31 19:14:01 1360

原创 Spring Cloud 多租户实现(MySQL + MyBatis + MyBatis-Plus 实战)

技术栈:Spring Cloud、Spring Boot 3.x、MySQL 8、MyBatis、MyBatis-Plus、Spring Cloud Gateway、OpenFeign目标:在单套微服务中实现多租户数据/权限隔离,可从“字段级共享库”平滑演进到“库级独库”。

2025-10-29 20:20:47 747

原创 RocketMQ 死信队列(DLQ)实战:原理 + 开发 + 运维 + 架构应用指南

面试题标准回答框架什么是死信队列?消费失败超过最大重试次数的消息存储队列。死信队列的 Topic 名称?。如何消费死信消息?使用新的 Consumer Group 监听 DLQ Topic。死信队列的应用场景有哪些?异常数据隔离,人工补偿,避免阻塞正常消费。死信消息能否重新消费?可以,消费后补偿处理,重新发送到原 Topic。在大型互联网公司中,死信队列(DLQ)不仅仅是异常消息隔离的工具,而是整个微服务稳定性保障体系的重要一环。下面来看几个真实的大厂案例。实践建议说明。

2025-05-30 11:18:11 1172

原创 RocketMQ 核心特性实战详解

功能特性项目应用场景普通消息用户注册、订单通知、积分发放定时/延时消息超时关单、定时推送顺序消息订单流转、物流更新事务消息下单扣库存一致性控制消息发送重试保证网络异常时消息可靠送达消费者分类多业务系统独立消费消息过滤精准推送特定类型消息消费者负载均衡消费者水平扩展消费进度管理消费状态持久化,防止重复丢失消息重试消费异常自动重试,保护业务处理存储清理机制硬盘保护,防止大数据量堆积导致系统崩溃。

2025-05-30 11:14:13 871

原创 Spring Cloud Gateway 的执行链路详解

Component@Order(-1) // 顺序越小越先执行@Overrideif (!// 拦截请求,返回 401// 放行功能推荐实现方式说明请求日志记录获取 request 信息,记录 URI/参数/IP参数校验(如签名)拦截非法请求JWT 鉴权可选使用 Reactor 模式解析 token限流(IP/QPS)Redis + 自定义 Filter或使用 Spring 官方限流 Filter熔断降级可集成入 Gateway Filter黑名单拦截。

2025-04-17 00:00:17 705

原创 Spring Boot一次接口请求涉及的完整执行链路

执行阶段说明Listener请求刚进来,监听请求/会话/上下文FilterServlet 层面统一过滤Spring MVC 核心分发器控制器方法执行前,适合权限校验将参数注入到 Controller 方法中AOP Around控制器方法执行前后,可用于埋点日志Controller 方法正式执行业务代码方法执行后,视图渲染前全流程结束后调用,包括异常情况统一异常处理@Aspect@Component// 打印请求信息。

2025-04-16 23:55:57 1326

原创 Shell 脚本开发从入门到实战

Shell 是一个命令解释器,是你在 Linux 里敲命令的地方。你平时用的命令如cdlsecho,其实都由 Shell 来解析执行。最常见的 Shell 是Bash,绝大多数 Linux 系统默认都用它。Shell 脚本就是一系列 Shell 命令的集合,保存成一个.sh文件。本质上:你平时一条一条敲的命令,写成脚本就能一次性自动运行。示例场景:每天定时备份数据库启动一堆服务自动上传文件、发通知等name="张三"age=25function判断磁盘空间是否足够。

2025-04-10 20:56:01 931

原创 Spring AOP + RocketMQ 实现企业级操作日志异步采集(实战全流程)

✅ 完整的 AOP + MQ 日志解耦链路✅ 支持幂等、异常重试、死信兜底✅ 易扩展为 ES、Kafka、ELK 分析方案加入日志链路追踪 TraceId使用消息压缩、限流机制引入 Prometheus + Grafana 监控消费速率。

2025-03-23 16:13:52 515

原创 主流的Java生态下权限管理框架

此方案为当前互联网Java开发生态的。(整体权限管理框架) +(细粒度数据权限控制)

2025-03-19 23:41:26 1772

原创 CompletableFuture详解

是Java 8引入的一个类,用于异步编程,它提供了强大的功能来帮助开发者实现非阻塞式的编程,支持函数式风格,并能有效避免回调地狱(Callback Hell)。异步非阻塞:任务可在独立线程中异步执行,不影响主线程。链式调用:支持函数式编程,方便链式处理。组合与聚合:能简单地将多个异步任务结果组合。异常处理:可对异步任务中的异常灵活处理。是现代Java编程不可缺少的利器,熟练使用它能极大提升代码的并发性能、响应效率和优雅性。尤其在高并发、微服务、异步调用等场景中,熟悉并掌握至关重要。

2025-03-19 20:44:22 492

原创 Spring 声明式事务与传播行为详解:基于高并发业务示例

事务是一系列对数据库操作的逻辑单元,这些操作要么全部执行成功,要么全部回滚,保证数据的原子性、一致性、隔离性和持久性(ACID)。在高并发场景下,事务能防止多个并发操作对同一数据造成冲突或不一致,确保业务数据正确。} }@Entity@Id(用于 MANDATORY 示例)return id;} }

2025-03-11 22:07:30 1135

原创 Spring面试问答

Spring是一个开源的轻量级Java开发框架,旨在简化企业级应用的开发。它提供了全面的基础设施支持,包括依赖注入(IOC)、面向切面编程(AOP)、事务管理、Spring MVC、Spring JDBC等模块,帮助开发者构建松耦合、易于测试和维护的应用程序。回答:IOC(Inversion of Control,控制反转):一种设计原则,旨在将对象的创建和管理职责从应用程序代码中转移到框架或容器中。通过IOC,应用程序组件之间的依赖关系由容器负责管理,而不是组件自身负责。

2025-03-07 21:21:30 178

原创 Spring Boot面试问答

Spring Boot是基于Spring框架的一个开源框架,旨在简化新Spring应用的初始化和开发过程。自动配置:根据项目依赖自动配置Spring应用,减少繁琐的XML或Java配置。起步依赖(Starters):通过一组预定义的依赖管理,简化项目的依赖配置。内嵌服务器:内置了Tomcat、Jetty等服务器,简化部署过程。生产就绪特性:集成了监控、健康检查等生产环境所需的功能(如Spring Boot Actuator)。命令行界面(CLI):支持通过命令行快速创建和测试Spring应用。

2025-03-07 21:20:39 1392

原创 Redis7面试问答

Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,支持多种类型的数据结构,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)、位图(Bitmaps)、超日志(HyperLogLogs)和地理空间索引(Geospatial Indexes)。缓存:由于其高性能,Redis 常用于缓存热点数据,减轻数据库负载。消息队列:利用列表和发布/订阅(Pub/Sub)功能实现消息队列。

2025-03-07 21:19:05 152

原创 Spring Boot集成RocketMQ:真实项目应用场景

以下是RocketMQ在Spring Boot中的典型应用场景,涵盖面试常见问题。使用Spring Boot创建一个项目,添加RocketMQ依赖。,消费者会打印消息。这是最基础的用法,面试中常被问到如何快速集成。:用户支付后,确保订单状态更新和消息发送一致。:ConsumerGroup内多实例负载均衡。:用户下单后,异步通知库存扣减和物流系统。:收集应用日志,确保按时间顺序处理。:订单未支付30分钟后发送提醒。:如何确保消息不丢失?:事务消息的实现原理?:延迟消息的实现机制?:如何保证消息顺序?

2025-02-25 20:28:56 1108

原创 Java常用设计模式-代码实例详解

双重检查锁(Double-Checked Locking)确保线程安全,适用于延迟加载。确保一个类只有一个实例,并提供全局访问点。定义一个创建对象的接口,由子类决定实例化哪个类,推迟实例化到子类。:在一个电商系统中,需要一个全局日志管理器记录操作日志。:饿汉式在类加载时初始化,简单但不支持延迟加载。提供一种顺序访问集合元素的方法,隐藏底层实现。定义一对多依赖,主体状态变化时通知观察者。为对象提供代理,控制访问或增强功能。动态为对象添加职责,不修改原有类。:支持文件日志和数据库日志。

2025-02-21 21:38:30 802

原创 Linux系统启动Jar包详解—Java8

在开发和测试环境中,如果资源充足,可以不限制 JVM 大小,以便观察应用程序的实际内存使用需求。但在生产环境中,

2025-02-20 19:29:49 874

原创 Mysql面试问答

MySQL是一种开源的关系型数据库管理系统(RDBMS),基于结构化查询语言(SQL)进行数据管理和操作。MySQL由瑞典的MySQL AB公司开发,现属于Oracle公司。主要用途包括:Web应用程序数据库:如WordPress、Drupal、Joomla等内容管理系统。数据仓库:用于存储和分析大量数据。电子商务平台:如Magento、Shopify等。日志管理:存储和查询系统日志、应用日志等。企业应用:客户关系管理(CRM)、企业资源规划(ERP)等系统。

2025-02-17 14:30:00 67

原创 JVM面试问答

回答:回答:Java源代码的执行过程包括以下几个步骤:回答:JVM的主要组成部分包括:回答:JVM的内存结构主要包括以下几个区域:回答:回答:**双亲委派模型(Parent Delegation Model)**是Java类加载机制的一种策略,确保Java核心类库的安全性和稳定性。工作机制:请求加载类:递归委派:父类加载器尝试加载:优点:回答:在自定义类加载器时,需要注意以下几个问题:回答:在类加载过程中,Java虚拟机会按照以下步骤对类进行处理:回答:JVM的内存区域主要包括以下几个部分:回答:**新生代

2025-02-17 08:30:00 62

原创 Mybatisl面试问答

MyBatis 是一个优秀的持久层框架,通过简单的 XML 或注解来配置和映射原生信息,将接口方法调用转化为数据库操作。与 Hibernate 等ORM框架不同,MyBatis 不进行对象和数据库表的完全映射,而是更加灵活地编写SQL语句,适用于复杂查询和高性能需求的场景。Hibernate 采用全自动的对象关系映射,开发者无需编写SQL,但在复杂查询时可能不如MyBatis灵活。回答::是 MyBatis 的核心对象,用于创建SqlSession。通常在应用启动时创建一次,供整个应用共享。

2025-02-11 20:19:05 123

原创 JUC面试问答

回答:区别:回答:Java中创建和启动线程有两种主要方式:继承类:实现接口:推荐:实现接口更灵活,因为Java不支持多继承,可以同时继承其他类。回答:作用:工作原理:示例:注意:回答:可重入锁(Reentrant Lock):与的区别:功能丰富:灵活性:性能:解锁机制:示例:注意:使用时必须确保在所有可能的执行路径上都释放锁,否则会导致死锁。回答:线程的生命周期主要包括以下几个阶段:状态转换图:二、线程池(ThreadPool)6. 线程池的作用是什么?为什么要使用线程池?回

2025-02-08 13:00:00 70

原创 Java设计模式面试问答

回答:设计模式 是在软件设计过程中总结的、被反复验证的解决特定问题的通用模板。它们提供了一种标准的方式来组织和设计代码,促进代码的可重用性、可维护性和可扩展性。主要分类:总结:设计模式通过提供可复用的解决方案,帮助开发者应对常见的设计问题,提升代码质量和开发效率。理解并掌握这些模式,对于编写高质量的软件系统至关重要。回答:单例模式(Singleton Pattern) 是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点。实现方式:饿汉式(Eager Initialization):在类加载时

2025-02-08 08:30:00 91

原创 Java集合面试问答

回答:Java集合框架是一组用于存储和操作数据的接口、类和算法的统一架构。它提供了多种集合类型,如列表(List)、集合(Set)、映射(Map)等,帮助开发者高效地管理和操作对象集合。集合框架的核心接口包括、、、等,而常用的实现类有、、、、、等。集合框架还提供了算法支持,如排序、搜索、同步等,极大地简化了数据处理的复杂性。回答:Java集合框架的主要接口包括::集合的根接口,定义了基本的集合操作。:有序集合,允许重复元素。:不允许重复元素的集合。:用于按特定顺序处理元素的集合。:不继承自Collectio

2025-02-07 21:59:50 187

原创 国内主流的Spring微服务方案指南

客户端层:如前端应用或移动端,通过 API 网关与后端服务交互。API 网关:统一入口,负责路由、负载均衡、安全、限流等功能。微服务层:由多个独立的微服务组成,每个服务负责特定的业务功能。基础设施层:包括服务注册与发现、配置管理、消息中间件、数据库、缓存、监控与追踪等。创建import comUser;

2025-01-13 21:14:47 1050

原创 Java工程师必学的Linux知识点

Linux发行版(Distributions)是基于Linux内核构建的操作系统,通常包含内核、系统工具、应用软件和包管理器。常见的发行版包括:Linux的文件系统是一个单一的层次结构,从根目录()开始,包含多个子目录,每个目录有特定的用途。Linux中的每个文件和目录都有权限设置,分为所有者(User)、所属组(Group)和其他用户(Others),权限类型包括:使用命令查看文件权限。例如:解释:使用命令修改权限,例如:允许用户以超级用户或其他用户的身份运行命令,而无需切换用户。配置sudo权限:编辑

2025-01-09 21:19:32 1198

原创 Linux系统启动jar包--Java8

在开发和测试环境中,如果资源充足,可以不限制 JVM 大小,以便观察应用程序的实际内存使用需求。但在生产环境中,

2025-01-09 20:23:39 1044

原创 Spring Boot自定义Starter

教程,分步骤讲解相关内容,包括。

2025-01-03 20:16:59 1029

原创 Spring Boot对访问密钥加解密——HMAC-SHA256

客户端准备;拼出(通常包含 method、path、timestamp、bodyHash 等);在 HTTP 请求头里带上signaturetimestamp;用 JSON 作为请求体时,别忘了和服务端在bodyHash算法上保持一致。服务端通过找到对应的;按同样规则构造;计算 HMAC-SHA256 并和客户端的signature对比;一致则通过,不一致则 401/403;可加时间戳nonce限流等加强安全性。优点不需要公钥/私钥,也不需要。

2024-12-25 20:45:49 3745

JUC面试知识点手册快速版

第一章:Java并发简介 1.1 什么是并发编程 1.2 Java中的并发编程模型 1.3 线程的生命周期 第二章:基础同步工具 2.1 synchronized关键字 2.2 volatile关键字 第三章:锁机制 3.1 ReentrantLock 3.2 ReadWriteLock 3.3 StampedLock 第四章:同步辅助工具 4.1 CountDownLatch 4.2 CyclicBarrier 4.3 Semaphore 4.4 Exchanger 第五章:原子类和无锁编程 5.1 AtomicInteger与AtomicLong 5.2 AtomicReference 第六章:线程池及其应用 6.1 ThreadPoolExecutor 6.2 ScheduledThreadPoolExecutor 第七章:Fork/Join框架 7.1 ForkJoinPool 等等

2024-09-04

空空如也

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

TA关注的人

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