自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入理解SLF4J(日志门面)—— 个人总结版

写了多年 log.info(“用户{}登录成功”, userId),你是否思考过:这行代码背后,SLF4J 是如何找到底层日志实现并完成输出的?为什么换一个日志框架只需要改 pom.xml,业务代码一行都不用动?今天我们从零开始,彻底吃透 SLF4J 日志门面的底层原理。

2026-07-16 12:11:30 274

原创 Redis个人总结版(底层相关知识点梳理)

很早就接触并使用过 Redis,但仅停留在业务应用层面,本次将从底层原理重新系统学习。Redis(Remote Dictionary Server,远程字典服务),是一款开源的、基于内存的、支持多种数据结构的高性能键值存储系统。

2026-06-12 15:36:27 305

原创 从底层原理出发掌握MySQL相关知识(个人学习总结版)

MySQL数据库的知识点很多,从底层原理开始学习,有助于高效掌握核心知识,达到举一反三的效果。

2026-05-27 18:09:57 424

原创 MyBatis 主流程详解:跟着一条 SQL 走遍完整执行链路

加载配置:解析 mybatis-config.xml 及所有 Mapper 文件,存入全局单例 Configuration。构建工厂:通过 SqlSessionFactoryBuilder 创建 DefaultSqlSessionFactory。打开会话:factory.openSession() 创建 SqlSession(持有 Executor)。获取代理:通过 JDK 动态代理生成 Mapper 接口代理对象(MapperProxy)。

2026-05-08 15:04:29 417

原创 MyBatis核心设计模式详解

JDK在运行期间,根据你提供的接口,自动生成一个代理类$Proxy0这个代理类实现了相同接口,所以能伪装成目标类代理类的所有方法,都会调用InvocationHandler.invoke()在invoke里:前置增强 + 执行真实方法 + 后置增强经典的GoF设计模式共有23种,根据模式的目的分为三大类别:创建型模式、结构型模式和行为型模式,文中介绍的7种模式也属于这三大类别。下面通过简要介绍这三大类别来更好的帮助我们理解文中的7种涉及的设计模式所属类别和核心目的。类别核心关注点。

2026-05-07 13:14:47 421

原创 MyBatis和JDBC的关系

MyBatis是Java后端开发中一款主流的持久层框架,它的核心逻辑是:通过配置,让你在 Java 接口里调用方法,就能自动执行预定义的 SQL 并拿到对象。从上面的内容可知,MyBatis是基于JDBC进行了封装,和数据库进行打交道的还是JDBC,不过一些重复的准备工作和收尾工作MyBatis帮我们接管了,而且通过将SQL语句写在xml文件中,使SQL和代码解耦,更利于项目维护和部署。下面通过对比JDBC和MyBatis在操作数据库中的自动化程度来更好的展现MyBatis框架的优势。

2026-04-23 16:40:35 388

原创 Spring框架其实没那么复杂

IoC容器在Spring项目启动的时候,会扫描指定包名下的所有类,加了@Component注解后,就会被识别到,然后通过反射创建这个类对象,存到容器里,用的时候直接通过getBean拿到。正常情况,我们获取一个Java对象,是先定义这个类,然后用new来获取对象的实例,DI的实现是你需要一个对象,我直接帮你创建好,用的时候直接可以获取。很明显,使用Spring AOP,我们的业务代码只需保留核心业务,无重复日志、耗时记录的代码,方便统一维护,整个设计的扩展性很好,如果需要改日志格式,只改切面即可。

2026-04-08 12:04:05 323

原创 记一个简单Java项目-个人记账本-的学习心得

四. Java对象直接的关系调用:Main - 程序入口, PersonalAccountBook - 程序主功能类,辅助类有如下三个:a) AccountBook- 调用实体类Record,并存储List<Record>和维护ID的一致性,递增性,b) FileHandler- 负责处理文件相关的操作, c) ReportGenerator- 负责处理数据并返回汇总信息。六. final 关键字的使用,不会更改的变量(常量及引用不可变的情况),建议定义的时候使用final。

2026-03-26 11:46:02 157

原创 Java中访问权限修饰符

Java中访问权限修饰符。

2026-03-26 11:10:26 30

原创 网络通信初体验

我的Java基础比较薄弱,刚开始deepseek给我生成这个即时聊天程序的所有代码时,我看了半天也没弄明白他们到底是如何通讯的,为什么客户端有主线程和监听线程这两个线程,server主要负责哪些功能,server的handler主要用来干什么的,client, server,handler它们三个到底如何协调工作完成群发信息和私聊功能的。直到我按照deepseek给的建议,一步一步从最简单的socket代码开始写起,一点一点增加功能,到最后把所有的主要功能都实现了,我才豁然开朗。知其然,知其所以然。

2026-03-25 11:35:28 350

原创 【“入坑”计算机】-随笔

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代.

2026-03-25 11:34:25 31

原创 本地Java项目 + 虚拟机上的MySQL Server

同时在DeepSeek的帮助下搞定了sql文件的执行(主要包含建库,建表和插入一些测试数据),MySQL用户的创建和授权,虚拟机上防火墙设置(允许宿主机访问虚拟机上的MySQL服务)等问题,最终成功连上虚拟机上的MySQL服务器。URL里的IP192.168.5.101是虚拟机的IP,如果是在自己的Windows电脑上面安装MySQL Server,上面URL的值除了把IP地址改成localhost,其他的都不需要改变。不过,如果你用的账号和密码不一样了,也是需要更新下的。

2026-01-29 17:58:20 42

原创 Java TreeMap

之后我了解到,与HashMap不同,TreeMap它是有序的。如果没有满足上面的条件的任何一个而直接使用TreeMap,即使编译期没问题,可以顺利编译成字节码文件,但是在运行的时候会报错。中文意思:该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造函数。当你希望键值对按一定顺序来保存你需要的数据时,就可以使用TreeMap,我的需求就是希望按照年月的倒序顺序来保存收入支出的记录。当然我使用的YearMonth也实现了Comparable。

2026-01-26 17:36:40 283

原创 Java项目中的相对路径和绝对路径

Java项目中创建文件的路径,绝对路径和相对路径

2026-01-16 12:08:20 294

原创 记MySQL忘记root密码和新建用户

MySQL忘记root密码怎么办

2022-08-03 23:03:52 1277 1

原创 Java 第一个程序Hello

Java 入门程序-- HelloWorld

2022-05-12 22:56:10 778

空空如也

空空如也

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

TA关注的人

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