自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 财务核算系统设计与实现

财务核算系统是企业信息化建设的核心系统之一,承担着记录、分类、汇总企业经济业务的重要职责。一个完善的财务核算系统需要满足会计准则要求,支持多维度核算,保证数据准确性和一致性。本文将从系统架构、核心模块、代码实现等方面,详细讲解如何设计一个企业级财务核算系统。

2025-12-04 14:08:06 176

原创 Java 内部类指南

class Outer { public void method() { // 局部内部类(只能在方法内使用) class LocalInner { public void show() { System.out.println("我是局部内部类");} }成员内部类像成员,静态内部类像工具,局部内部类在方法里,匿名内部类一次用。大部分情况用静态内部类最安全!

2025-12-04 14:07:15 251

原创 200道中高级Java面试题整理

本文整理了Java核心面试知识点,涵盖基础语法、JVM、框架等多个方面。主要内容包括:Java基础数据类型、字符串处理、集合框架、多线程等核心概念;JVM内存模型、垃圾回收机制及调优策略;MyBatis与Hibernate对比、动态SQL实现原理;Redis数据类型、集群方案及适用场景;Elasticsearch与Solr的对比分析等。文章还涉及Tomcat优化配置、Shiro认证授权流程等实用技术点,并提供了部分面试题的参考答案。这些内容可帮助开发者系统复习Java技术栈,应对各类技术面试场景。

2025-12-04 14:03:28 655

原创 责任链模式详解

在实际的软件开发中,我们经常会遇到这样的场景:一个请求需要经过多个处理者的处理,但我们不希望请求的发送者与接收者耦合在一起。责任链模式(Chain of Responsibility Pattern)正是为了解决这类问题而诞生的。本文将深入讲解责任链模式的原理、实现方式以及在生产环境中的实际应用。责任链模式是一种行为型设计模式,它允许你将请求沿着处理者链进行传递,直到其中一个处理者对其进行处理。该模式将请求的发送者和接收者解耦,使多个对象都有机会处理这个请求。

2025-12-03 15:02:39 693

原创 ELK日志分析平台搭建实战:从日志混乱到一目了然

日志格式要规范(JSON最好)字段要统一(各应用约定好)索引要管理(不然磁盘爆炸)网络要打通(异地服务器用组网)建议先从单个应用开始,跑顺了再推广到其他应用。

2025-12-03 15:02:02 514

原创 Java高级工程师20道面试题、答案及案例

本文整理了Java高级工程师面试常见问题及解答,涵盖多线程、内存管理、集合框架等核心知识点。主要内容包括:1)线程安全单例模式的双重检查锁定实现;2)JVM内存模型及堆栈区别;3)弱引用原理及应用场景;4)ConcurrentHashMap的并发优化;5)volatile关键字作用;6)ThreadLocal原理及内存泄漏风险;7)生产者消费者模式实现;8)类加载机制与双亲委派模型;9)锁优化策略;10)死锁预防方法;11)反射机制应用;12)内存泄漏案例;13)JVM调优步骤;14)序列化安全风险;15)

2025-12-03 15:01:16 911

原创 Day21 | 枚举(Enum)与常见应用场景

定义一个枚举其实很简单:DayOfWeek就是一个枚举类型,MONDAY、TUESDAY等是这个类型的实例(就是DayOfWeek类型的对象)。今天就简单的介绍了一下枚举类。列举了一些简单的用法和实际开发场景中的用途。案例中的Java集合框架将在接下来的文章中逐一进行介绍。

2025-12-02 15:08:55 564

原创 发布对象和对象逃逸

二、volatile 关键字发布(内存可见性保证) 工作机制: 写 volatile 变量会触发 StoreStore 内存屏障,读 volatile 变量会触发 LoadLoad 屏障,确保写操作对后续读操作可见。三、final 字段发布(JMM 特殊规则) JMM 规范: 通过 final 字段发布的对象,构造函数完成时所有 final 字段的写入对其他线程可见(Java 5+ 增强语义)。:是 “对象超出预期作用域(尤其是未完全初始化时被访问)” 的问题。:是 “让对象被外部访问” 的行为。

