JAVA源码-LinkedList源码分析

本文的分析基于Java 1.8源码。

上篇分析了ArrayList的源码,点击这里:ArrayList源码解析
这篇将从构造方法、增删改查、遍历角度分析LinkedList源码。

LinkedList是基于链表实现的List。老规矩,先看看类图

LinkedList

同ArrayList,LinkedList也是继承自AbstractList类,是Collection的子类之一,同时实现了Serializable、Cloneable接口,这就意味着:它支持序列化,能被克隆。与ArrayList不同的是,它并没有实现RandomAccess接口,也就是它不能通过下标随机访问。

与ArrayList最大的区别是,LinkedList实现了Deque接口。因此LinkedList不仅有List的特性,也有Queue的特性。

阅读更多

JAVA源码-ArrayList源码分析

本文的分析基于Java 1.8源码。

ArrayList是线性表的实现之一,也是我们平常开发中用的最多的一种容器类。

今天就讲讲其源码实现。

先来看看其类图。

ArrayList类图

可以看到其继承自AbstractList类,也是Collection的子类之一,同时实现了Serializable、Cloneable、RandomAccess接口。

  1. 实现Serializable接口:支持序列化
  2. 实现Cloneable接口:能被克隆
  3. 实现RandomAccess接口:可以通过下标随机访问

阅读更多

JAVA-理解多态


前言

  面向对象有三大特征:封装、继承、多态。
封装隐藏了类的内部实现机制,可以在不影响使用者的前提下改变类的内部结构,继承是为了重用父类代码,而多态呢?今天我就谈谈自己对多态的理解。

多态

  多态是指同一消息可以根据发送对象的不同而采用多种不同的行为方
式。多态具有以下几个优点:

  1. 消除类型之间的耦合关系
  2. 可替换性
  3. 可扩充性
  4. 接口性
  5. 灵活性
  6. 简化性

多态存在的三个必要条件:继承、重写、父类引用指向子类对象

阅读更多