Bitset

A bit array (also known as bit map, bit set, bit string, or bit vector) 是一种能够紧凑地存储位的数组。位数组可以被用来实现简单的集合。它能够通过硬件中位级别的并行运算快速操作。

在Java里,可以通过BitSet构造位数组,这种位数组可以通过C程序员熟悉的位运算的名字操作。不像C++里的bitset,Java里的BitSet不限制大小,在初始化的时候就有无穷位初始为0的位元;可以在任意的索引设定或取值。附加地,Java里还有一个EnumSet类,EnumSet作为位数组表示一个枚举里元素的集合,是位段的一个较安全的选择。

BitSet API 使用了基本数字数据类型和按位运算的组合。

EnumSet 内部实现是 bit vector

SSO 单点登录

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一退出(single sign-off)就是指,只需要单一的退出动作,就可以结束对于多个系统的访问权限。

Shell

Shell(也称为壳层)在计算机科学中指“为用户提供用户界面”的软件,通常指的是命令行界面的解析器。一般来说,这个词是指操作系统中提供访问内核所提供之服务的程序。Shell也用于泛指所有为用户提供操作界面的程序,也就是程序和用户交互的层面。因此与之相对的是内核(英语:Kernel),内核不提供和用户的交互功能。

B 树

在计算机科学中,B树(英语:B-tree)是一种自平衡的树,能够保持数据有序。这种数据结构能够让查找数据、顺序访问、插入数据及删除的动作,都在对数时间内完成。B树,概括来说是一个一般化的二叉查找树(binary search tree)一个节点可以拥有2个以上的子节点。与自平衡二叉查找树不同,B树适用于读写相对大的数据块的存储系统,例如磁盘。B树减少定位记录时所经历的中间过程,从而加快存取速度。B树这种数据结构可以用来描述外部存储。这种数据结构常被应用在数据库和文件系统的实现上。

鲁道夫·拜尔(Rudolf Bayer)和 艾华·M·麦克雷(Ed M. McCreight)于1972年在波音研究实验室(Boeing Research Labs)工作时发明了 B 树,但是他们没有解释B代表什么意义。

CountDownLatch CyclicBarrier Semaphore

java.util.concurrent 包下,利用 CountDownLatch 它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CyclicBarrier `回环屏障`,通过它可以实现让一组线程等待至某个状态之后再全部同时执行。叫做回环是因为当所有等待线程都被释放以后,CyclicBarrier可以被重用。暂且把这个状态就叫做barrier,当调用 `await()` 方法之后,线程就处于barrier了。

Comparator

Java 8 中引入的 Comparator.naturalOrder() 方法返回一个比较器,该比较器以自然顺序比较可比较对象。 对于自然排序,一个类需要实现Comparable并定义compareTo方法。 一个对象的集合根据compareTo方法以自然排序进行排序。 像Integer、String和Date这样的Java类实现了Comparable接口并覆盖了其compareTo方法,它们以词表顺序(lexicographic-order)进行排序。

为了扭转自然排序,我们可以使用Comparator.reverseOrder方法。

与Stream.sorted、Collections.sort、List.sort和Arrays.sort一起对对象的集合进行自然排序。

Exception

异常的英文单词是 exception,异常本质上是程序上的错误,包括程序逻辑错误和系统错误。比如使用空的引用、数组下标越界、内存溢出错误等,这些都是意外的情况,背离我们程序本身的意图。

Java 提供了几个异常处理特性,以try,catch 和 finally 关键字的形式内建于语言自身之中。Java 编程语言也允许创建新的自定义异常,并通过使用 throw 和 throws关键字抛出它们。在Java编程中,Java 的异常处理不单单是知道语法这么简单,它必须遵循标准的 JDK 库,和处理错误和异常的开源代码。