首页 > 编程语言 >读Java实战(第二版)笔记11_语言特性和类库更新

读Java实战(第二版)笔记11_语言特性和类库更新

时间:2023-02-16 06:55:21浏览次数:54  
标签:类库 11 Java Comparator 对象 给定 注解 静态方法 方法

1. 注解

1.1. 一种使用附加信息装饰程序元素的机制

1.2. Java 8之前,只有声明可以被注解

1.3. 一种语法元数据(syntactic metadata)

1.4. 可以用于文档编制

1.4.1. @Deprecated注解被广泛应用于说明某个方法不再推荐使用

1.5. 依据注解检测错误

1.6. 依据注解禁止报警输出

1.7. 依据注解能生成代码

2. 重复注解

2.1. 老版的Java禁止对同一个声明使用多个同类的注解

2.1.1. 声明一个新的注解,它包含了你希望重复的注解数组

2.2. 一个注解在设计之初就是可重复的,那么你可以直接使用它

2.2.1. 将注解标记为@Repeatable

2.2.2. 提供一个注解的容器

        @Repeatable(Authors.class)
        @interface Author { String name(); }
        @interface Authors {
            Author[] value();
        }

3. 类型注解

3.1. 应用于任何类型

3.1.1. new操作符

3.1.2. 类型转换

3.1.3. instanceof检查

3.1.4. 泛型类型参数

3.1.5. implements子句

3.1.6. 和throws子句

3.2. Checker框架

3.2.1. 定义了多种类型注解

3.2.2. 增强类型检查

3.2.3. checkerframework.org

4. 通用目标类型推断

4.1. 目标类型包括向方法传递的参数

4.2. 对泛型参数的推断进行了增强

4.2.1. 可以推断泛型参数的类型

5. Map

5.1. getOrDefault

5.1.1. 替换现在检测Map中是否包含给定键映射的惯用方法

5.1.2. 不存在这样的键映射,你可以提供一个默认值,方法会返回该默认值

5.2. computeIfAbsent

5.2.1. 非常方便地使用缓存模式

6. 集合

6.1. removeIf

6.1.1. 移除集合中满足某个谓词的所有元素

6.2. Stream API中的filter方法

6.2.1. 产生一个新的流,不会对当前作为数据源的流做任何变更

7. 列表

7.1. replaceAll

7.1.1. 对列表中的每一个元素执行特定的操作,并用处理的结果替换该元素

7.2. Stream中的map方法

7.2.1. 会生成新的元素

8. Collections类

8.1. NavigableMap

8.2. NavigableSet

8.3. checkedQueue

8.3.1. 返回一个队列视图,可以扩展进行动态类型检查

9. Comparator接口

9.1. reversed

9.1.1. 对当前的Comparator对象进行逆序排序,并返回排序之后新的Comparator对象

9.2. thenComparing

9.2.1. 当两个对象相同时,返回使用另一个Comparator进行比较的Comparator对象

9.3. thenComparingInt

9.4. thenComparingDouble

9.5. thenComparingLong

9.6. 针对基本数据类型

9.6.1. ToIntFunction

9.6.2. ToDoubleFunction

9.6.3. ToLongFunction

9.7. 实例方法

9.8. comparingInt

9.9. comparingDouble

9.10. comparingLong

9.11. 针对基本数据类型

9.11.1. ToIntFunction

9.11.2. ToDoubleFunction

9.11.3. ToLongFunction

9.12. naturalOrder

9.12.1. 对Comparable对象进行自然排序,返回一个Comparator对象

9.13. nullsFirst、nullsLast

9.13.1. 对空对象和非空对象进行比较,你可以指定空对象(null)比非空对象(non-null)小或者比非空对象大,返回值是一个Comparator对象

9.14. reverseOrder

9.14.1. 和naturalOrder().reversed()方法类似

9.15. 静态方法

10. 原子操作

10.1. java.util.concurrent.atomic包

10.2. getAndUpdate

