- 博客(4)
- 收藏
- 关注
翻译 ArrayList和LinkedList的区别
01、ArrayList 是如何实现的? ArrayList 实现了 List 接口,继承了 AbstractList 抽象类,底层是基于数组实现的,并且实现了动态扩容。 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { private static fi
2020-09-30 20:20:45 133
翻译 更快的BeanUtil(对比BeanUtils,BeanCopier)
更快的BeanUtil(原创) BeanUtil算是个高频使用工具类了,很多地方都用得到,大家常用的BeanUtil大概有Spring的BeanUtils以及cglib的BeanCopier,前者使用反射进行getter、setter方法调用,后者使用CGLIB代理直接操作字节码调用getter、setter方法。 BeanCopier的性能要高出Spring的BeanUtils很多,我实测大概有5倍多的差距,但是BeanCopier用起来也更加繁琐一些,需要先传入source类和target类创建一个
2020-09-30 17:44:55 911
翻译 ReentrantLock和Condition源码解析
Java除了使用关键字synchronized外,还可以使用ReentrantLock实现独占锁的功能。而且ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。这篇文章主要是从源码的角度来分析一下ReentrantLock。 ReentrantLock 一、加锁 代码如下: ReentrantLock reentrantLock = new ReentrantLock(); reentrantLock.lock().
2020-09-30 17:19:33 226
翻译 APM - 使用JavaAgent+Javassit 插桩C3P0
核心思想 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" ...... 1 2 3 4 很熟悉吧,我们要插桩的这个对象就是 ComboPooledDataSource , 如何很直观的展示出来的 实时获取ComboPooledDataSource的属性信息 简洁直观的展示相关属性信息 实现第一个,那就在ComboPooledDataSource构造函数后下手,
2020-09-30 17:06:40 291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人