前言 只有光头才能变强 前两天带女朋友去图书馆了,随手就给她来了一本<与孩子一起学编程>的书,于是今天就给女朋友讲解一下什么是Optional类. 至于她能不能看懂,那肯定是看不懂的.(学到变量/for循环的女人怎么能看懂呢) 不知道大家还记得上一篇<阿里巴巴 Java开发手册>读后感不,当时阅读到空指针异常(NPE)时,书上提到JDK 8有个Optional类供我们使用,该类可以尽可能地防止出现空指针异常(NPE). 文本力求简单讲清每个知识点,希望大家看完能有所收获 一.基础铺…
// array 工具类 可以用来快捷的将数组转化为list List<String> strings = Arrays.asList("zhongguo", "riben", "yingguo"); // 转化为一个新的list List<String> collect = strings.stream().map(number -> number += "dfvgcdvcx").collect…
前言 在周六发现了Linus去Google演讲的一个视频,当时还发了一条朋友圈: 有兴趣的同学也可以去看看,一点儿也不无聊,在线看Linus大佬怼人 https://www.bilibili.com/video/BV1xb411A7ac?from=search&seid=4239535088233137638 朋友圈的评论有几个人问我女朋友呢 我又恰好给我女朋友科普过什么是Git,所以这篇文章就有了. Git介绍 Git是干啥用的?它是一个版本控制软件. Git这个玩意三歪曾经还给女朋友给科普过…
1.反射(类的加载概述和加载时机) A:类的加载概述 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载  就是指将class文件读入内存,并为之创建一个Class对象.任何类被使用时系统都会建立一个Class对象. 连接 验证 是否有正确的内部结构,并和其他类协调一致 准备 负责为类的静态成员分配内存,并设置默认初始化值 解析 将类的二进制数据中的符号引用替换为直接引用 初始化 就是我们以前讲过的初始化步骤 B:加载时机 创建类…
###27.01_反射(类的加载概述和加载时机) A:类的加载概述 *加载   就是指将class文件读入内存,并为之创建一个Class对象.任何类被使用时系统都会建立一个Class对象. *连接   准备,负责为类的静态成员分配内存,并设置默认初始化值. *初始化 B:加载时机 new创建类的实例 访问类的静态变量,或者为静态变量赋值 调用类的静态方法 初始化某个类的子类0 反序列化 clone()方式 使用反射机制方式来强制创建某个类或接口对应的java.lang.Class对象 ###27…
前言 在本文中,我将描述自第8版以来Java最重要且对开发人员友好的功能.为什么会有这样的主意?在Web上,您可以找到许多文章,其中包含每种Java版本的新功能列表.但是,由于缺少文章,因此无法简要概述自第8版以来最重要的更改.好的,但是为什么是第8版?令人惊讶的是,它仍然是最常用的Java版本.即使我们已经到了Java 16发行版的前夕果.如您所见,超过46%的响应者仍在生产中使用Java 8.相比之下,只有不到10%的响应者使用Java 12或更高版本. java版本使用占比 那接下来咋们从…
Jdk8新特性 一:接口默认方法和静态方法: 我们可以在接口中定义默认方法,使用default关键字,并提供默认的实现.所有实现这个接口的类都会接受默认方法的实现,除非子类提供的自己的实现. 我们还可以在接口中定义静态方法,使用static关键字,也可以提供实现.例如: public interface DefaultFunctionInterface {  default void defaultFunction() {  System.out.println("接口DefaultFuncti…
JDK 11 总共包含 17 个新的 JEP ,分别为: 181: Nest-Based Access Control(基于嵌套的访问控制) 309: Dynamic Class-File Constants(动态类文件常量) 315: Improve Aarch64 Intrinsics(改进 Aarch64 Intrinsics) 318: Epsilon: A No-Op Garbage Collector(Epsilon — 一个无操作的垃圾收集器) 320: Remove the Ja…
date相关: 1.在jdk 8之前,由于Date,Calendar的烂设计(烂的原因:日期计算复杂,Date没有时区),催生了一个优秀的第三方时间框架:Joda-Time(解决了:日期的计算,时区) 格林威治时间(GMT)= 世界标准时间(UTC),两者仅仅是标示格式有差异. 本地时间 = UTC+时区 2.jdk 8 完全借鉴了Joda-Time的设计理念,在java.time包下,添加了date相关的类. Lambda: 1.函数式接口:有且仅有一个方法的接口. 2.为了兼容旧的jdk版本…
14.1.JDK5新特性回顾 自动装箱.拆箱 静态导入 增强for循环 可变参数 枚举 泛型 元数据 14.2.JDK7新特性回顾 对Java集合(Collections)的增强支持 在switch中可用String 数值可加下划线 支持二进制文字 泛型简化 异常的多个catch合并 自动资源管理 14.3.JDK8新特性回顾 Lambda表达式 函数式接口 方法引用与构造器引用 Stream API Optional容器类 接口中的默认方法与静态方法 新时间日期 API 重复注解…