Java新特性
文章平均质量分 94
Java新特性笔记 8-9-10-11
尘觉
在编程的世界里,我相信每一行代码都是一次对未来的投资。
展开
-
java 8 新特性讲解Optional类--Fork/Join 框架--新时间日期API--以及接口的新特性和注解
到目前为止,臭名昭著的空指针异常是导致Java应用程序失败的最常见原因。以前,为了解决空指针异常,Google公司著名的Guava项目引入了Optional类,Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代码。受到Google Guava的启发,Optional类已经成为Java 8类库的一部分。原创 2023-06-25 19:00:17 · 408 阅读 · 0 评论 -
Java11--ZGC--权衡--ZGC--GC术语--着色指针--多重映射--读屏障标记--重定位
标记阶段中处理标记终止的最后一次暂停是唯一的例外,但是它是增量的,如果超过gc时间预算,那么GC将恢复到并发标记,直到再次尝试。并发阶段很复杂,因为它们需要在阶段完成之前处理可能使工作无效(译者注:因为是并发进行的,GC线程在完成一阶段的同时,应用线程也在工作产生操作内存,所以需要额外处理)的应用程序线程。值得指出的是,所有这些属性都需要权衡利弊。在遍历完成之后,有一个最终的,时间很短的的Stop The World阶段,这个阶段处理一些边缘情况(我们现在将它忽略),该阶段完成之后标记阶段就完成了。原创 2023-04-02 08:44:18 · 399 阅读 · 0 评论 -
java11新特性
虽然其目前还是实验特性,但是从能力上来看,这是 JDK 的一个巨 大突破,为特定生产环境的苛刻需求提供了一个可能的选择。例如,对部 分企业核心存储等产品,如果能够保证不超过 10ms 的 GC 暂停,可靠性会 上一个大的台阶,这是过去我们进行 GC 调优几乎做不到的,是能与不能的 问题。这话说的有点笼统,我谈一些自 己的体会,Java 代码虽然进行了一些类型推断等改进,更易用的集合 API 等, 但仍然给开发者留下了过于刻板、形式主义的印象,这是一个长期的改进方向.但是目前没有出现在JDK 新特性 中。原创 2023-04-04 18:30:20 · 810 阅读 · 0 评论 -
java10 新特性
尽管 IDE可以帮我们自动完成这些代码,但当变量总是跳来跳去的时候,可读 性还是会受到影响,因为变量类型的名称由各种不同长度的字符组成。事实上,这一特性只发 生在编译阶段,与运行时无关,所以对运行时的性能不会产生任何影响。JDK10一共定义了109个新特性,其中包含12个JEP(对于程序员来讲真正的新特性其实就一个),还有一些新API和JVM规范以及JAVA语言规范上的改动。AbstractImmutableList 类型的,如果是,就直接返回,如果不是,则调用 of 创 建一个新的集合。原创 2023-04-04 17:01:50 · 270 阅读 · 0 评论 -
java9新特性之-String存储结构变更--集合工厂方法-- InputStream 加强--增强的 Stream API讲解
结论:String 再也不用 char[] 来存储啦,改成了 byte[] 加上编码标记,节约 了一些空间。@Stableas will the HotSpot VM‘s intrinsic(固有的、内置的) string operations.原创 2023-06-26 08:33:37 · 260 阅读 · 0 评论 -
java9新特性--jShell--命令语法改进:try语和接口的私有方法
不管其中的类是否被classloader加载,第 一步整个jar都会被JVM加载到内存当中去(而模块化可以根据模块的需要加载程 序运行需要的class)Java 8中规定接口中的方法除了抽象方法之外,还可以定义静态方法 和默认的方法。一定程度上,扩展了接口的功能,此时的接口更像是 一个抽象类。但推荐还是最好加上。由于Java 8中接口方法的实现,可以直接在List,Set和Map的接口内定义这些方法, 便于调用。不同版本的类库交叉依赖导致让人头疼的问题,这些都阻碍了 Java 开发和 运行效率的提升。原创 2023-04-04 16:38:45 · 375 阅读 · 0 评论 -
java8新特性之--强大的Stream API详细讲解
Stream到底是什么呢?是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。“集合讲的是数据,Stream讲的是计算!注意:①Stream 自己不会存储元素。②Stream 不会改变源对象。相反,他们会返回一个持有结果的新Stream。③Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。原创 2023-06-26 08:05:45 · 500 阅读 · 0 评论 -
java8新特性之--函数式接口加方法引用与构造器引用详细讲解
何时使用lambda表达式?当需要对一个函数式接口实例化的时候,可以使用 lambda 表达式。何时使用给定的函数式接口?如果我们开发中需要定义一个函数式接口,首先看看在已有的jdk提供的函数式接口是否提供了能满足需求的函数式接口。如果有,则直接调用即可,不需要自己再自定义了。这样极大的帮助了程序员减轻了代码的繁杂。原创 2023-06-26 08:06:39 · 1182 阅读 · 0 评论 -
Java 8新特性之--Lambda表达式详细讲解
换句话说,方法引用就是Lambda表达式,也就是函数式接口的一个实例,通过方法的名字来指向一个方法,可以认为是Lambda表达式的一个语法糖。如果我们开发中需要定义一个函数式接口,首先看看在已有的jdk提供的函数式接口是否提供了能满足需求的函数式接口。当函数式接口方法的第一个参数是需要引用方法的调用者,并且第二个参数是需要引用方法的参数(或无参数)时:ClassName::methodName(针对于3)如果给函数式接口提供实例,恰好满足方法引用的使用情境,就可以考虑使用方法引用给函数式接口提供实例。原创 2023-04-04 08:53:12 · 1785 阅读 · 0 评论 -
java标识符命名规范--代码格式规范--注释规范--最佳实践和禁忌--代码示例
统一是指,对于同一个概念,在程序中用同一种表示方法,比如对于供应商,既可以用supplier,也可以用provider,但是我们只能选定一个使用,至少在一个Java项目中保持统一。非Java Doc的注释,往往是个代码的维护者看的,着重告述读者为什么这样写,如何修改,注意什么问题等。能用局部变量的,不要使用实例变量,能用实例变量的,不要使用类变量。所以,应当先在代码本身下功夫。注释不是用来管理代码版本的,如果有代码不要了,直接删除,svn会有记录的,不要注释掉,否则以后没人知道那段注释掉的代码该不该删除。原创 2023-04-02 08:46:05 · 922 阅读 · 4 评论 -
javap的使用--常用: javap -c -v 类名--javadoc 标签--javadoc 工具软件识别以下标签:
通过它,可以对照源代码和字节码,从而了解很多编译器内部的工作,对更深入地理解如何提高程序执行的效率等问题有极大的帮助。是JDK提供的一个命令行工具,javap能对给定的class文件提供的字节代码进行反编译。常用: javap -c -v 类名。原创 2023-04-02 08:59:47 · 357 阅读 · 0 评论 -
正则表达式源码分析--三个常用类--分组、捕获、反向引用--String 类中使用正则表达式的代码示例和图
2.1 groups[0] = 0 , 把该子字符串的结束的索引+1 的值记录到 groups[1] = 4。4. 根据 groups[0]=31 和 groups[1]=35 的记录的位置,从 content 开始截取子字符串返回。定位符, 规定要匹配的字符串出现的位置,比如在字符串的开始还是在结束的位置,原创 2023-04-03 07:44:48 · 184 阅读 · 0 评论