Mybatis的原理
- 1.Mapper 接口在初始SQL SessionFactory注册的
- 2.Mapper 接口注册在名为MapperRegistry类的 HasMap中 key=Mapper class value = 创建当前Mapper的工厂
- 3.当前Mapper注册后, 可以SqlSession种的get
- 4.SqlSession.getMapper运用了JDK动态代理、产生了目标Mapper接口的代理对象
- 5.动态代理的代理类是MapperProxy,这里边是最终完成了增删改查方法调用
JVM内存地址结构
JVM内存地址结构主要是三大块:堆内存、方法区和栈。堆内存是JVM最大的一块,与年轻代和老年代组成,而年轻代
内存又被分为三部分:Eden空间、From Survivor空间、To Survivor空间,默认情况下年轻代按照 8:1:1的内存分配;
方法区存储类信息、常量、静态变量等数据,是线程共享区域,为与Java堆区分,方法区还有一个别名 Non-Heap(非堆)
栈对象为Java虚拟机栈和本地方法栈,主要用于方法的执行