Java并发知识体系

Java 并发是与硬件息息相关的。Java 线程由操作系统管理,而操作系统又是运行在 CPU 之上的。

并发知识点

  • Java 并发领域介绍
  • volatile 关键字的应用场景与原理剖析
  • synchronized 关键字的底层原理深入剖析
  • Lock 原理深入剖析
  • 何为原子操作以及原子操作的原理深入剖析
  • 锁与锁原理深入剖析
  • 锁框架详解
  • 读写锁与重入锁分析
  • 内存屏障详解
  • Completion Service 详解
  • 重排序详解
  • Fork-Join API 详解
  • 一致性语义深入解读
  • 资源死锁详解
  • synchronized 与 ReetranLock 详细对比
  • happen-benfore 语义的含义讲解
  • Java 内存模型深入详解
  • Exector 框架深入解读
  • ThreadLocal 原理与底层源码深入解读
  • Java concurrent 包重要且核心组件深入详解
  • CountDownLatch 详解
  • CycilcBarrier 解读
  • 线程间同学方式详解
  • CPU Cache 模型详解
  • JMM 的有序性、可见性与原子性详解
  • Java 线程池深入剖析
  • Future 模式深入详解
  • CAS 深入剖析
  • JVM 对 CAS 的支持
  • 其他并发分析工具详解

Terwer...大约 2 分钟并发新思路新笔记详解深入剖析原理解读java并发concurrent
LinkedList源代码深入剖析

集合框架中的接口

  • 除了类集接口之外,类集也是用 Comparator , Iterator 和 ListIterator 接口。

  • 简单地说, Comparator 接口定义了两个对象如何比较;Iterator 和 ListIterator 接口枚举类集中的对象。

  • 为了在他们的使用中提供最大的灵活性,类集接口允许对一些方法进行选择。可选择的方法使得使用者可以更改类集中的内容。支持这些方法额类集被称为可修改的(modifiable)。不允许修改其内容的类集被称为不可修改的(unmodifiable)。如果对一个不可修改发类集使用这些方法,将引发一个 UnsupportedOperationException 异常。 所有内置的类集都是可修改的

  • 调用 add()​​​ 方法可以将对象加入类集,注意 add() 带一个 Object 类的参数。因为 Object 是所有类的超类,所以任何类型的对象都可以被存储在一个类集中。然而原始类型 不行 。例如,一个类集不能直接存储类型 int ,char , double 等的值。如果想存储这些对象,也可以使用原始类型包装器。

    可以调用 addAll()​​​ 方法将一个类集的全部内容增加到另一个类集中。

  • 可以通过调用 remove()​​​ 方法将一个对象删除。为了删除一组对象,可以调用 removeAll()​​​ 方法。调用 retainAll()​​​ 方法可以将除了一组指定的元素之外的所有元素删除。为了清空类集,可以调用 clear()​​​ 方法。

  • 通过调用 contains()​​​ 方法可以确定一个类集中是否包含了一个指定的对象。

  • 为了确定一个类集是否包含了另一个类集的全部元素,可以调用 contsinsAll()​​ 方法。

  • 当一个类集是空的时候,可以通过调用 isEmpty()​​ 方法来予以确定。

  • 调用 size()​​ 方法可以获得类集中当前元素的个数。

  • toArray()​ 方法返回一个数组,这个数组包含了存储在调用类集中的元素。通过再类集合数组之间提供一条路径,可以充分利用这两者的优点。

  • 一个更加重要的方法是 iterator()​ ,该方法对类集返回一个迭代程序。当使用一个类集框架时,迭代程序对于成功的编程来说是至关重要的。

  • Collection​ :集合层次中的根接口,JDK 没有提供这个接口的直接实现类。

  • Set​ :不能包含重复的元素。SortedSet​ 是一个按照升序排列元素的 Set​ 。

  • List​ :是一个有序的集合,可以包含重复的元素。提供了按照索引访问的方式。

  • Map​ :包含了 key-value 对。Map 不能包含重复的 key 。SortedMap​ 是一个按照升序排列 key 的 Map​ 。


Terwer...大约 9 分钟后端开发JavaSE方法元素调用集合javalinkedlistcollection
常用的Java开发IDE

IDE(Integrated Development Environment),集成开发环境。

  1. NetBeans。https://netbeans.org

  2. JBuilder。

  3. IntelliJ IDEA

    https://www.jetbrains.com/idea/

  4. Eclipse

    中科大 eclipse 镜像使用帮助:http://mirrors.ustc.edu.cn/help/eclipse.html#id1

    Eclipse helios 下载:https://www.eclipse.org/downloads/packages/release/helios/r

    百度网盘下载链接: https://pan.baidu.com/s/1NoeSBflyGAzqR1hEUT0bTw 请发邮件至 youweics@163.com 获取提取码

  5. MyEclipse

    MyEclipse8.6 下载地址:链接: https://pan.baidu.com/s/1XABCEUwg6NLNThgniAA1mQ 请发邮件至 youweics@163.com 获取提取码


