MyBatis学习笔记
MyBatis学习笔记(含面试题)一、核心知识点梳理1. MyBatis简介1.1 核心定位MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程,通过XML或注解的方式将Java对象与SQL语句动态映射,简化数据持久化操作。 核心思想:将SQL与Java代码分离,通过配置文件管理SQL,降低耦合度,提高代码可维护性。 1.2 与JDBC的对比优势 JDBC需要手动加载驱动、创建连接、编写SQL、设置参数、处理结果集、关闭资源,代码冗余且繁琐;MyBatis通过配置和映射自动完成这些操作,简化开发。 JDBC的SQL语句硬编码在Java代码中,修改SQL需重新编译代码;MyBatis的SQL写在XML或注解中,修改无需编译,灵活度高。 JDBC需要手动处理参数类型匹配和结果集与Java对象的映射;MyBatis支持自动参数映射和结果集映射,支持复杂对象(一对一、一对多)映射。 MyBatis提供缓存机制(一级缓存、二级缓存),提升查询效率;JDBC需手动实现缓存。 1....
HTTP、HTTPS和TCP学习笔记
一、核心协议知识点梳理1. TCP协议(传输控制协议)1.1 核心定位TCP是面向连接的、可靠的、基于字节流的传输层协议,位于IP协议之上,应用层协议(如HTTP)之下,负责在两个通信端点之间建立可靠的字节流传输通道。 1.2 核心特点 面向连接:通信前必须通过“三次握手”建立连接,通信结束后通过“四次挥手”释放连接。 可靠传输:通过序列号、确认应答、重传机制、流量控制、拥塞控制等保证数据不丢失、不重复、按序到达。 面向字节流:不关心应用层数据的具体含义,将应用层数据视为连续的字节流,拆分为TCP报文段传输。 双工通信:通信双方可同时发送和接收数据。 点到点通信:仅支持两个端点之间的通信,不支持多播或广播。 1.3 关键机制 **三次握手(建立连接)**目的:确保双方收发能力正常,协商初始序列号(ISN)。过程: 客户端 → 服务器:SYN=1,Seq=x(客户端初始序列号) 服务器 → 客户端:SYN=1,ACK=1,Seq=y,Ack=x+1(确认客户端,发送服务器初始序列号) 客户端 → 服务器:...
JVM学习笔记
一、JVM基础概念1.1 JVM定义与作用JVM(Java Virtual Machine,Java虚拟机)是运行Java字节码的虚拟计算机,它屏蔽了不同操作系统的底层差异,实现了“一次编写,到处运行”的Java核心特性。JVM的核心作用包括:加载解析字节码、管理内存、执行字节码、处理异常、垃圾回收等。 JVM与操作系统、硬件的关系:Java源码(.java)经编译器(javac)编译为字节码文件(.class),JVM负责将字节码翻译为本地机器指令(不同OS对应不同JVM实现,如HotSpot、J9等),最终由硬件执行。 1.2 JVM架构核心组成JVM架构主要分为五大核心模块,各模块协同工作完成字节码的执行与资源管理: 类加载器子系统(ClassLoader Subsystem):负责加载.class文件到内存,完成“加载-链接-初始化”三个阶段。核心组件包括引导类加载器(Bootstrap ClassLoader,加载JDK核心类库,如rt.jar)、扩展类加载器(Extension ClassLoader,加载jre/lib/ext目录下的类库)、应...
MySql学习笔记
一、MySql学习笔记1. 数据库基础概念 数据库(DB):存储数据的仓库,按一定格式组织和存储数据,便于管理和访问。 数据库管理系统(DBMS):管理数据库的软件,如MySQL、Oracle、SQL Server等,提供数据定义、查询、更新、控制等功能。 SQL(结构化查询语言):用于与DBMS交互的标准语言,分为DQL(数据查询)、DML(数据操作)、DDL(数据定义)、DCL(数据控制)。 关系型数据库(RDBMS):基于关系模型(二维表结构)的数据库,数据之间存在关联关系,支持ACID特性,MySQL是典型的RDBMS。 2. MySQL核心特性 ACID特性:事务的四大特性,保证数据的安全性和一致性。原子性(Atomicity):事务是不可分割的最小单位,要么全部执行,要么全部不执行。 一致性(Consistency):事务执行前后,数据库的完整性约束不被破坏(如主键唯一、外键关联正常)。 隔离性(Isolation):多个事务并发执行时,一个事务的执行不会被其他事务干扰。 持久性(Durability):事务一旦提交,其对数据库的修改会永久保存,即使数...