2025-12-02 15:08:36 406

原创 Java高级程序员(5年左右)面试的题目集

Java核心概念摘要: 垃圾回收机制:JVM自动回收堆内存中不再使用的对象,采用标记-清除等算法,避免内存泄漏。 异常处理:通过try-catch-finally结构处理运行时异常,增强程序健壮性。 接口与抽象类: 相同点:不能实例化,包含抽象方法 区别:接口支持多继承,抽象类可包含实现方法 泛型:JDK5引入的类型参数机制,提高类型安全性,支持编译时类型检查。 注解:元数据机制,用于编译检查、框架配置和代码生成(如@Override、@Autowired)。 内部类:包括成员/局部/静态/匿名内部类,用于

2025-12-02 15:06:37 1326

原创 Power BI按列排序问题

(比如之前我把它 “Sort by Column” 过 → 现在这个关系残留在模型里。Power BI 会把 “Sort by Column” 的映射持久保存,如果旧的排序列已经不存在或不再唯一,就会阻止我们继续使用它。✔ “新建列 A = [前台日期]” 可以正常排序。,即使 M 语言重新生成了列,也会报冲突。因为删掉重建字段后,所有旧依赖都会被清除。新列可以正常排序 → 你已经验证过。✔ 原字段 “前台日期” 不行。这是刚才测试成功的方式,所以是。我们需要手动清除旧的排序。

2025-12-01 15:05:35 340

原创 【数据结构入门手札】数据结构基础:从数据到抽象数据类型

数据类型是按照值的不同进行划分的。在高级语言中,每个变量、常量和表达式都有各自的取值范围。类型就是用来说明变量或表达式的取值范围和所能进行的操作。原子类型原子类型是不可以在分解的基本类型,包括整型、实型、字符型等。结构类型结构类型是由若干个类型组合而成,是可以再分解的。例如,整型数组属于结构类型,它由若干个整型数据组合而成。

2025-12-01 15:05:04 523

原创 Java高级程序员(5年左右)面试的题目集

本文总结了Java开发中的重要知识点,主要包括三部分内容:1)常用设计模式(单例、代理、适配器等11种模式);2)Java基础知识(基本数据类型、集合框架、多线程、JVM等);3)其他技术(算法、RPC、消息队列、系统架构等)。文章详细介绍了各种设计模式的实现方式,Java基础数据类型的内存占用,集合框架的线程安全实现,以及JVM内存管理和垃圾回收机制。同时涵盖了系统设计、性能优化、故障排查等实战经验,包括微服务架构、缓存设计、负载均衡等解决方案。这些内容涵盖了Java开发工程师需要掌握的核心技术栈,对面试

2025-12-01 15:03:08 1052

原创 优惠系统演进:从“实时结算“到“所见即所得“,前端传参真的鸡肋吗?

优惠系统的演进是一个典型的从功能到体验初期:优先验证业务模式,接受体验缺陷成熟期:优化用户体验,建立品牌信任这种演进路径在开发中都很常见。理解业务阶段- 明确当前业务处于什么阶段,什么最重要预判演进趋势- 提前为可能的技术升级预留空间平衡成本收益- 在技术投入和业务收益之间找到平衡点没有绝对的技术最优解,只有最适合当前业务阶段的方案。尤其是小团队一定要平衡技术和现实的关系。

2025-11-29 14:10:22 285

原创 【鸿蒙开发实战篇】如何基于一多能力实现响应式布局

