摘要: 今天在eclipse中debug看springmvc的流程时,发现方法看不了,一直显示“source not found”。以前虽然也遇到过,不过由于不涉及到核心方法就没在意,于是今天就搜索了一下解决方法。 1.设置自动下载源码 在eclipse的maven工程中,一般是不能是不能查看源码的,因此需 阅读全文
posted @ 2018-08-01 16:41 zhangdapao 阅读(3361) 评论(0) 推荐(1) 编辑
摘要: 题目不难,被第二题卡了半个多小时QAQ,另一个就是以后能用Hashmap和Hashset的绝不遍历。 1. Leaf-Similar Trees dfs、层次遍历把叶子节点遍历然后对比即可,只要是先遍历左节点后遍历右节点就行。 874. Walking Robot Simulation 被这题卡了好 阅读全文
posted @ 2018-07-22 20:59 zhangdapao 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 前言 之前我们将ReentranLock从锁层面到AQS源码层面分析了如何构建一个所需的同步器,使用AQS需要实现哪些方法。ReentranLock的CLH队列中每个节点都是独占(EXCLUSIVE)的,那么节点的另一种等待方式——共享(SHARED)又将是什么样子的呢?本篇博客让我们通过另一个同步 阅读全文
posted @ 2018-07-18 17:08 zhangdapao 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 上一篇我们讲到了ReentrantLock通过使用AQS框架实现了tryAcquire、tryRelease方法,从ReentrantLock层面分析源码,本次我们将进一步深入AQS类,查看AQS底层是如何实现线程同步的。 1.acquire() 首先自然从加锁开始看起,从lock.lock调用AQ 阅读全文
posted @ 2018-07-17 22:25 zhangdapao 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 又是周末,leetcode周赛,菜鸡下定决心要AK一次,然后失败了,周常三题QAQ。 1.Binary Gap 第一题给一个数字,让你找数字的二进制中相邻的1最大距离是多少,直接扫描一遍就好啦。 2.Binary Gap 第二题也不难,找到与所给的数字位数相同的2^n次方数,然后比较所给的数字构成是 阅读全文
posted @ 2018-07-15 11:56 zhangdapao 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 离上一篇AQS概述已经很久惹,期间也看了一点ReentrantLock、CountdownLantch等的源码,不过并没有看的很深入,也没有把我的理解都记录下来。今天简单的看过线程池之后,就准备对ReentrantLock做一个源码分析,来看看这个lock是怎么做到让多个线程同步的。本文主要是Ree 阅读全文
posted @ 2018-07-15 00:42 zhangdapao 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 自从看了《JAVA并发编程实战》,最吸引我的除了AQS构造的一系列同步器以外,就是线程池了,今天就来讲讲JAVA的线程池。 1.构造方法以及主要参数 之前我翻源码是从成员变量看起,不过由于ThreadPoolExecutor的变量有点小多,那么就先从构造方法开始。先找到下面那个最全的构造器: 1 / 阅读全文
posted @ 2018-07-14 20:23 zhangdapao 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 今天看到一个很有意思的问题,如何输出一个程序自己的源码,看到这个问题的第一反应自然是读取源码文件,然后逐行输出即可。 但是,如果加上限制条件不能读取文件呢? emmm...思考许久之后,WIKI解救了我,以下内容皆摘自wiki。先上源码。 程序前半部分是java运行必须的前缀,再添加一个变量q(内容 阅读全文
posted @ 2018-07-11 23:52 zhangdapao 阅读(695) 评论(0) 推荐(0) 编辑
摘要: emm,两天打的周赛,万年三题qaq,不过这次题目好像比上次的难一丢丢。 1.Transpose Matrix 把矩阵A[i][j]的每个元素改成B[j][i],超级超级大水题,然后wa了两发qaq。 2. Smallest Subtree with all the Deepest Nodes 一开 阅读全文
posted @ 2018-07-10 19:43 zhangdapao 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 前言: ArrayList底层是依靠数组实现的,而LinkedList的实现是含前驱后继节点的双向列表。平时刷题时会经常使用到这两个集合类,这两者的区别在我眼中主要是ArrayList读取节点平均时间复杂度是O(1)级别的,插入删除节点是O(n);LinkedList读取节点时间复杂度是O(n),插 阅读全文
posted @ 2018-07-08 01:34 zhangdapao 阅读(1232) 评论(0) 推荐(0) 编辑