摘要:
一、前言 有了前面分析的基础,现在,接着分析CyclicBarrier源码,CyclicBarrier类在进行多线程编程时使用很多,比如,你希望创建一组任务,它们并行执行工作,然后在进行下一个步骤之前等待,直至所有的任务都完成,和join很类似,下面,开始分析源码。 二、CyclicBarrier数 阅读全文
摘要:
一、前言 在分析了AbstractQueuedSynchronier源码后,接着分析ReentrantLock源码,其实在AbstractQueuedSynchronizer的分析中,已经提到过ReentrantLock,ReentrantLock表示下面具体分析ReentrantLock源码。 二 阅读全文
摘要:
一、前言 京东的一道笔试题,大意如下。 小东与其他人玩游戏,每个人都有候选票,投票票数最多的人获胜,在投票之前可以预测每个人有多少票,请问小东最少需要从别人那里拉多少票才能保证她获胜,拉完票之后其他人的票数可能为0。 如有如下输入: 2 1 4 第一行表示总共有两个候选人,并且小东的预测票数为1,另 阅读全文
摘要:
1. Description One way to serialize a binary tree is to use pre-order traversal. When we encounter a non-null node, we record the node's value. If it 阅读全文
摘要:
一、前言 操作系统的重要性不言而喻,学习操作系统对我们理解计算机的工作流程是非常有利的,也很有利于我们学习掌握其他语言,因为语言中的很多概念都是直接和操作系统相关的,学好操作系统就是基础中的基础,所以,很有必要好好掌握操作系统这门基础知识。 二、何为操作系统 操作系统(OS,Operating Sy 阅读全文
摘要:
一、前言 在锁框架中,AbstractQueuedSynchronizer抽象类可以毫不夸张的说,占据着核心地位,它提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。所以很有必要好好分析。 二、AbstractQueuedSynchronizer数据结构 分析类,首先就要分析 阅读全文
摘要:
1. Description Given a list of airline tickets represented by pairs of departure and arrival airports [from, to], reconstruct the itinerary in order. 阅读全文
摘要:
1. Description Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the array. Formally the function should: 阅读全文
摘要:
1. Description You are given an array x of n positive numbers. You start at point (0,0) and moves x[0] metres to the north, then x[1] metres to the we 阅读全文
摘要:
一、题目描述 腾讯实习在线笔试的一道题目。 根据输入的数字(< 1000),输出这样的"蛇形"矩阵,如下。输入n,输出(n * n)阶矩阵,满足由外到内依次增大。 如: 输入2,则输出如下矩阵 1 2 4 3 输入3,则输出如下矩阵 1 2 3 8 9 4 7 6 5 输入4,则输出如下矩阵 1 2 阅读全文
摘要:
1. Description The thief has found himself a new place for his thievery again. There is only one entrance to this area, called the "root." Besides the 阅读全文
摘要:
1. Description Given a list of unique words. Find all pairs of distinct indices (i, j) in the given list, so that the concatenation of the two words, 阅读全文
摘要:
1. Description Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1's in their binary repre 阅读全文
摘要:
一、前言 最开始打算分析ReentrantLock,但是分析到最后,发现离不开LockSuport的支持,所以,索性就先开始分析LockSupport,因为它是锁中的基础,是一个提供锁机制的工具类,所以先对其进行分析。 二、LockSupport源码分析 2.1 类的属性 public class 阅读全文
摘要:
集合框架源码分析框架目录如下 1. 【集合框架】Java集合框架综述 2. 【集合框架】JDK1.8源码分析之HashMap(一) 3. 【集合框架】JDK1.8源码分析之LinkedHashMap(二) 4.【集合框架】JDK1.8源码分析之HashMap & LinkedHashMap迭代器(三 阅读全文
摘要:
一、前言 在分析完了集合框架后,很有必要接着分析java并发包下面的源码,JUC(java.util.concurrent)源码也是我们学习Java迈进一步的重要过程。我们分为几个模块进行分析,首先是对锁模块的分析。 二、锁框架图 在Java并发中,锁是最重要的一个工具,因为锁,才能实现正确的并发访 阅读全文
摘要:
JVM学习目录 为了方便园友,现对JVM序列笔记做了归档,园友们可以一口气读完整个JVM的笔记 1. 【JVM】JVM系列之JVM体系(一) 2. 【JVM】JVM系列之垃圾回收(二) 3. 【JVM】JVM系列之Class文件(三) 4. 【JVM】JVM系列之类加载机制(四) 5. 【JVM】J 阅读全文
摘要:
一、前言 在我们平时写代码的时候,免不了会使用到随机数,特此将几种随机的生成总结如下。 二、随机数生成 对于随机数的生成,分为四种情况,假设两个数为min, max,则有如下四种情况。 1. (min, max),表示生成的随机数不包括min和max。 2. [min, max),表示生成的随机数包 阅读全文
摘要:
一、前言 复习Java基础知识点的序列化与反序列化过程,整理了如下学习笔记。 二、为什么需要序列化与反序列化 程序运行时,只要需要,对象可以一直存在,并且我们可以随时访问对象的一些状态信息,如果程序终止,那么对象是肯定不会存在的,但是有时候,我们需要再程序终止时保存对象的状态信息,之后程序再次运行时 阅读全文
摘要:
一、前言 整个集合框架的常用类我们已经分析完成了,但是还有两个工具类我们还没有进行分析。可以说,这两个工具类对于我们操作集合时相当有用,下面进行分析。 二、Collections源码分析 2.1 类的属性 public class Collections { // 二分查找阈值 private st 阅读全文
摘要:
一、前言 有位同学面试的时候被问到shuffle函数的实现,他之后问我,我知道这个函数怎么用,知道是对数组(或集合)中的元素按随机顺序重新排列。但是没有深入研究这个是怎么实现的。现在直接进入JDK源码进行分析。 二、源码分析 shuffle函数的源码如下 说明:从源码可知,进行shuffle时候,是 阅读全文
摘要:
一、前言 继上一篇写完字节编码内容后,现在分析在Java中各字符编码的问题,并且由这个问题,也引出了一个更有意思的问题,笔者也还没有找到这个问题的答案。也希望各位园友指点指点。 二、Java字符编码 直接上代码进行分析似乎更有感觉。 public class Test { public static 阅读全文
摘要:
一、前言 在解决昨天的问题时,又引出了很多新的问题,如为什么要进行编码,这些编码的关系如何,如ASCII,IOS-8859-1,GB2312,GBK,Unicode之间的关系,笔者想要彻底理解字符编码背后的故事,遂进行了探索,具体笔记如下。如园友能读完本篇文章,我相信会解开很多疑惑。 二、字符编码 阅读全文
摘要:
一、前言 在分析Comparable和Comparator的时候,分析到了String类的compareTo方法,String底层是用char[]数组来存放元素,在比较的时候是比较的两个字符串的字符,字符用char来存储,此时,突然想到,Java里面的char可以存放中文吗?后来发现是可以的,并且由 阅读全文
摘要:
一、前言 在Java集合框架里面,各种集合的操作很大程度上都离不开Comparable和Comparator,虽然它们与集合没有显示的关系,但是它们只有在集合里面的时候才能发挥最大的威力。下面是开始我们的分析。 二、示例 在正式讲解Comparable与Comparator之前,我们通过一个例子来直 阅读全文