10.2.1. 以原子方式用给定的方法更新当前值,并返回变更之前的值

10.3. updateAndGet

10.3.1. 以原子方式用给定的方法更新当前值,并返回变更之后的值

10.4. getAndAccumulate

10.4.1. 以原子方式用给定的方法对当前及给定的值进行更新,并返回变更之前的值

10.5. accumulateAndGet

10.5.1. 以原子方式用给定的方法对当前及给定的值进行更新,并返回变更之前的值

10.6. Adder

10.6.1. 尽量避免使用它们对应的原子类型

10.6.2. 支持加法操

10.6.3. LongAdder

10.6.4. DoubleAdder

10.7. Accumulator

10.7.1. 尽量避免使用它们对应的原子类型

10.7.2. 可以使用给定的方法整合多个值

10.7.3. LongAccumulator

10.7.4. DoubleAccumulator

11. ConcurrentHashMap

11.1. 允许并发地进行新增和更新操作

11.2. forEach

11.2.1. 对每个键值对进行特定的操作

11.3. reduce

11.3.1. 使用给定的精简函数(reduction function),将所有的键值对整合出一个结果

11.4. search

11.4.1. 对每一个键值对执行一个函数,直到函数的返回值为一个非空值

11.5. 使用键和值的操作

11.5.1. forEach

11.5.2. reduce

11.5.3. search

11.6. 使用键的操作

11.6.1. forEachKey

11.6.2. reduceKeys

11.6.3. searchKeys

11.7. 使用值的操作

11.7.1. forEachValue

11.7.2. reduceValues

11.7.3. searchValues

11.8. 使用Map.Entry对象的操作

11.8.1. forEachEntry

11.8.2. reduceEntries

11.8.3. searchEntries

11.9. 不会对ConcurrentHashMap的状态上锁

11.9.1. 只会在运行过程中对元素进行操作

11.9.2. 应用到这些操作上的函数不应该对任何的顺序,或者其他对象,抑或在计算过程发生变化的值,有依赖

11.10. mappingCount

11.10.1. 以长整型long返回map中映射的数目

11.10.2. 尽量使用这个新方法

11.10.2.1. 映射的数量可能是int无法表示的

11.11. KeySet

11.11.1. 以Set的形式返回ConcurrentHashMap的一个视图(对map的修改会反映在该Set中,反之亦然)

11.12. newKeySet

11.12.1. 由ConcurrentHashMap创建一个Set

12. Arrays

12.1. parallelSort

12.1.1. 以并发的方式对指定的数组进行排序

12.1.2. 可以使用自然顺序

12.1.3. 可以为数组对象定义特别的Comparator

12.2. setAll和parallelSetAll

12.2.1. 以顺序的方式也可以用并发的方式,使用提供的函数计算每一个元素的值,对指定数组中的所有元素进行设置

12.2.2. parallelSetAll需要并发执行,因此提供的函数必须没有任何副作用

12.3. parallelPrefix

12.3.1. 以并发的方式,利用用户提供的二进制操作符对给定数组中的每个元素进行累积计算

13. Number

13.1. Short、Integer、Long、Float和Double类

13.1.1. 静态方法sum、min和max

13.2. Integer和Long类

13.2.1. compareUnsigned、divideUnsigned、remainderUnsigned和toUnsignedString方法来处理无符号数

13.2.2. 静态方法parseUnsignedInt和parseUnsigned-Long将字符解析为无符号int或者long类型

13.2.3. Integer类提供了静态方法toUnsignedLong

13.3. Byte和Short类

13.3.1. toUnsignedInt和toUnsignedLong方法通过无符号转换将参数转化为int或者long类型

13.4. Double和Float类

13.4.1. 静态方法isFinite,可以检查参数是否为有限浮点数

13.5. Boolean类

13.5.1. 静态方法logicalAnd、logicalOr和logicalXor,可以在两个boolean之间执行and、or和xor操作

