关键词:
进程
、线程
、安全性
、活跃性
、性能
、死锁
、饥饿
、上下文切换
摘要:并发编程并非 Java 语言所独有,而是一种成熟的编程范式,Java 只是用自己的方式实现了并发工作模型。学习 Java 并发编程,应该先熟悉并发的基本概念,然后进一步了解并发的特性以及其特性所面临的问题。掌握了这些,当学习 Java 并发工具时,才会明白它们各自是为了解决什么问题,为什么要这样设计。通过这样由点到面的学习方式,更容易融会贯通,将并发知识形成体系化。
关键词:
进程
、线程
、安全性
、活跃性
、性能
、死锁
、饥饿
、上下文切换
摘要:并发编程并非 Java 语言所独有,而是一种成熟的编程范式,Java 只是用自己的方式实现了并发工作模型。学习 Java 并发编程,应该先熟悉并发的基本概念,然后进一步了解并发的特性以及其特性所面临的问题。掌握了这些,当学习 Java 并发工具时,才会明白它们各自是为了解决什么问题,为什么要这样设计。通过这样由点到面的学习方式,更容易融会贯通,将并发知识形成体系化。
JDK8 升级常见问题章节是我个人的经验整理。其他内容基本翻译自 java8-tutorial
📦 本文以及示例源码已归档在 javacore
关键词:
Stream
、lambda
、Optional
、@FunctionalInterface
enum
的全称为 enumeration, 是 JDK5 中引入的特性。
在 Java 中,被 enum
关键字修饰的类型就是枚举类型。形式如下:
1 | enum ColorEn { RED, GREEN, BLUE } |
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。几乎所有程序设计语言都支持数组。
数组代表一系列对象或者基本数据类型,所有相同的类型都封装到一起,采用一个统一的标识符名称。
Throwable
是 Java 语言中所有错误(Error
)和异常(Exception
)的超类。在 Java 中只有 Throwable
类型的实例才可以被抛出(throw
)或者捕获(catch
),它是异常处理机制的基本组成类型。
Throwable
包含了其线程创建时线程执行堆栈的快照,它提供了 printStackTrace()
等接口用于获取堆栈跟踪数据等信息。
本文内容基于 JDK8。注解是 JDK5 引入的,后续 JDK 版本扩展了一些内容,本文中没有明确指明版本的注解都是 JDK5 就已经支持的注解。
Java 中,注解是以 @
字符开始的修饰符。如下:
List
是Collection
的子接口,其中可以保存各个重复的内容。
List
是一个接口,它继承于 Collection
的接口。它代表着有序的队列。
AbstractList
是一个抽象类,它继承于 AbstractCollection
。AbstractList
实现了 List
接口中除 size()
、get(int location)
之外的函数。
AbstractSequentialList
是一个抽象类,它继承于 AbstractList
。AbstractSequentialList
实现了“链表中,根据 index 索引值操作链表的全部函数”。