在鸿蒙中,它通常与断点结合使用,通过监听窗口尺寸变化,触发布局逻辑的更新。通过上述方法,开发者可以高效实现一次开发、多端适配的目标,让应用在不同设备上都能呈现出优雅的界面效果。断点是响应式布局的基础,通过将窗口宽度划分为不同的区间(如XS、SM、MD、LG等),开发者可以为每个区间定义特定的布局规则。首先,需要根据目标设备(手机、平板、大屏)的窗口宽度范围,配置断点规则。假设需要实现一个卡片列表,在手机端(XS)显示为单列,在平板端(SM)显示为双列,在大屏设备(MD及以上)显示为三列。

2025-11-29 14:09:43 675

原创 Linux命令进阶

例如说明:管道就是将一个命令的输出当作另一个命令的输入,通过|连接多个命令(理解:后一个命令的操作,是在前一个命令的基础上进行的)

2025-11-29 14:08:34 816

原创 最新高级java面试题,包含答案

本文摘要: Java核心概念解析包含多个重要知识点:1) 垃圾回收机制自动管理内存,通过标记-清除等算法回收无用对象;2) final用于不可变性,finally确保代码执行,finalize已弃用;3) 接口定义行为规范,抽象类提供部分实现模板;4) 异常处理采用try-catch-finally结构;5) 泛型通过类型参数提高类型安全;6) 注解提供元数据标记;7) 内部类实现更好的封装;8) 序列化通过Serializable接口实现对象持久化;9) String不可变性确保安全性和性能;10) I/

2025-11-29 14:07:19 975

原创 Java基础知识面试题(2026年最新版)

本文整理了Java全栈开发的核心面试知识点,涵盖Java基础、JVM、Tomcat、MyBatis、Spring、Redis、MongoDB、MQ、Shiro和搜索引擎等10大技术领域。 Java基础部分包含数据类型、String类、集合框架、多线程等核心概念;JVM部分详解内存模型、垃圾回收算法和调优策略;中间件章节涵盖Tomcat优化、MyBatis原理和Redis应用场景;框架章节解析Spring IOC/AOP和Shiro安全机制;最后介绍了搜索引擎Solr和Elasticsearch的对比及优化方

2025-11-28 14:40:03 117

原创 Java基础知识面试题(2026年最新版,持续更新...)整理

默认方法抽象类可以有默认的方法实现;而接口类在JDK1.8之前版本,不存在方法的实现。实现方式抽象类子类使用extends关键字来继承抽象类,如果子类不是抽象类,子类需要提供抽象类中所声明方法的实现;而接口类子类使用implements来实现接口,需要提供接口中所有声明的实现。构造器抽象类中可以有构造器;而接口中不能有构造器。和正常类区别抽象类不能被实例化;而接口是完全不同的类型。访问修饰符抽象类中抽象方法可以有public、protected、default等修饰;

2025-11-28 14:29:55 282

原创 剑指offer-42、和为S的两个数字

由于数组 nums[] 是有序的,也就是第⼀个数字是最⼩的,第⼆个数字是最⼤的,那么我们使⽤⼀个指针 i 指向数组第⼀个元素,⼀个指针 j 指向数组最后⼀个元素。输⼊⼀个递增排序的数组和⼀个数字 S ,在数组中查找两个数,使得他们的和正好是 S ,如果有多对数字的和等于 S ,输出两个数的乘积最⼩的。如果 nums[i] + nums[j] < sum ,则说明和太⼩了,⽐ sum 还要⼩,则左边的指针i需要左移⼀步,即是 i++。输⼊:[1,2,4,7,11,15],15 返回值:[4,11]

2025-11-26 14:13:47 418

原创 【RuoYi-Eggjs】:把 MyBatis 带到 Node.js

希望这个插件能帮你把 Node.js 的数据层代码打理得井井有条!如果觉得好用,别忘了去 GitHub 上点个 Star 哦。写 Node.js 后端时,你是不是也经常对着代码里那一坨坨拼凑的 SQL 字符串发愁?: Service 层的职责变得非常纯粹——准备参数,调用 Mapper,获取结果。就能完美解决你的痛点,把这种优雅的开发体验带到 Egg.js 项目中。先装包,然后在 Egg.js 里把插件开起来。就是这么简单,接下来看它在实战中有多好用。标签,不用再担心逗号拼错的问题。假设我们要查用户,在。

