源码debug
naget
Java技术微信公众号:Vegout
展开
-
spring源码中的aspects包无效,debug之路何去何从?(总结spring源码debug环境搭建步骤)
前言:原来根据其他博文搭建了spirng源码debug环境,可惜的是aspects包在idea中不能完成编译,只能unload,但是这样做了之后,就不能debug源码的aop部分,于是有了这篇博客。 1. 下载源码 预编译oxm模块 导入idea自动构建 将aspects包unload 5.自己新建一个module,用来编写demo 我新建的demo是maven...原创 2018-05-24 13:31:59 · 6844 阅读 · 0 评论 -
浅析ClassLoader的双亲委派
小引public class Demo { public static void main(String[] args) { System.out.println(Demo.class.getClassLoader().toString()); }}输出sun.misc.Launcher$AppClassLoader@18b4aac2小n:都说java...原创 2018-10-05 17:28:38 · 257 阅读 · 0 评论 -
JDK1.8HashMap源码解析
数据结构JDK1.8中的HashMap采用了数组加链表加红黑树的数据结构,就像这样:每当插入一个元素的时候,就会对这个元素的键的Hash值按此时的数组长度取模,然后装入对应的位置。比如一个hash值为14的元素插入一个table长度为16的hashmap中,14对16取模是14,于是就装入14这个位置。不同的元素取模之后发生碰撞,比如30对16取模也等于14,这样也需要放入14的位置,于是就...原创 2018-09-29 16:52:31 · 682 阅读 · 0 评论 -
浅谈java线程池(基于jdk1.8)
多线程让程序世界丰富多彩,也让其错综复杂。对于线程的创建和销毁成了一笔不小的开销,为了减少这些开销,出现了线程池。线程池对线程进行管理,对于需要使用多线程的你来说,只需要把你的任务丢给线程池就可以了。当你把任务丢给线程池的时候,它是如何处理的呢?我们去源码中寻找踪迹。ThreadPoolExecutor线程池在JDK中的主要实现类就是这个ThreadPoolExecutor。我们首先看一下他的...原创 2018-10-09 14:09:44 · 274 阅读 · 0 评论 -
ThreadLocal详解
保证线程安全一是可以同步对共享资源的操作和访问,二是不共享。就像ThreadLocal这样,给每个线程分一个对象,每个线程也只能访问到自己的这个对象,从而保证线程安全。就像SimpleDateFormat这个类,咋也没想到它是线程不安全的,既然线程不安全我们就给每一个线程都实例化一个SimpleDateFormat,自己用自己的就安全了,ThreadLocal就给我们实现了分配线程私有对象这么个功...原创 2018-10-19 14:46:15 · 196 阅读 · 0 评论