会员
周边
新闻
博问
闪存
赞助商
YouClaw
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
SevenCoding
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
···
18
下一页
2026年4月8日
用300行代码手写SpringBoot核心原理
摘要: 本文将带你深入了解SpringBoot框架的核心原理,通过300行代码的迷你版本来展示SpringBoot核心注解的作用及特性,在学习本篇文章时,可以同时学习:深度揭秘SpringBoot自动装配的实现原理,相信大家会对本文中的各个功能会有更加深刻的理解 本文内容: 手写模拟SpringBoot启动
阅读全文
posted @ 2026-04-08 09:00 程序员Seven
阅读(355)
评论(3)
推荐(1)
2026年4月7日
Mybatis基础操作
摘要: Mybatis基础使用 Mybatis编程式开发 mybatis和MySQL jar包依赖 <dependencies> <!-- MyBatis 核心 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</arti
阅读全文
posted @ 2026-04-07 09:00 程序员Seven
阅读(55)
评论(0)
推荐(0)
2026年4月3日
用300行代码手写Spring核心原理
摘要: 本文将带你深入了解Spring框架的核心原理,通过300行代码的迷你版本来展示Spring最核心的特性:IoC(控制反转)、DI(依赖注入)和MVC(模型-视图-控制器)模式的实现。 mini版Spring实现思路 实现过程 自定义注解 在Spring框架中,注解是非常重要的组成部分。我们的迷你版也
阅读全文
posted @ 2026-04-03 09:00 程序员Seven
阅读(230)
评论(0)
推荐(1)
2026年4月2日
MVC中的拦截器实现案例
摘要: MVC 拦截器 Spring MVC 拦截器对应HandlerInterctor接口,该接口位于org.springframework.web.servlet的包中,定义了三个方法,若要实现该接口,就要实现其三个方法: 前置处理(preHandle()方法):该方法在执行控制器方法之前执行。返回值为
阅读全文
posted @ 2026-04-02 09:00 程序员Seven
阅读(156)
评论(0)
推荐(0)
2026年4月1日
MVC快速入门
摘要: 前言 什么是MVC MVC英文是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计规范,本质上也是一种解耦。 Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。 Vie
阅读全文
posted @ 2026-04-01 09:00 程序员Seven
阅读(95)
评论(0)
推荐(0)
2026年3月31日
Redis持久化:从AOF到RDB,如何实现数据不丢失?
摘要: Redis属于内存数据库,但为了防止宕机等导致的数据丢失,也有对应的数据持久化技术。持久化主要作用就是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。 AOF持久化 Append Only File 类似于Mysql的binlog日志类似,会吧写操作命令以追加写的方式写入到AOF日志中。
阅读全文
posted @ 2026-03-31 09:00 程序员Seven
阅读(276)
评论(0)
推荐(1)
2026年3月30日
Redis命令处理机制源码探究
摘要: 今天来讲讲 Redis 的请求监听,通俗点说,就是Redis是如何监听客户端发出的set、get等命令的。 基础架构 众所周知,Redis 是单进程单线程架构,虽然是单进程单线程,但是Redis的性能却毫不逊色,能轻松应对一般的高并发场景,那么Redis究竟是施了什么魔法呢? 其实 Redis 的原
阅读全文
posted @ 2026-03-30 09:00 程序员Seven
阅读(153)
评论(0)
推荐(0)
2026年3月27日
MySQL优化全攻略:索引、SQL与分库分表的最佳实践
摘要: SQL优化一般步骤 慢日志定位 通过慢查日志等定位那些执行效率较低的SQL语句 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的
阅读全文
posted @ 2026-03-27 09:00 程序员Seven
阅读(318)
评论(0)
推荐(1)
2026年3月26日
Mysql的行级锁到底是怎么加的?
摘要: 开篇结论 加锁的对象是索引,加锁的基本单位是 next-key lock,它是由记录锁和间隙锁组合而成的,next-key lock 是左开右闭区间,而间隙锁是左开右开区间。 在只使用记录锁或者间隙锁就能避免幻读现象的场景下, next-key lock 就会退化成记录锁或间隙锁。 假设这个表,id
阅读全文
posted @ 2026-03-26 09:00 程序员Seven
阅读(243)
评论(2)
推荐(1)
2026年3月25日
MySQL锁机制:从全局锁到行级锁的深度解读
摘要: 全局锁 flush tables with read lock 执行后,整个数据库就处于只读状态了,这时其他线程执行以下操作,都会被阻塞: 对数据的增删改操作,比如 insert、delete、update等语句; 对表结构的更改操作,比如 alter table、drop table 等语句。 全
阅读全文
posted @ 2026-03-25 09:00 程序员Seven
阅读(207)
评论(0)
推荐(0)
2026年3月24日
揭秘MySQL索引分类
摘要: 索引的作用 说白了索引就是数据的目录,根据索引去查数据必然比在库中一行记录一行记录的查更快 索引分类 按数据结构分类 Mysql的数据是存储在磁盘中的,每次从磁盘中读取数据都需要进行一次IO。一个表的数据在磁盘上由于插入顺序的原因肯定不是顺序存放,如果按照表字段内容顺序查找,如果一个500万条数据的
阅读全文
posted @ 2026-03-24 09:00 程序员Seven
阅读(195)
评论(0)
推荐(0)
2026年3月23日
InnoDB存储结构全解析:行页区段与单表2000W行的关系
摘要: 逻辑存储结构 表空间由段(segment)、区(extent)、页(page)、行(row)组成,InnoDB存储引擎的逻辑存储结构大致如下图: 行(row) 数据库表中的记录都是按行(row)进行存放的,每行记录根据不同的行格式,有不同的存储结构。 页(page) 记录是按照行来存储的,但是数据库
阅读全文
posted @ 2026-03-23 09:00 程序员Seven
阅读(211)
评论(1)
推荐(1)
2026年3月20日
MySQL语句执行深度剖析:从连接到执行的全过程
摘要: 执行流程图 MySQL 的架构可以大致划分为四个层次:连接层、服务层、存储引擎层和文件系统层。 连接层:负责对来自客户端的连接进行权限验证,并将连接信息存入连接池中,方便后续的连接复用。 服务层:主要负责 SQL 语句的解析与优化,还包括查询缓存和 MySQL 内置函数的实现。 存储引擎层:提供多种
阅读全文
posted @ 2026-03-20 09:00 程序员Seven
阅读(245)
评论(0)
推荐(1)
2026年3月18日
调试排错 - 线程Dump分析
摘要: Thread Dump介绍 什么是Thread Dump Thread Dump是非常有用的诊断Java应用问题的工具。每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dump的能力,虽然各个 Java虚拟机打印的thread dump略有不同,但是 大多都提供了当前活动线程的快
阅读全文
posted @ 2026-03-18 09:00 程序员Seven
阅读(217)
评论(0)
推荐(1)
2026年3月17日
JVM排查工具单
摘要: Java 调试入门工具 jps jps是jdk提供的一个查看当前java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写。 jps常用命令 jps # 显示进程的ID 和 类的名称 jps –l # 输出输出完全的包名,应用主类名,jar
阅读全文
posted @ 2026-03-17 09:00 程序员Seven
阅读(220)
评论(0)
推荐(2)
2026年3月16日
Java对象头:深入理解对象存储的核心机制
摘要: Java对象结构 实例化一个Java对象之后,该对象在内存中的结构是怎么样的?Java对象(Object实例)结构包括三部分:对象头、对象体和对齐字节,具体下图所示 Java对象的三部分 对象头 对象头包括三个字段,第一个字段叫作Mark Word(标记字),用于存储自身运行时的数据,例如GC标志位
阅读全文
posted @ 2026-03-16 09:00 程序员Seven
阅读(173)
评论(0)
推荐(1)
2026年3月13日
类字节码:揭开Java虚拟机运行机制的神秘面纱
摘要: 概述 计算机是不能直接运行java代码的,必须要先运行java虚拟机,再由java虚拟机运行编译后的java代码。 因为在cpu层面看来计算机中所有的操作都是一个个指令的运行汇集而成的,java是高级语言,只有人类才能理解其逻辑,计算机是无法识别的,所以java代码必须要先编译成字节码文件,jvm才
阅读全文
posted @ 2026-03-13 09:00 程序员Seven
阅读(229)
评论(0)
推荐(0)
2026年3月12日
第一批被龙虾气到的人出现了
摘要: 引言 我朋友,一个脾气温和、情绪稳定的成年人,今天,在电脑前憋出了他今年第一句字正腔圆的国骂。 对象不是甲方,不是队友,而是一个AI——确切说,是一个花了他不少钱、号称能当“私人数字助理”的玩意儿,花名龙虾。 事情得从头说起。那天下午,他喜气洋洋地跟我显摆,说也养了个龙虾,能自动整理AI资讯,能给它
阅读全文
posted @ 2026-03-12 22:37 程序员Seven
阅读(89)
评论(0)
推荐(0)
2026年3月11日
NIO的零拷贝如何实现高效数据传输?
摘要: Java NIO零拷贝 在 Java NIO 中的通道(Channel)就相当于操作系统的内核空间(kernel space)的缓冲区,而缓冲区(Buffer)对应的相当于操作系统的用户空间(user space)中的用户缓冲区(user buffer)。 通道(Channel)是全双工的(双向传输
阅读全文
posted @ 2026-03-11 09:00 程序员Seven
阅读(208)
评论(0)
推荐(0)
2026年3月9日
NIO:解开非阻塞I/O高并发编程的秘密
摘要: 流与块 Standard IO是对字节流的读写,在进行IO之前,首先创建一个流对象,流对象进行读写操作都是按字节 ,一个字节一个字节的来读或写。而NIO把IO抽象成块,类似磁盘的读写,每次IO操作的单位都是一个块,块被读入内存之后就是一个byte[],NIO一次可以读或写多个字节。 I/O 与 NI
阅读全文
posted @ 2026-03-09 09:00 程序员Seven
阅读(250)
评论(0)
推荐(1)
上一页
1
2
3
4
5
6
···
18
下一页
公告