2025-11-26 14:13:05 422

原创 不容错过的Java高级面试题

本文整理了Java面试中常见的设计模式、Java基础、主流技术和数据库相关问题。设计模式部分重点介绍了策略、单例、代理等模式的实现和应用场景;Java基础涵盖线程池、并发包、集合源码和内存模型等核心知识点;主流技术包括Redis、Zookeeper、消息队列和微服务等;数据库部分解析了MySQL索引、事务隔离级别和SQL优化等内容。文章还提供了面试回答思路和解决方案,帮助求职者系统准备Java技术面试。

2025-11-26 14:10:47 1339

原创 Java 中的结构化并发模式

无论是免费或者付费的课程,本质都是给我们学习指引一个方向,它们之间的主要区别在于付费课程的视频更系统、资料更完整、会提供必要的答疑,这样,我们不至于被一些很简单的问题浪费大量的时间。年龄20-45岁之间,学历大专以上,计算机或自动化相关专业,会更符合企业的招聘要求。关于学习路线,我专门设计了一套零基础快速上手的课程,课程目录就是学习路线。不要去找免费的,因为免费的是最贵的。免费的视频,反而会浪费更多的时间。因为我自己也是零基础学出来的。,我建议找付费的课程去学。教育的本质是自我教育。学习的本质是自我学习。

2025-11-25 19:59:44 416

原创 技术复盘:Solon-MCP 日志统一配置背后的技术架构分析

这些桥接器通过同名包替换或拦截的方式,把其他日志框架的 API 调用,“骗”过来转发给 SLF4J。这就实现了“虽然你是不同门派,但最终都走同一个出口”。

2025-11-25 19:59:08 373

原创 2026年java面试题大全(程序员就业)

本文整理了Java核心面试知识点,包含21个常见问题解析。主要内容包括:JDK与JRE的区别、==与equals的差异、final关键字作用、Math.round()规则、String类型特性、字符串反转方法、IO流分类、反射机制、序列化应用场景、克隆实现方式等。同时对比了抽象类与接口的特性差异,解释了BIO/NIO/AIO三种IO模型,并列举了常见异常类型。文章还涉及try-catch-finally执行顺序、对象创建过程等深度知识点,为Java开发者提供了全面的面试备考指南。

2025-11-25 19:58:28 1316

原创 WXT 框架下的 Window 对象获取

在浏览器扩展开发中,Content Script(内容脚本)运行在与网页相同的环境中,但由于其处于隔离的执行环境(Isolated World),无法直接访问网页的 JavaScript 上下文,包括window对象的自定义属性。这在需要获取页面特定数据时(如 Etsy 店铺的shopId、订单状态等)会成为一个问题。本文档基于实际项目经验,详细介绍了在 WXT 框架下获取页面window对象的几种方案,并提供了完整的实现代码和对比分析。在 WXT 框架下获取页面window对象,推荐使用方案。

2025-11-24 14:39:59 584

原创 Design Tokens的设计与使用详解:构建高效设计系统的核心技术

Design Tokens是现代设计系统的核心技术,通过将视觉设计元素抽象为可管理的变量,实现了设计与开发的无缝协作和一致的用户体验。它们不仅提高了工作效率,还降低了维护成本,支持了动态主题和多品牌场景。对于希望实施Design Tokens的团队,建议从以下几个方面入手:首先,建立跨职能团队,确保设计、开发和产品团队共同参与Design Tokens的设计和实施,形成统一的理解和规范。其次,采用渐进式实施策略。

2025-11-24 14:39:28 1010

原创 2026JAVA面试题附答案

