# java8 **Repository Path**: changelzj/java8 ## Basic Information - **Project Name**: java8 - **Description**: java8新特性学习 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-10 - **Last Updated**: 2024-12-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Java8 新特性 ### 新特性 * Lambda 表达式 * Stream API * 函数式接口 * 方法和构造器引用 * 接口中默认和静态方法 * 时间日期API * 速度更快,底层数据结构的改造,垃圾回收的优化 * 代码更少 * 便于并行 * 最大化减少空指针 Optional ### 底层内存结构的变化 java8的速度更快是因为对数据结构和内存结构的改变,jdk1.8后不再保留永久区 使用metaspace元空间来代替,直接使用物理内存,垃圾回收的概率降低,不需要在分配内存,只有容量过大时,才可能被垃圾回收 因永久区被元空间代替,JVM参数 PremGenSize 和 MaxPremGenSize参数不在生效 被MetaSpaceSize 和 MaxMetanameSpaceSize代替 ### lambda表达式 是一个匿名函数,一段可以传递的代码 ### 日期和时间 * Instant 瞬时点时间,记录事件时间间隔,类型转换的中间类,格林威治时间 * Duration 秒或纳秒的时间,更精确 * Period 一段时间的年月日 * LocalDate 表示日期 不可变 * LocalTime 表示时间 不可变,精确到纳秒 * LocalDateTime 日期时间 不可变 * ZonedDateTime 具有时区的日期和时间 不可变