• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

标签:新特性

用Java8特性解决空指针问题

引言在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示:在这种情况下,有如下代码这种写法,在user为null时,是有可能报NullPointerException异常的。为了解决这个问题,于是采用下面的写法这种写……

为什么开发者对Java 9如此的兴奋

随着标准Java的版本更新,开发者总是可以从升级后的版本中获取想要的功能。那么Java 9的发布为什么会让开发者如此的兴奋?下面列出了一些主要原因:1、模块化的源代码JDK源代码将以模块化的形式组织起来,生成系统将会在模块化编译上得到增强,并且在生成的时候模块之间的边界也将被强制区分开来。“Jigsaw的目标是为Java SE平台设计并实现……

Java8面试题

问题一:Java8支持功能编程是什么意思?在Java 8之前,所有东西都是面向对象的。除了原语之外,java中的 所有内容都作为对象存在。对方法/函数的所有调用都是使用对象或类引用进行的。方法/功能本身并不是独立存在的。使用Java 8,引入了函数式编程。所以我们可以使用匿名函数。Java是一种一流的面向对象语言。除了原始数据……

JDK8新特性之函数式接口

什么是函数式接口先来看看传统的创建线程是怎么写的Thread t1 =newThread(newRunnable(){    @Override    publicvoid run(){        System.out.println("t1");    }……

Java8内存模型—永久代(PermGen)和元空间(Metaspace)

一、JVM 内存模型根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩……

Java 11新特性解读

概述美国当地时间9月25日,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环境中使用!这是自 Java 8 后的首个长期支持版本,将支持到2026年,可以使用下面的地址进行下载:https://www.oracle.com/technetwork/java/javase/downloads/jdk11-d……

JDK1.8 十大新特性详解

接口的默认方法Java8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:interfaceFormula {    doublecalculate(int a);    defaultdoublesqrt(int a) {        return Math.……

JDK8新特性之接口默认方法与静态方法

接口默认方法与静态方法有这样一些场景,如果一个接口要添加一个方法,那所有的接口实现类都要去实现,而某些实现类根本就不需要实现这个方法也要写一个空实现,所以接口默认方法就是为了解决这个问题。接口静态方法类似于默认方法,但是我们不能在实现类中覆盖它们,可以避免默认方法在实现类中被覆盖实现。之前讲过的JDK8的list.foreache方法,……

JDK8之新特性扩展篇

之前分篇章讲了一些JKD8中添加的新特性,还有一些新特性这里也一并讲下。BASE64base64编码解码已经被加入到了jdk8中了。import java.nio.charset.StandardCharsets;import java.util.Base64;publicclassBase6……

Java 9 新特性,看这里就明白了

摘要: 1.目录结构 2.repl工具 jShell命令 3.模块化 4.多版本兼容jar包 5.接口方法的改进(在接口中 jdk7 只能声明全名常量和抽象方法 jdk8 添加了静态方法和默认方法 jdk9添加了私有方法)6.钻石操作符升级 可以有{} 7.异常处理try升级 8.下划线标识符命名的限制 _ 不允许了 9.……

Java 8 Lambda 表达式和流操作如何让你的代码变慢 5 倍

有许许多多关于 Java 8 中流效率的讨论,但根据 Alex Zhitnitsky 的测试结果显示:坚持使用传统的 Java 编程风格——iterator 和 for-each 循环——比 Java 8 的实现性能更佳。Java 8 中的 Lambda 表达式和流(Stream)受到了热烈欢迎。这是 Java 迄今为止最令人激动的特征。这些……

JDK 1.5 – 1.8 各版本的新特性总结

以下介绍一下JDK1.5版本到JDK1.7版本的特性及JDK1.8主要部分特性。仅供参考。JDK1.5新特性1:自动装箱与拆箱:自动装箱:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。自动拆箱:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()……

Java8之stream

一、初识stream先来一个总纲:东西就是这么多啦,stream是java8中加入的一个非常实用的功能,最初看时以为是io中的流(其实一点关系都没有),让我们先来看一个小例子感受一下:@Beforepublic void init() {    random = new Random();    stuList = new Ar……

使用 IntelliJ 调试 Java Streams

Streams 非常强大,并且能够用简单几行代码实现你所期望的功能要点。它们正常运行时非常流畅优雅,但运行不符合预期时却让人苦不堪言。让我们学习一下如何用 IntelliJ 调试你的 Java Streams 代码,并洞察 Stream 的中间操作。在这篇文章中,我将在例子里用到 Sakila 样本数据库和 Speedment Stream ……

Java 8:不要再用循环了

正如我之前(http://www.deadcoderising.com/why-you-should-embrace-lambdas-in-java-8/)所写的,Java 8中的新功能特性改变了游戏规则。对Java开发者来说这是一个全新的世界,并且是时候去适应它了。在这篇文章里,我们将会去了解传统循环的一些替代方案。在Java 8的新功能特……

Java 8系列之Lambda实践步骤(二)

1关于实践这里依旧我们通过学生筛选的例子,看看在实践中如何通过Lambda表达式使得代码更加灵活、简洁。现在我们需要从全体学生中,将英语成绩在95分以上的学生筛选出来。筛选代码如下:现在的代码的确满足了我们的需求,但如果我们需要将筛选分数改成80分,并且95分的筛选方法以后还有可能需要用时该怎么办?如果在实际开发中,你可能……

Java 8 日期 / 时间( Date Time )API 指南

Java 8日期/时间( Date/Time)API是开发人员最受追捧的变化之一,Java从一开始就没有对日期时间处理的一致性方法,因此日期/时间API也是除Java核心API以外另一项倍受欢迎的内容。为什么我们需要新的Java日期/时间API?在开始研究Java 8日期/时间API之前,让我们先来看一下为什么我们需要这样一个新的API。……

理解、学习与使用 Java 中的 Optional!

导读本文将从以下5个方面阐述Java 中的 Optional,帮助实现你的理解、学习与使用:创建 Optional  实例 转换值Optional 类的链式方法Java9增强Optional  应该怎样用?        从 Java 8 引入的一个很有趣的特性是 Optional  ……

JDK8新特性之Optional

Optional是什么java.util.OptionalJdk8提供 Optional,一个可以包含null值的容器对象,可以用来代替xx != null的判断。Optional常用方法ofpublicstatic<T>Optional<T> of(T value){    retu……

简洁又快速地处理集合——Java8 Stream(下)

本篇文章主要内容:一种特化形式的流——数值流Optional 类如何构建一个流collect 方法并行流相关问题一. 数值流前面介绍的如int sum = list.stream().map(Person::getAge).reduce(0, Integer::sum);计算元素总和的方法……

Java 中 9 个处理 Exception 的最佳实践

在Java中处理异常并不是一个简单的事情。不仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。这也是绝大多数开发团队都会制定一些规则来规范对异常的处理的原因。而团队之间的这些规范往往是截然不同的。本文给出几个被很多团队使用的异常处理最佳实践。1. 在Finally块中清理资……

Java 9 逆天的十大新特性

Java 9 逆天的十大新特性modularity System 模块系统Java 9 中主要的变化是已经实现的模块化系统。Modularity 提供了类似于 OSGI 框架的功能,模块之间存在相互的依赖关系,可以导出一个公共的 API,并且隐藏实现的细节,Java 提供该功能的主要的动机在于,减少内存的开销,在 J……

JDK8新特性之重复注解

什么是重复注解下面是JDK8中的重复注解( java.lang.annotation.Repeatable)定义的源码。@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.ANNOTATION_TYPE)pu……

Java8新特性之日期-时间API

在Java8之前的版本中,我们处理时间类型常常使用的是java.util包下的Date类。但使用Date类却有诸多的弊端,如:java.util.Date是非线程安全的,所有的日期类都是可变的;日期/时间类的定义并不一致,在java.util和java.sql的包下都含有Date类,在开发过程中极易出错; 日期类并不提供国际化,没有时区支持。……

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00