摘要: 1.mybatis中事务的管理 SqlSessionFactory开启一个SqlSession后,会给当前sqlsession注入事务工厂TransactionFactory: private SqlSession openSessionFromDataSource(ExecutorType exe 阅读全文
posted @ 2020-03-18 10:45 欧E 阅读(1178) 评论(1) 推荐(0) 编辑
摘要: 1.对象优先在Eden分配,Eden内存不足,将触发一次minor gc 2.大对象直接进入老年代 可通过设置-XX:PretenureSizeThreshold ,当对象大于这个值,直接分配到老年代(新生代使用的是复制算法,大对象分配到新生代将会触发频繁的复制) 3.长期存活的对象将进入老年代 新 阅读全文
posted @ 2020-01-15 11:38 欧E 阅读(83) 评论(0) 推荐(0) 编辑
摘要: JVM的垃圾回收分析,主要从以下几方面进行: 1.如何判断对象是否可回收 2.标记对象可回收的流程 3.垃圾收集算法有哪些 4.基于不同的垃圾收集算法,有哪些垃圾收集器 判断对象是否可回收: 判断对象是否可回收的两种算法: 引用计数算法: 给对象添加一个引用计数器,有对象引用它计数器加1.引用失效就 阅读全文
posted @ 2020-01-14 17:19 欧E 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 对象在jvm中的创建流程: 对象在jvm中的内存布局: 对象的引用和定位: 通过句柄的方式访问: 优点:对象移动时不需要改变栈中的reference,只需改变句柄池中的指针 缺点:访问需要多访问一次句柄池,才访问真实对象。 通过指针的方式访问: 优点:直接能够访问对象,访问效率高。 缺点:对象移动需 阅读全文
posted @ 2020-01-07 19:46 欧E 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 运行时数据区如图所示: 程序计数器:当前线程私有的数据内存,用于记录字节码指令执行到哪了。为什么每个线程需要维护一个计数器,因为cpu在同一时刻只能执行一个指令,每个线程又有多个指令要执行,为了能使线程切换回来,知道指令执行到哪了。 是JVM规范中,没有规定任何情况的OutOfMemory的区域。 阅读全文
posted @ 2019-12-30 15:41 欧E 阅读(121) 评论(0) 推荐(0) 编辑
摘要: ApplicationContext和BeanFactory都是加载bean的,但是ApplicationContext包含BeanFactory的所有功能,并且提供更多的扩展功能; 以下为ApplicationContext加载bean的工作流程: 实例化bean的流程和xmlbeanfactor 阅读全文
posted @ 2019-12-30 10:25 欧E 阅读(778) 评论(0) 推荐(0) 编辑
摘要: XmlBeanFactory加载bean的执行流程: 阅读全文
posted @ 2019-12-17 10:10 欧E 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 在Netty中,能够同时支持单线程,多线程和主从Reactor三种模式: 下图为Netty的线程模型: 以常用的Netty代码举例分析: // 配置服务端的NIO线程组 EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGrou 阅读全文
posted @ 2019-11-26 16:14 欧E 阅读(889) 评论(0) 推荐(0) 编辑
摘要: 简析JDK中的Future机制: JDK中的通过实现Callable接口的类,传递进线程池后,会被重新包装成一个FutureTask类,该类实现RunnableFuture<V>,但是RunnableFuture<V>又继承Runnable接口,所以本质上FutureTask就是一个线程类,可被执行 阅读全文
posted @ 2019-11-26 16:14 欧E 阅读(522) 评论(0) 推荐(0) 编辑
摘要: 具体实现原理和模型图,请参考:Reactor模型介绍 单Reactor单线程实现,请参考:基于NIO-Reactor的介绍和单Reactor单线程模型的实现 在单Reactor单线程模型中,还有可优化的地方,那就是dispatch每分发一个事件,无论是ReadHandler和WriteHander中 阅读全文
posted @ 2019-11-26 16:13 欧E 阅读(533) 评论(0) 推荐(1) 编辑