Java核心知识点摘要 本文总结了Java基础、集合框架、JVM等方面的核心知识点: 基本数据类型:介绍了8种基本类型及其字节占用 String特性:解释final修饰、不可继承、两种创建方式的区别 字符串类比较:分析String、StringBuffer和StringBuilder的线程安全性与性能差异 集合框架:对比ArrayList和LinkedList的存储结构与时间复杂度 JVM内存:包括类加载顺序、内存结构、GC算法(CMS/G1)及参数调优 多线程:HashMap线程安全问题及Concurre

2025-11-24 14:27:37 1074

原创 Protocol Buffers 技术解析:为什么叫「协议缓冲区」

关注点分离:协议定义与具体实现解耦效率优先:从编码层到传输层的全方位优化兼容性设计:通过字段编号机制支持向前向后兼容通用性:跨语言、跨平台的统一解决方案工具链支持:代码生成、验证等完整生态这种「协议定义+二进制容器」的模式之所以在计算机科学中广泛存在,是因为它完美平衡了效率、可维护性和扩展性,是构建高性能分布式系统的基石技术。核心价值:Protocol Buffers 不是发明了新概念,而是将久经考验的二进制数据交换模式标准化、工具化,让开发者能够专注于业务逻辑而非数据传输细节。

2025-11-23 15:08:25 863

原创 手把手搭建Java微服务:从技术选型到生产部署

服务注册发现- 基于NacosAPI网关- 统一入口和路由服务间调用- 基于OpenFeign配置管理- 集中式配置熔断降级- 基于Sentinel负载均衡- 基于LoadBalancer根据实际需求扩展更多功能,如分布式事务、消息队列、监控告警等。微服务技术栈的更新速度已经超过了大多数团队的实际需求,形成了一种技术的"时尚竞赛"。很多团队在Spring Cloud、Dubbo、Kubernetes + Istio之间反复横跳,却忽略了最根本的问题:这些技术变革是否真的为业务创造了价值?

2025-11-23 15:07:52 405

原创 Java最新面试题(全网最全、最细、附答案)

所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出 的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒 底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的 方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这 样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而 导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时 所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。

2025-11-23 15:06:58 398

原创 Spring Boot如何整合Redis

} // 使用自定义Key生成器 @Cacheable(value = "users", keyGenerator = "customKeyGenerator") public List<User> findAllUsers() { return userRepository.findAll();

2025-11-21 14:09:18 234

原创 Day14 | 抽象类和接口

记住并理解下面这段话:抽象类定义身份的骨骼,承载共性逻辑与状态传承;接口规范能力的边界,实现灵活的行为契约组合。当需要构建血脉相连的家族树时,选择抽象类;当需要为不同血脉赋予相同能力时,拥抱接口。在后续的设计中,抽象类作为根基,接口作为羽翼自由扩展。

2025-11-21 14:08:32 244

原创 java后端面试题总结(内容无先后顺序,持续更新中)

本文总结了Java核心技术面试要点,包括:1)String、StringBuilder和StringBuffer的区别;2)接口与抽象类的差异;3)final关键字用法;4)集合框架分类及特点;5)==与equals比较;6)线程池原理;7)事务隔离级别;8)MySQL索引类型;9)Spring IOC和AOP概念;10)MyBatis中#{}和${}的区别。内容涵盖Java基础、集合、多线程、数据库、框架等核心知识点,适合面试复习参考。

2025-11-21 14:07:15 1193

原创 作为 Java 工程师,我如何用 TRAE 帮助我重构一个六年前的老项目

我们组里有个“老大难”系统,是六年前写的,主要负责内部审批流自动化。典型的传统 Java + JSP 架构,页面写死、逻辑嵌套、数据库字段冗余,一提改动,大家都头疼。我不是第一个被“委派”去接这个项目的人,但我是第一个没推掉它的。这次重构让我感受最深的一点是:真正的技术价值,不在于写了多少代码,而在于能不能让系统更可用、更可维护、更可成长。我仍然是一个 Java 工程师,但我现在能做的事情,已经远不止“写接口”那么简单。

2025-11-20 14:45:20 956

