Java
文章平均质量分 94
老鼠尼奥
这个作者很懒,什么都没留下…
展开
-
图解DirectByteBuffer中的内存回收机制
概述本文主要通过图,代码简要的解析DirectByteBuffer是如何回收堆外内存的。代码解析实际释放内存的类释放内存的代码是:unsafe.freeMemory(address);其中Deallocator其实是DirectByteBuffer中的内部私有类,address就是指向堆外内存的地址。 private static class Deallocator implements Runnable { private static Unsafe原创 2020-05-21 13:32:54 · 653 阅读 · 1 评论 -
线程生命周期,锁及cpu资源需求
一、线程的生命周期(图)二、线程状态源码public enum State { /** * Thread state for a thread which has not yet started. */ NEW, /** * Thread state for a runnable thread....原创 2018-05-01 18:12:38 · 459 阅读 · 1 评论 -
java基础之-try-catch-finally执行跳转返回逻辑验证
摘要本段代码块主要验证try,catch,finally的执行跳转返回逻辑try返回值,finally只赋值,不返回值 /** * <p> * 如果finally不返回result,只是赋值(i="set in finally"), * 只会修改到栈帧中的局部变量result, * 不会修改到虚拟机栈返回值,此时虚拟机返回值...原创 2018-05-18 17:42:52 · 450 阅读 · 1 评论 -
Http 持久连接与 HttpClient 连接池
reuseStrategy.keepAlive(response, context) &amp;amp;lt;dependency&amp;amp;gt; &amp;amp;lt;groupId&amp;amp;gt;org.apache.httpcomponents&amp;amp;lt;/groupId&amp;amp;gt; &a转载 2018-05-22 18:39:13 · 1487 阅读 · 0 评论 -
Hibernate持久层状态变化
Hibernate里有三种对象状态:临时状态 (Transient)、持久状态(Persistent)、游离状态(Detached)状态表格 状态 对象 是否在session缓存 是否在数据库 当前对象与数据库是否有对应关系 备注 临时状态 (Transient) 临时对象 否 否 否 new一个对象,或者从另外两个状态转换来...转载 2018-05-22 10:17:46 · 526 阅读 · 0 评论 -
监听器,过滤器,拦截器详解之一:监听器概要
监听器监听器javax.servlet.Listener是servlet规范中定义的一种特殊类。 用于监听ServletContext、HttpSession和ServletRequest等域对象的创建和销毁事件。常见监听器如下应用上下文监听器:javax.servlet.ServletContextListener应用上下文属性监听器:javax.servlet.Servl...原创 2018-05-23 16:26:34 · 294 阅读 · 0 评论 -
动态代理:JDK代理原理解析
概要代理模式结构 代理可分为2类对象: 目标类:一个是真正的你要访问的对象,原来的逻辑实现者。 代理类:一个是代理对象,从抽象层看,他包含了原来的逻辑与需要额外增加的代理/增强逻辑。 真正对象与代理对象实现同一个接口(实际上也可能是继承Cglib),先访问代理类再访问真正要访问的对象。 代理模式分为静态代理、动态代理。 静态代理是由程...原创 2018-06-05 15:57:28 · 419 阅读 · 0 评论 -
动态代理:Cglib代理原理解析
概要cglib源码看了下,总结下自己理解,小结如下:通过继承目标类实现代理代理类:继承了目标类,则在代理类中通过调用父类方法,即调用到了目标类方法。整个代理过程无需强制持有目标类的实例。增强器/拦截器类:实现MethodInterceptor接口的intercept方法,以达成对目标类的代理或者说功能增强(方法参数见下文:增强器/拦截器接口源码)。增强器/拦截器映射器:Callb...原创 2018-06-06 11:51:26 · 2941 阅读 · 2 评论 -
MyBatis中#{}和${}的区别
概要动态 sql 是 mybatis 的主要特性之一,在 mapper 中定义的参数传到 xml 中之后,在查询之前 mybatis 会对其进行动态解析。mybatis 为我们提供了两种支持动态 sql 的语法:#{} 以及 ${}。示例: #{}假设变量:String username='smith';有以下mybatis配置:select * from user w...转载 2018-05-30 16:50:57 · 198 阅读 · 0 评论