本文结合Java8,重新整理了接口和抽象类的区别,以及如何理解接口的设计目的。 并且分析了Java8的接口新特性:default method 和 static method 前言 在Java中,提供了两种方式来实现OO…
Java8特性解决空指针问题
在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示: 在这种情况下,有如下代码 这种写法,在user为null时,…
Java8 Stream的总结
一. Stream的特性 Stream是Java 8新增的接口,Stream可以认为是一个高级版本的 Iterator。它代表着数据流,流中的数据元素的数量可以是有限的,也可以是无限的。 Stream跟Iterator的…
JAVA8 流 Stream 的使用
JAVA8流的使用 一、筛选和切片 用谓词筛选 ==filter(T -> T.getXX())== 判断相同 ==distinct()== 截断流 ==limit(n)== 跳过元素 ==skip(n)== 排序…
Java8 函数式编程
Java 8 函数式编程 本次主题主要介绍什么是函数式编程,其主要特点, 以及它在 Java8 中是怎么体现的. 函数式编程这个思维早在1958年就被提出来的了,在60年后的今天重新被提出来,且越来越流行,其主要原因是 …
深入理解JVM之Java内存管理(基于JAVA8)
虽然说了解虚拟机的运作并不是一般开发人员必须掌握的知识,但是对于中高级开发人员来说,如果不了解JVM一些技术特性的运行原理,就无法写出更高效、更稳定的代码。并且在出现了内存相关的问题时,如果不了解虚拟机是如何使用内存的,…
Java8-Lambda 方法的引用
实例方法和类方法 引用实例方法 自动把调用方法的时候的参数,全部传给引用的方法 <函数式接口> <变量名> = <实例>::<实例方法名>; // 自动把[实参]全部传递给…
用Java8的lambda与Stream提高效率
Java 8 的lambda表达式语法与对Stream流的操作已经出来很久了,之前一直没有感觉到有特别好用,直到最近自己在工作开发中心血来潮用了Stream来处理集合,才发现它的强大之处。以前需要许多代码才能完成的集合处…
Java8新特性-018-时区处理
时区的处理 Java8 中加入了对时区的支持,带时区的时间为分别为:ZonedDate、ZonedTime、ZonedDateTime。其中每个时区都对应着 ID,地区ID都为 “{区域}/{城市}”的格式。 例如 :A…
Java8 学习笔记(二)——Stream流
1.简单使用 Arrays.asList(1, 4, 2, 3, 5, 6, 7, 9, 0, 8) .stream() .sorted()// 排序 .filter(x -> x > 3)// 过滤 .fo…
Java8_Lambda表达式进阶(比较器)
我们先来看两个题 计算一个字符串中小写字母个数 计算个数我们知道可以用count方法,然后剩下就是找到字符串中的小写字母,使用String对象的chars方法可以拿到字符列表,然后过滤小写字母 public static…
Java8新特性7--使用Optional解决空指针问题
使用Optional解决空指针问题 空指针是我们最常见也最讨厌的异常,为了防止空指针异常,你不得在代码里写大量的非空判断。 Java 8引入了一个新的Optional类。用于避免空指针的出现,也无需在写大量的if(obj…