原创 ​​读这一篇,你能把哨兵模式讲给 HR 听她都能懂!

一旦 master 进入客观下线状态,Sentinel 会通过投票选举一个最佳 slave 作为新 master,并通知其他 slave 重新复制它,也会把新 master 的信息通知客户端。它解决了 Redis 单点故障问题,但仍然只有一个 master,不支持分片,因此可用性不如 Redis Cluster。后来他发消息给我,说:“哨兵模式,我现在讲给 HR 听都能听懂。“哨兵模式”(Redis Sentinel)就是给 Redis 奶茶店安排一群“监督员”。一个人说“店长晕了”,可能是看错了;

2025-11-20 14:44:49 787

原创 全网最强10个艰难的Java面试题与答案

本文探讨了Java面试中的10个核心问题,主要包括: wait/notify机制:解释了为何这些方法定义在Object类而非Thread类,涉及线程通信机制和锁管理。 多重继承:分析了Java不支持多重继承的原因,包括菱形继承问题和设计复杂性考量。 运算符重载:讨论了Java不支持运算符重载的设计考量,包括简化性、避免错误和JVM复杂性。 String不可变性:阐述了String类设计为不可变的关键原因,涉及线程安全、哈希缓存和安全性。 char数组存储密码:对比String说明char数组在密码存储中的安

2025-11-20 14:36:00 1206

原创 最全108道Java中高级面试题附答案详解

本文汇总整理了Java开发面试常见真题,涵盖性能调优、并发编程、框架源码、分布式架构等七大专题,包括JVM、MySQL、Spring、Redis、消息队列等核心技术点。内容包含面试问题解析与回答思路,如JVM内存模型、MySQL锁机制、Spring事务管理、Redis持久化等高频考点,以及分布式系统、微服务架构等实战问题。通过分类整理核心面试题,帮助开发者系统准备大厂技术面试,掌握常见问题的解答技巧与底层原理,提升面试通过率。适用于Java开发者备战金三银四等招聘季,提供完整的面试复习资料。

2025-11-19 16:11:07 1665

原创 ConcurrentHashMap 重要方法实现原理和源码解析(一)

其设计核心是「细粒度锁(桶级锁)+ 无锁 CAS + 并发协作」:通过最小粒度的锁(仅锁定单个桶的头节点)减少锁竞争,空桶插入用 CAS 避免加锁,扩容时支持多线程协作,最大化并发性能。:Java 8+ 取消分段锁(锁的粒度大,并发效率低),改用「桶级 synchronized 锁」(锁定每个桶的头节点),锁粒度更小,并发冲突概率更低。,要是返回结果不为 null 说明存在,返回 null 说明不存在,返回 false。),避免单线程扩容瓶颈(导致扩容的线程,扩容过程中执行 put 方法的线程都加进来)

2025-11-19 14:19:49 711

原创 ConcurrentHashMap 重要方法实现原理和源码解析(二)

两者均避免一次性拷贝所有数据(节省内存 + 实时反映底层变化),适配高并发场景的遍历/修改需求。底层核心实现:支持删除、替换、条件替换。ConcurrentHashMap 的。链表转红黑树或者扩容方法。

2025-11-19 14:19:19 857

原创 工作中最常用的6种API网关

有些小伙伴在工作中可能会问:我们的系统直接调用微服务不是更简单吗?为什么非要引入API网关这个"中间商"呢?让我们先来看一个实际的例子。让我们通过架构图来理解网关在微服务架构中的关键作用:网关解决的8大核心问题:下面我们一起看看工作中最常见的6种API网关有哪些。有些小伙伴在Spring技术栈中开发微服务,Spring Cloud Gateway 无疑是最自然的选择。作为Spring官方推出的第二代网关,它基于WebFlux响应式编程模型,性能卓越。优点:缺点:使用场景:有些小伙伴在

2025-11-18 14:28:55 928

空空如也

空空如也

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

TA关注的人

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