难点
索引选择由于普通索引可以有多个值,在查找到满足条件的项后仍会继续查找,直到查询到不满足条件的项为止,而唯一索引在查找到后就可以返回了,因此普通索引查找效率要劣于唯一索引
索引结构为B+树,只有叶子存储值,其他存储索引
即便是索引,每次也是加载一...
结构
OSI七层模型
TCP/IP五层/四层模型
应用层
举例:HTTP FTP SMTP DNS SSH等
URL/URI区别
体系架构:P2P/CS
DNS域名系统原理:host->本地缓存-&...
运行时数据区域
线程共享
堆(Heap)
方法区(Method Area)
运行时常量池(Runtime Constant Pool)
字...
关于对象的生命周期在这篇文章中阐述
垃圾回收算法
标记-清除算法标记-清除算法(Mark-and-Sweep)是最基础的GC算法,后续算法主要是该算法基础上的改进,主要分为两个步骤
标记堆中可被回收的对象
统一对被标记的对象的内存空间进行回收
该...
对象年龄分代
GC对于不同年龄的对象有不同的回收规则,其中对象根据根据其内部文件头的年龄计数器大体上被分为三类
内存空间
分代
堆
新生代(YoungGe...
概述Java内存模型(Java Memory Model)是为了避免不同操作系统之间内存模型的不同,从而导致多线程工作时的结果不一致问题。
一方面来说,由于不同CPU的Cache结构不同导致操作系统的内存模型不同,另一方面,操作系统会对代码进行指令重...
Mybatis是什么
Mybatis是一个Java的持久层框架,数据持久层(DAO层)是在程序中直接对数据库进行持久化操作的部分。JDK自身提供了访问数据库的接口API——JDBC,Mybatis本质上是对JDBC的封装。JDBC在开发过程中过于面向...
123<select id="selectPerson" parameterType="int" resultType="hashmap"> SELECT * FROM PER...
如果在获取SqlSession的时候没有声明autoCommit,在增删改操作后需要提交事务才能应用到数据库上
新增操作
在接口中声明相关方法
1234public class UserDao{ ... void insertU...
log4j为了输出日志,我们需要引入log4j框架
12345<dependency> <groupid>log4j</groupid> <artifactid>log4j</arti...