Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

部分 II. JDK Development Kit

目录

8. 数据结构
8.1. Collection 接口
8.2. List
8.2.1. 静态 List
8.2.2. List.of()
8.2.3. List.copyOf()
8.2.4. String[] to List
8.2.5. Stream.toList() 方法
8.2.6. containsAll
8.2.7. stream().allMatch()
8.2.8. 随机 List
8.2.9. getFirst() / getLast()
8.2.10. List 转 Array
8.3. ArrayList
8.3.1. 初始化
8.3.2. 判断元素是否存在
8.3.3. 循环打印
8.3.4. ArrayList to Array
8.3.5. ArrayList to String
8.3.6. Array to List
8.3.7. List to Array
8.3.8. ArrayList forEach
8.3.9. ArrayList stream()
8.3.10. ArrarList 转换为 string[]
8.3.11. string 转换为 ArrayList
8.3.12. ArrayList 转换为 string
8.3.13. string[] 转换为 ArrarList
8.3.14. 合并 List<byte[]> ArrayList<byte[]>
8.4. LinkedList
8.5. Set 转为 List
8.5.1. Set.of()
8.5.2. Set to Array
8.6. Map
8.6.1. 初始化
8.6.2. HashMap
8.6.3. LinkedHashMap
8.6.4. 遍历数据
8.6.5. 迭代器
8.6.6. Map forEach
8.6.7. 随机取值
8.7. Iterator 迭代器
8.7.1. List 迭代
8.7.2. 处理剩余结果
8.7.3. Map 迭代
8.7.4. Iterator 与 List 的区别
8.7.5. remove() 删除操作
8.7.6. Iterable 转 List
8.8. ListIterator
8.9. Queue
8.9.1. 阻塞队列
8.9.2.
8.9.3. Deque 双端队列
8.9.4. 数据转换
8.9.5. PriorityBlockingQueue
8.10. Stack
8.11. Optional
8.11.1. of() 为非null的值创建一个Optional。
8.11.2. ofNullable() 为指定的值创建一个Optional,如果指定的值为null,则返回一个空的Optional。
8.11.3. isPresent 如果值存在返回true,否则返回false。ifEmpty() null 返回 true 否则返回 false
8.11.4. ifPresent() 如果Optional实例有值执行 lambda 表达式
8.11.5. get() 返回值
8.11.6. orElse 如果有值则将其返回,否则返回指定的其它值。
8.11.7. orElseGet与orElse方法类似,区别在于得到的默认值从 Supplier 返回。
8.11.8. orElseThrow 如果有值则将其返回,否则抛出supplier接口创建的异常
8.11.9. map() 方法用来对Optional实例的值执行一系列操作
8.11.10. flatMap()
8.11.11. filter() 通过传入限定条件过滤Optional值
8.11.12. stream()
8.11.13. or()
8.11.14. example
9. 正则表达式
9.1. 正则查找
9.2. 正则替换
9.3. 字符串分割
10. Java 并发编程
10.1. TimeUnit
10.2. AtomicInteger / AtomicLong / AtomicBoolean
10.3. AtomicReference
10.4. ReentrantLock 锁
10.5. 线程安全的 HashMap(ConcurrentHashMap)
10.5.1. 设置键与值
10.6. ArrayBlockingQueue
10.7. Future
10.7.1. Future + Stream 管理一组线程
10.8. FutureTask
10.9. CompletableFuture
10.9.1. runAsync 创建没有返回值的异步任务
10.9.2. supplyAsync 创建带有返回值的异步任务。
10.9.3. 创建 CompletableFuture 实例,并且其他线程中使用
10.9.4. 获取结果
10.9.5. thenRun / thenRunAsync
10.9.6. thenAccept / thenAcceptAsync
10.9.7. thenApply / thenApplyAsync
10.9.8. runAsync / thenAccept / thenApply 区别
10.9.9. whenComplete 任务完成时执行,并且返回结果和异常
10.9.10. 超时处理
10.9.11. 按顺序执行
10.9.12. thenCombine、thenAcceptBoth 和runAfterBoth
10.9.13. applyToEither、acceptEither和runAfterEither
10.9.14. allOf / anyOf
10.9.15. 并行执行 CompletableFuture
10.9.16. 通知完成任务
10.9.17. 异常处理
10.9.18. CompletableFuture 实现 Pipeline 流水线
10.10. java 线程池
10.10.1. newCachedThreadPool
10.10.2. 固定线程池(newFixedThreadPool)
10.10.3. Executors.newScheduledThreadPool
10.10.4. SingleThreadExecutor
10.10.5. ExecutorService 正确关闭方法
10.10.6. ForkJoinPool / ForkJoinTask
10.11. Flow
10.11.1. 自定义 Publisher / Subscriber
10.11.2. SubmissionPublisher
10.11.3. Flow.Processor
10.12. Java 协程
11. Stream
11.1. Stream.of
11.2. Stream.ofNullable
11.3. filter
11.4. map
11.5. limit/skip
11.6. sorted
11.7. distinct
11.8. forEach
11.9. count
11.10. 流转列表
11.11. collect
11.11.1. Collectors.toList() 列表转字符串
11.11.2. Collectors.joining() 连接字符串
11.11.3. 转 Set Collectors.toSet()
11.11.4. Collectors.teeing()
11.12. takeWhile 和 dropWhile
11.13. 合并 Stream
11.14. mapToObj
11.15. 混合使用的例子
11.15.1. List to Stream
11.16. 流复用 streamSupplier
11.17. Parallel Streams(并行流)
11.18. IntStream / LongStream / DoubleStream
12. 函数式编程
12.1. Supplier 供应型的接口
12.1.1. Supplier 作为方法参数使用
12.2. IntSupplier / LongSupplier / DoubleSupplier / BooleanSupplier
12.3. Consumer 消费型的接口
12.4. IntConsumer
12.5. BiConsumer
12.6. BiFunction
12.7. Predicate 判断型的接口
12.8. Supplier / Consumer / Predicate 应用场景
13. Util
13.1. Properties 处理 *.properties 文件
13.1.1. 打开 properties 文件
13.1.2. propertyNames()
13.1.3. keySet()
13.1.4. entrySet()
13.1.5. 方法中返回 Properties
13.1.6.
13.1.7. getResourceAsStream()
13.1.8. store
13.1.9. 实现国际化
13.2. Logging
13.2.1. console
13.3. BASE64
13.4. Locale 国际化
13.5. ResourceBundle
13.6. Scanner
13.7. UUID
13.8. Arrays.equals 判断两个数组是否相等
13.9. Random 随机字符串
13.9.1. 取 0-n 范围内随机数
13.9.2. 指定随机数范围
13.10. CRC32
13.11. Timer / TimerTask 实现周期性重复执行
14. 时间
14.1. LocalDate
14.2. LocalTime
14.3. ZonedDateTime
14.4. DateTimeFormatter
14.5. Instant
14.6. Period :基于日期值
14.7. Duration:基于时间值
14.7.1. 设置指定单位的持续时间
14.7.2. 获取指定单位的持续时间
14.7.3. 获取两个时间点之间差值的持续时间
14.7.4. 获取毫秒
15. IO
15.1. 取出文件名中的扩展名
15.1.1. getAbsolutePath() 获取绝对路径
15.1.2. 创建目录 mkdir()
15.2. 临时文件
15.3. FileWriter 文本写入文件
15.4. BufferedWriter
15.5. inputStream.transferTo()
15.6. InputStreamReader
15.7. 获得 Resource 下文件路径
15.8. PrintWriter
15.9. OutputStreamWriter
15.10. FileOutputStream
15.11. FileInputStream
15.12. Scanner
15.13. 二进制文件
15.13.1. 理解二进制文件
15.13.2. byte 类型
15.13.3. boolean 布尔型
15.13.4. Long 型
15.13.5. char 类型
15.13.6. UTF 字符串
15.13.7. Short 类型
15.13.8. float 单精度浮点类型
15.13.9. double 数据类型
15.13.10. 二进制文件操作演示
16. Network
16.1. URL
16.2. 获取IP地址何机器名
17. JDBC
17.1. 安装 JDBC 包
17.2. MySQL
17.3. Oracle
17.3.1. SID
17.3.2. SERVICE_NAME
17.3.3. TNS
17.3.4. Oracle RAC Cluster
17.3.5. Oracle JDBC Demo
17.4. FAQ
17.4.1. java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
17.4.2. Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
18. Reflection 反射
18.1. 获得所有变量
18.2. 批量赋值
18.3. 方法操作
18.3.1. 获得所有方法
18.3.2. set/get 方法
18.3.3. static 方法调用
18.4. 完成的例子
19. java.security
19.1. 列出 Java 支持的数字摘要算法
19.2. 计算文件的 MD5,SHA 等 HASH 值
19.3. Md5sum
20. javax
20.1. java 脚本引擎
20.1.1. Maven
20.1.2. Helloworld
20.1.3. 运行脚本文件
20.1.4. 变量传递
20.1.5. 全局变量与局部变量定义
20.1.6. 调用脚本中的函数或方法
20.1.7. 脚本编译
20.1.8. jjs - Invokes the Nashorn engine.
20.2. Crypto
20.2.1. MD5
20.2.2. AES
20.2.3. AES/CBC/PKCS5PADDING
20.2.4. DES