自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一把空心菜

The night is young

  • 博客(15)
  • 收藏
  • 关注

原创 10.Java 集合 - WeakHashMap

基本概念首先来看它的继承关系: WeakHashMap 是以弱键实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。丢弃某个键时,其条目从映射中有效地移除,因此,该类的行为与其他的 Map 实现有所不同。 需要注意的地方:nu

2016-06-30 22:25:32 803 2

原创 09.Java 集合 - LinkedHashMap

基本概念首先来看它继承关系:再来看看它的数据结构:LinkedHahMap 同 HashMap 一样,底层结构也采用了哈希表的形式。不同的是在 HashMap 中采用的是【数组+单向链表】的形式,而这里采用的是【数组+循环双链表】的形式。因此存放在 LinkedHashMap 中每个元素都被装进了循环双链表的节点中。关于循环双链表如下图所示:循环双链表由【值域+指针域】构成,指针又分为前指针,指向

2016-06-27 23:29:23 615

原创 04.Java 集合 - Stack

基本概念首先来看结构图:栈是一种先进后出的线性表,只要符合先进后出的原则的线性表都是栈。Stack 继承自 Vector ,所以是它的所有操作也是线程安全的。源码分析// 构造函数public Stack() {}// 入栈,即在列表末尾插入指定元素public E push(E item) { // 调用 Vector 方法 addElement(item); ret

2016-06-23 22:34:43 296

原创 03.Java 集合 - Vector

基本概念首先来看它结构图Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。 但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。与 ArrayList 的区别:Vector 的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步

2016-06-23 22:27:00 364

原创 08.Java 集合 - HashSet

基本概念HashSet 由哈希表(实际上是一个 HashMap 实例)支持。具体的特性与 HashMap。继承结构如下:源码分析类结构图如下1.构造函数构造函数 ①~⑤分别调用 HashMap 中对应的构造函数来实现。private transient HashMap<E, Object> map;// ①public HashSet() { map = new HashMap<E, Ob

2016-06-22 22:28:10 362

原创 07.Java 集合 - HashTable

基本概念1.结构首先来看它的继承结构:再来看看它的结构图,HashTable 是基于哈希表(hash table)实现的map。而哈希表的组成是一个数组,而数组的元素是则单向链表的首节点。2.特点线程安全,并且不允许 key 或 value 为 null 。与 HasMap 的底层结构相同,不同的是:HashMap 允许 key,value 为 null;HashMap 的初始容量必须为 2 的

2016-06-22 22:02:42 430

原创 06.Java 集合 - HashMap

基本概念首先来看它的继承结构:再来看看它的结构图,HashMap 是基于哈希表(hash table)实现的map。而哈希表的组成是一个数组,而数组的元素是则单向链表的首节点。HashMap的一些特点:线程非安全,并且允许key与value都为null值,HashTable与之相反。不保证其内部元素的顺序,而且随着时间的推移,同一元素的位置也可能改变(resize的情况) put、get操作的

2016-06-21 23:04:56 408

原创 01.Java 集合 - 概述

基本概念首先来看一张类集框架图:这里我们来分析几个接口,几乎所有的类都实现了它们。Colleciton,称为集合,是单值存放的最大父接口,它的子接口有 List,Set。List,称为列表,可以存放重复的内容。它的主要实现类有: ArrayList,LinkedList,Vector,Stack。Set,称为集,不能存放重复的内容,它的主要实现类有:HashSet,LinkedHashSet,

2016-06-19 17:13:55 368

原创 Java IO - PipedReader& PipedWriter

基本概念PipedReader& PipedWriter(管道字符输入流&管道输符字节流)是配套使用的。可以将管道输出流连接到管道输入流来创建通信管道。详细用法参见管道字节流继承关系:源码探究2.PipedReader类结构图成员变量,同 PipedInputStream,这里不再分析private static final int DEFAULT_PIPE_SIZE = 1024;boo

2016-06-16 21:56:58 468

原创 Java IO - PipedOutputStream & PipedInputStream

基本概念PipedOutputStream & PipedInputStream (管道字节输入流&管道输出字节流)是配套使用的。可以将管道输出流连接到管道输入流来创建通信管道。通常的用法是让两个线程分别操作输入输出流,由输出流向管道写入数据,然后再由输出流从管道中读取数据。不建议对这两个对象尝试使用单个线程,因为这样可能会造成该线程死锁。继承关系:实例探究1.生产者&消费者定义两个线程代

2016-06-16 21:36:42 572

原创 04.Java 多线程 - 生产者&消费者

基本概念在Java的 Object 类中有三个 fina l的方法允许线程之间进行资源对象锁的通信。分别是:wait 、notify、notifyAll。调用这些方法的当前线程必须拥有此对象的监视器(即锁),否则将会报 java.lang.IllegalMonitorStateException exception 异常。原理分析首先来看 Object 的结构:1.waitObject的 wait

2016-06-07 21:28:26 283

原创 03.Java 多线程 - synchronized

基本概念定义:synchronized,字面的意思是同步,也称为锁。在 java 中,每一个对象有且仅有一个同步锁。作用:保证一段代码,准确来讲是代码访问的某个对象或类(也可以理解为该类的所有对象)同时间只能有一个线程(单线程)运行。不同线程对同步锁的访问是互斥的。也就是说,某时间点,对象的同步锁只能被一个线程获取到。通过同步锁,我们就能在多线程中,实现对“对象/方法”的互斥访问。解释:好比有

2016-06-07 21:12:53 391

原创 01.Java 多线程 - 实例

实现实现多线程常见的两种方式是:Thread 和 Runnable。1.Runnable定义:它是一个接口,定义了一个名为 run 的抽象方法。源码如下:public interface Runnable { public abstract void run();}实现方式:实现接口,调用 Thread 的 start 方法启动线程。class MyRunnable impleme

2016-06-06 20:48:04 338

原创 Java IO - DataInputStream&DataOutputStream

基本概念DataInputStream 数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。DataOutputStream 数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。 实例探究注意:写入的顺序要和读取的顺序一致public cl

2016-06-02 20:32:04 375

原创 Java IO - FileInputStream&FileOutputStream

基本概念FileInputStream 从文件系统中的某个文件中获得输入字节FileOutputStream 文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。文件是否可用或能否可以被创建取决于基础平台。特别是某些平台一次只允许一个 FileOutputStream(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将

2016-06-01 21:30:17 522

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除