Terwer...小于 1 分钟后端开发JavaSE集成开发环境中科大镜像eclipsejavaideajavase
常量与Java集合框架简介
  1. 对于 Java 中的常量的命名规则:所有字母的单词都是大写,如果有多个单词,那马使用下划线 _​ 连接。

    public static final int AGE_OF_PERSION = 20;

  2. Java Collection


Terwer...小于 1 分钟后端开发JavaSE常量命名规则javajavase集合collection
Java_19

Java 19 在 2022 年 9 月 20 日正式发布,Java 19 不是一个长期支持版本,直到 2023 年 3 月它将被 JDK 20 取代,这次更新共带来 7 个新功能。

主要特性

Java 19 带来的 7 个新特性:

JEP 描述
405 Record 模式匹配 (Preview)
425 虚拟线程 (预览)
427 Switch 模式匹配 (三次预览)
422 Linux/RISC-V Port
426 Vector API (四次孵化)
424 外部函数 & 内存 API (Preview)
428 Structured Concurrency (Incubator)

Terwer...大约 1 分钟后端开发JavaSEJava语言新特性下载带来特性模式匹配预览javajdkjdk19java19javase
Java_18

Java 18 在 2022 年 3 月 22 日正式发布,Java 18 不是一个长期支持版本,这次更新共带来 9 个新功能。

主要特性

OpenJDK Java 18 文档:https://openjdk.java.net/projects/jdk/18/

JEP 描述
JEP 400 默认为 UTF-8
JEP 408 简单的网络服务器
JEP 413 Java API 文档中的代码片段
JEP 416 使用方法句柄重新实现核心反射
JEP 417 Vector API(三次孵化)
JEP 418 互联网地址解析 SPI
JEP 419 Foreign Function & Memory API (二次孵化)
JEP 420 switch 模式匹配(二次预览)
JEP 421 弃用完成删除

Terwer...大约 1 分钟后端开发JavaSEJava语言新特性下载文档孵化二次javajdkjdk18java18年月日
Java_17-LTS

Java 17 发布于 2021 年 9 月 14 日。Java 17 版本是切换到新的 6 个月发布周期以来的第二个长期支持(LTS)版本(第一个是 Java 11) [285]


Terwer...大约 2 分钟后端开发JavaSEJava语言新特性下载发布版本支持封装jdkjavajdk17java17javase
Java_16

Java 16 在 2021 年 3 月 16 日正式发布,不是长久支持版本,这次更新没有带来很多语法上的改动,但是也带来了不少新的实用功能。

主要特性

Java 16 随附的 17 个 JEP 分为六个不同类别:

新语言特性

JEP 394,适用于 instanceof 的模式匹配

模式匹配(Pattern Matching)最早在 Java 14 中作为预览特性引入,在 Java 15 中还是预览特性。模式匹配通过对 instacneof 运算符进行模式匹配来增强 Java 编程语言。

模式匹配使程序中的通用逻辑(即从对象中有条件地提取组件)得以更简洁、更安全地表示。


Terwer...大约 8 分钟后端开发JavaSEJava语言新特性特性使用支持提供javajdkjdk16java16javase可以
Java_15

Java 15 在 2020 年 9 月发布,虽然不是长久支持版本,但是也带来了 14 个新功能,这些新功能中有不少是十分实用的。

主要特性

Java 15 新功能:

JEP 描述
JEP 339 爱德华曲线算法(EdDSA)
JEP 360 Sealed Classes(密封类)预览
JEP 371 Hidden Classes(隐藏类)
JEP 372 移除 Nashorn JavaScript 引擎
JEP 373 重新实现 DatagramSocket API
JEP 374 禁用和废弃偏向锁(Biased Locking)
JEP 375 instanceof 类型匹配 (二次预览)
JEP 377 ZGC: 可扩展低延迟垃圾收集器(正式发布)
JEP 378 文本块
JEP 379 Shenandoah: 低停顿时间的垃圾收集器
JEP 381 删除 Solaris 和 SPARC 端口
JEP 383 外部内存访问 API(第二个孵化器)
JEP 384 Records (二次预览)
JEP 385 废弃 RMI 激活机制

Terwer...大约 1 分钟后端开发JavaSEJava语言新特性功能预览发布废弃jdkjavajdk15java15javase
2
3
4