04 2018 档案

摘要:HashMap源码分析 HashMap的底层实现是面试中问到最多的,其原理也更加复杂,涉及的知识也越多,在项目中的使用也最多。因此清晰分析出其底层源码对于深刻理解其实现有重要的意义,jdk1.8之后其设计与实现也有所改变。 在Java集合类中最常用的除了ArrayList外,就是HashMap了。J 阅读全文
posted @ 2018-04-18 18:44 冬日降临 阅读(1672) 评论(1) 推荐(1)
摘要:LinkedList源码分析 LinkedList也和ArrayList一样实现了List接口,但是它执行插入和删除操作时比ArrayList更加高效,因为它是基于链表的。基于链表也决定了它在随机访问方面要比ArrayList逊色一点。除此之外,LinkedList还提供了一些可以使其作为栈、队列、 阅读全文
posted @ 2018-04-17 23:33 冬日降临 阅读(356) 评论(0) 推荐(0)
摘要:Vector源码解析 首先说一下Vector和ArrayList的区别: (1) Vector的所有方法都是有synchronized关键字的,即每一个方法都是同步的,所以在使用起来效率会非常低,但是保证了线程安全;而ArrayList的全部方法都是非同步的,所以相对Vector的效率会更高,所以它 阅读全文
posted @ 2018-04-17 21:52 冬日降临 阅读(229) 评论(0) 推荐(0)
摘要:ArrayBlockingQueue源码解析 ArrayBlockingQueue是一个阻塞式的队列,继承自AbstractBlockingQueue,间接的实现了Queue接口和Collection接口。底层以数组的形式保存数据(实际上可看作一个循环数组)。常用的操作包括 add ,offer,p 阅读全文
posted @ 2018-04-17 21:19 冬日降临 阅读(324) 评论(0) 推荐(0)
摘要:ArrayList源码分析 ArrayList就是动态数组,是Array的复杂版本,它提供了动态的增加和减少元素、灵活的设置数组的大小。 一、类声明 1)AbstractList提供了List接口的默认实现。 2)List接口定义了列表必须实现的方法。 3)RandomAccess是一个标记接口,接 阅读全文
posted @ 2018-04-17 15:44 冬日降临 阅读(648) 评论(0) 推荐(2)
摘要:一、基础知识: 1. Java IO一般包含两个部分:1)java.io包中阻塞型IO;2)java.nio包中的非阻塞型IO,通常称为New IO。这里只考虑到java.io包中堵塞型IO; 2. Java.io包简单地分类。 2.1 Java的IO主要包含三个部分: 1)流式部分――IO的主体部 阅读全文
posted @ 2018-04-08 15:35 冬日降临 阅读(5431) 评论(0) 推荐(2)