![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 66
逝水寒缘
这个作者很懒,什么都没留下…
展开
-
java instrument学习
Java在1.5引入了java.lang.instrument,它允许实现一个java agent,通过agent监测运行在JVM上的程序,监测的机制是对方法字节码的修改。有点类似AOP,但比AOP更加松耦合,因为AOP的代码还是在工程里面的,而agent却与被监控的程序完全隔离。 下面我们用instrument来实现一个简单的java agent。 在启动JVM时,通过指示代理类及其代理选项原创 2016-01-29 09:49:53 · 652 阅读 · 0 评论 -
ASM学习
在之前的java instrument学习中,使用到了ASM框架,这里简单介绍一下ASM的使用。 ASM是一个 Java 字节码操控框架。它能够以二进制形式修改已有类或者动态生成类。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。ASM 从类文件中读入信息后,能够改变类行为,分析类信息,甚至能够根据用户要求生成新类。 我们还是使用ASM G原创 2016-01-29 12:49:21 · 510 阅读 · 0 评论 -
深入理解ThreadLocal
在之前的项目中涉及到了ThreadLocal的使用,因此看了jdk源码。在此分析部分源码,并阐述一些自己的理解。 首先来看ThreadLocal是什么。JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序,ThreadLocal并不是一个Thre原创 2016-03-30 20:08:46 · 305 阅读 · 0 评论 -
BeanUtils.copyProperties
很多时候,我们会有几个比较相像的类(比如继承了同一个父类的两个子类),他们有着很多相同的属性。这时我们也许会有这样的需求,将一个类中已经赋值的属性填充到另一个类的相同属性中。当然,我们可以手动写get/set,但会堆积大量代码,增加代码长度,降低代码可读性。 这时可以用到org.apache.commons.beanutils.BeanUtils包下的copyProperties原创 2016-07-19 23:19:02 · 1409 阅读 · 0 评论 -
Java源码分析之HashMap(JDK1.8)
一、HashMap概述 HashMap是常用的Java集合之一,是基于哈希表的Map接口的实现。与HashTable主要区别有不支持同步和允许null作为key和value。由于HashMap不是线程安全的,如果想要线程安全,可以使用ConcurrentHashMap代替。 二、HashMap数据结构 HashMap的底层是哈希数组,数组元素为Entry。HashMap通过key的has原创 2017-02-21 23:30:55 · 8951 阅读 · 1 评论 -
Spring事务管理配置问题
昨天项目中遇到一个问题,所有需要数据库连接的请求都报拿不到连接的错误。org.springframework.jdbc.CannotGetJdbcConnectionException:Could not get JDBC Connection; 日志中显示,所有线程都在等待数据库连接池释放连接。"catalina-exec-223" daemon prio=10 tid=0x00007f75dc原创 2017-03-10 20:01:38 · 402 阅读 · 0 评论