随笔分类 - java
java,jvm,spring,mybatis,ssh,android
摘要:1.Mybatis Interceptor 的应用场景很多,比如sql语句动态生成,resultMap动态生成 下面就用代码来分析下resultMap动态生成吧,这个是ORM框架常用的功能哦 1 package com.xx.transjob.common.db; 2 3 import com.ba
阅读全文
摘要:1. 定义自动配置类 配置类上@Import 设置自动导入bean类的选择器 2.spring.factories 文件注册自动配置类 3.实现Import选择器 里面加载bean 4.如果是不需要自动加载,则可做成@EnableXXX注解手动加载 ,把@Import放在@EnableXXX注解上即
阅读全文
摘要:前段时间听别人说prototype 模式的bean用@Aspectj做AOP会导致内存泄漏, 于是自己研究了下总结出几点 1.aspectj 如果是采用javac 编译 会动态产生代理类 代理类是真实类的子类 (如果是接口 采用jdk代理 如果是类 采用 cglib代理) 2.aspectj 如果是
阅读全文
摘要:前段时间在网上看到了一篇关于ThreadLocal内存泄漏的文章 于是个人也研究了下ThreadLocal 对象,其原理是: ThreadLocal 定义的变量值 会存储在当前线程的一个map集合中 这个map里面存储的是Entity对象 , Entity对象的key是当前ThreadLocal对象
阅读全文
摘要:很早就看过spring IoC容器源码,一直没时间做系统的整理,现在大概整理下: 核心类关系: ClassPathXmlApplicationContext extends AbstractXmlApplicationContext AbstractXmlApplicationContext ext
阅读全文
摘要:String.intern() 的作用是把字符串放入常量池 如果字符串存在于常量池,直接返回地址即可 如果字符串不在常量池: 在jdk7 以下版本是先把字符串复制到常量池区然后返回字符串在该区的地址 在jdk7及以上版本中则是直接把字符串的地址复制到常量池 之所以要这么做原因是 jdk7及以后的版本
阅读全文
摘要:先列出我的测试代码: 1 public static Object loc=new Object(); 2 3 public static void main(String[] args) throws Exception{ 4 5 Thread t1=new Thread(new Runnable
阅读全文
摘要:HashMap是java最经典的数据结构之一,抽空研究了下 顺便做个笔记: HashMap 存储 采用的是 数组+链表+红黑树的存储模式, 1.hash无冲突的时候,node直接放入数组 index=hash%数组长度 2.hash 有冲突 采用链表结构存储 元素之间用next变量连接 3.hash
阅读全文
摘要:foreach 遍历 ArrayList 的时候 用ArrayList.remove 做删除操作会异常的 直接用 Iterator 遍历 Iterator.remove 是不会异常的 众所周知,foreach 本质上就是 Iterator 的语法糖 那么为什么会出现这种情况呢? ArrayList
阅读全文
摘要:java项目中使用log4j记录日志几乎成了标配, 最近一个项目中出了个问题 现象是这样的: 不连vpn程序一切正常,连上VPN启动程序 直接异常退出, 错误日志直接指向了 log4j 库 org.apache.logging.log4j.core.util.UuidUtil.clinit 就是说在
阅读全文
摘要:研究了下android下的 handler message 实现原理: new handler() 的时候 从ThreadLocal里面 获取当前线程下的 Looper实例下的 MessageQueue 的引用 保存在 handler.mQueue属性里面 handler发送消息本质就是向此集合写值
阅读全文
摘要:spring中的bean最常用的 singleton 模式 如果要在springmvc Controller 中获取 HttpServletRequest ,HttpServletResponse 怎么办? 1.在接口函数中以参数传入 类似HttpServlet 这种方式获得的是真实的request
阅读全文