文章506
标签266
分类65
Java集合五-Vector

Java集合五-Vector

学完ArrayListLinkedList之后,我们接着学习Vector. 学习方式还是和之前一样,先对Vector有个整体认识,然后再学习它的源码;最后再通过实例来学会使用它:

  • Vector介绍
  • Vector数据结构
  • Vector源码解析(基于JDK11.0.4)
  • Vector遍历方式
  • Vector示例

Java集合四-LinkedList

Java集合四-LinkedList

前面,我们已经学习了ArrayList,并了解了fail-fast机制。这一章我们接着学习List的实现类——LinkedList

和学习ArrayList一样,我们先对LinkedList有个整体认识,然后再学习它的源码;最后再通过实例来学会使用LinkedList

内容包括:

  • LinkedList介绍
  • LinkedList数据结构
  • LinkedList源码解析(基于JDK11.0.4)
  • LinkedList遍历方式(整表遍历, 字表遍历, 并发遍历)

Java集合三-Iterator的Fail-Fast机制总结

Java集合三-Iterator的Fail-Fast机制总结

本篇以ArrayList为例, 总结了Java中出现的Fail-Fast(快速失败)机制

前面, 我们已经学习了ArrayList的源码. 接下来,我们以ArrayList为例,对Iterator的fail-fast机制进行了解, 内容包括:

  • fail-fast简介
  • fail-fast示例
  • fail-fast解决办法
  • fail-fast原理
  • JUC解决fail-fast的原理

Java集合二-ArrayList

Java集合二-ArrayList

在上一篇Java集合一-Collection架构,学习了Collection的架构。

这一章开始,我们对Collection的具体实现类进行讲解;首先,讲解List,而List中ArrayList又最为常用。因此,本章我们讲解ArrayList。先对ArrayList有个整体认识,再学习它的源码,最后再通过例子来学习如何使用它。内容包括:

  • ArrayList简介
  • ArrayList数据结构
  • ArrayList源码解析(基于JDK11.0.4)
  • ArrayList遍历方式(完整遍历, 子列表遍历, 并发遍历)
  • toArray()异常

Java集合一-Collection架构

Java集合一-Collection架构

本篇总结了Java中提供的集合类的相关知识, 即java.util.*包中的集合类.


为什么在Java中String被设计为不可变

为什么在Java中String被设计为不可变

最近在学习新的编程语言Scala了, 在Scala中变量分为val(不可变类型), 和var(可变类型). 突发奇想想到了在Java中的String都被声明为final, 也就相当于是Scala中都被声明为val了吧! 但是具体是为什么呢? 本篇文章带你探寻在Java中String被声明为不可变背后的秘密!

本篇文章主要内容:

  • String源码简单分析
  • String在JVM中的常量池的解析: 字面量, new, +连接, intern()
  • String中的==和equals
  • 什么是Java中的不可变? 不可变的好处与坏处?
  • 证明回答String被设计成不可变和不能被继承的原因
  • ……

示例代码: https://github.com/JasonkayZK/Java_Samples/tree/java-string