13.5.2. byteValueExact、shortValueExact、intValueExact和longValueExact,可以将BigInteger类型的值转换为对应的基础类型

14. Math

14.1. 使用int和long参数的addExact、subtractExact、multipleExact、incrementExact、decrementExact和negateExact

14.1.1. 新的方法可以抛出算术异常

14.2. 静态方法toIntExact

14.2.1. 可以将long值转换为int值

14.3. 静态方法floorMod、floorDiv和nextDown

15. Files

15.1. 可以用文件直接产生流

15.2. 静态方法Files.lines

15.2.1. 以延迟方式读取文件的内容,并将其作为一个流

15.3. Files.list

15.3.1. 生成由指定目录中所有条目构成的Stream‹Path›

15.3.2. 不是递归包含的

15.3.3. 处理包含内容非常庞大的目录时,这个方法非常有用

15.4. Files.walk

15.4.1. 生成包含给定目录中所有条目的Stream‹Path›

15.4.2. 是递归的

15.4.3. 可以设定递归的深度

15.4.4. 遍历是依照深度优先进行的

15.5. Files.find

15.5.1. 通过递归地遍历一个目录找到符合条件的条目,并生成一个Stream‹Path›对象

16. Reflection

16.1. java.lang.reflect.Parameter类

16.1.1. 查询方法参数的名称和修饰符

16.2. java.lang.reflect.Executable类

16.2.1. 通用函数和构造函数共享的父类

17. String

17.1. join

17.1.1. 用一个分隔符将多个字符串连接起来

标签:类库,11,Java,Comparator,对象,给定,注解,静态方法,方法
From: https://www.cnblogs.com/lying7/p/17122328.html

相关文章

  • AcWing 785.快速排序(Java)
    题目描述给定你一个长度为n的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数n。第......
  • 如何处理 Java 中的 OutOfMemoryError 异常
    java.lang.OutOfMemoryError是Java中的一个运行时错误,它通常发生在Java虚拟机(JVM)由于Java堆内存不足而无法分配对象时。Java垃圾回收器(GC)无法释放新对象所需的空间,从......
  • leetcode 11. 盛最多水的容器 js实现
    给定一个长度为n的整数数组 height 。有 n 条垂线,第i条线的两个端点是 (i,0) 和 (i,height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容......
  • Java类加载的执行过程
    类加载分为以下5个步骤:1.加载:根据查找路径找到相应的class文件然后导入;2.检查:检查加载的class文件的正确性;3.准备:给类中的静态变量分配内存空间;4.解析:虚拟......
  • java数组
    java数组相同类型数据的有序集合数组的建立定义数组//数据类型[]变量名=赋值//数据类型变量名[]=赋值声明建立//定义数组int[]num;//声明建立num=ne......
  • Java 8新特性之 Optional 类
    前言java.util.Optional是java8中引进的一个新的类,我们通过Optional类的源码可以看到,该方法的作用可以对可能缺失的值进行建模,而不是直接将null赋值给变量。Optional类......
  • [11] 事件处理机制
    Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件(FileEvent):Redis服务器通过套接字与客户端(或其他Redis服务器)进行连接,而文件事件就是服务器对套接......
  • 297个机器学习彩图知识点(11)
    导读本系列将持续更新20个机器学习的知识点,欢迎关注。1.单边标签平滑2.逻辑回归3.最小二乘法4.袋外数据误差5.外核6.异常值7.过拟合&欠拟合8.过......
  • JavaWeb文件上传(感谢狂神)
    1、准备工作采用Apache的开源工具common-fileupload这个文件上传组件。common-fileupload是依赖于common-io这个包的,所以还需要下载这个包。(这两个jar包需要下载引入,Tomc......
  • 11.7文字及图片的显示机制
       如果用一句话来简单地概括该机制,那就是显示器中显示的信息一直存储在某内存中。该内存称为VRAM(VideoRAM)。在程序中,只要往VRAM中写入数据,该数据就会在显示器中......