Java8 Stream的实现原理
摘要:例如: public class Test { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("Apple"); list.add("Bug"); list.add("
阅读全文
posted @
2021-06-02 11:03
duanxz
阅读(277)
推荐(0) 编辑
jdk8的注解 @sun.misc.Contended
摘要:@sun.misc.Contended 介绍 @sun.misc.Contended 是 Java 8 新增的一个注解,对某字段加上该注解则表示该字段会单独占用一个缓存行(Cache Line)。 这里的缓存行是指 CPU 缓存(L1、L2、L3)的存储单元,常见的缓存行大小为 64 字节。 (注:
阅读全文
posted @
2016-11-24 14:47
duanxz
阅读(2983)
推荐(0) 编辑
Java 8 Optional类深度解析
摘要:身为一名Java程序员,大家可能都有这样的经历:调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。这正是一些类似Guava的外部API试图解决的问题。一些JVM编程语言比如Scala、Ceylon等
阅读全文
posted @
2016-11-23 22:18
duanxz
阅读(742)
推荐(0) 编辑
Java8之默认方法和静态接口方法
摘要:前言 上一篇文章30分钟入门Java8之lambda表达式,我们学习了lambda表达式。现在继续Java8新语言特性的学习,今天,我们要学习的是默认方法和静态接口方法。 这一Java8的新语言特性,在Android N中也得到了支持。至于如何在Android开发中配置Java8的开发环境,请查看上
阅读全文
posted @
2016-04-18 13:50
duanxz
阅读(1405)
推荐(0) 编辑
JAVA8 十大新特性详解
摘要:本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API上的改进,比如流,函数式接口,Map以及全新的日期API “Java is still not dead—and people
阅读全文
posted @
2016-04-15 23:05
duanxz
阅读(4098)
推荐(0) 编辑
CompletableFuture详解
摘要:背景 在JDK1.5已经提供了Future和Callable的实现,可以用于阻塞式获取结果,如果想要异步获取结果,通常都会以轮询的方式去获取结果,如下: //定义一个异步任务 Future<String> future = executor.submit(()->{ Thread.sleep(200
阅读全文
posted @
2014-03-26 14:43
duanxz
阅读(4199)
推荐(0) 编辑
Metaspace 之二--PermGen vs. Metaspace 运行时比较
摘要:PermGen vs. Metaspace 运行时比较 为了更好地理解Metaspace内存空间的运行时行为, 将进行以下几种场景的测试: 使用JDK1.7运行Java程序,监控并耗尽默认设定的85MB大小的PermGen内存空间。 使用JDK1.8运行Java程序,监控新Metaspace内存空间
阅读全文
posted @
2014-03-20 15:54
duanxz
阅读(1358)
推荐(0) 编辑
Java 8新增的日期、时间格式器
摘要:在计算机中,应该如何表示日期和时间呢? 我们经常看到的日期和时间表示方式如下: 2019-11-20 0:15:00 GMT+00:00 2019年11月20日8:15:00 11/19/2019 19:15:00 America/New_York 如果直接以字符串的形式存储,那么不同的格式,不同的
阅读全文
posted @
2014-02-10 14:26
duanxz
阅读(2002)
推荐(0) 编辑
try-with-resources语句
摘要:try-with-resources语句是一个声明一个或多个资源的 try 语句。一个资源作为一个对象,必须在程序结束之后随之关闭。 try-with-resources语句确保在语句的最后每个资源都被关闭 。任何实现了 Java.lang.AutoCloseable的对象, 包括所有实现了 jav
阅读全文
posted @
2014-02-10 14:25
duanxz
阅读(682)
推荐(0) 编辑
Metaspace 之一:Metaspace整体介绍(永久代被替换原因、元空间特点、元空间内存查看分析方法)
摘要:回顾 根据JVM内存区域的划分,简单的画了下方的这个示意图。区域主要分为两大块,一块是堆区(Heap),我们所New出的对象都会在堆区进行分配,在C语言中的malloc所分配的方法就是从Heap区获取的。而垃圾回收器主要是对堆区的内存进行回收的。 而另一部分则是非堆区,非堆区主要包括用于编译和保存本
阅读全文
posted @
2014-02-10 11:15
duanxz
阅读(63987)
推荐(9) 编辑
Java8 @FunctionalInterface
摘要:函数式接口的一大特性就是可以被lambda表达式和函数引用表达式代替。也就是说声明这样的接口,是可以灵活的以方法来传参。 《Java8 @FunctionalInterface》 《java8 的java.util.function包中函数式接口》 《java8 Lambda介绍》 一、java8的
阅读全文
posted @
2013-12-19 14:40
duanxz
阅读(601)
推荐(0) 编辑
java8 Collector和Collectors
摘要:一、概述 Collector是专门用来作为Stream的collect方法的参数的。 public interface Stream<T> extends BaseStream<T, Stream<T>> { <R, A> R collect(Collector<? super T, A, R> c
阅读全文
posted @
2012-07-25 15:32
duanxz
阅读(846)
推荐(0) 编辑
java8 Stream语法详解
摘要:《java8 Collector和Collectors》 stream()特点: 无存储。stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。 为函数式编程而生:对stream的任何修改都不会修改背后的数据源,比如对stream执行
阅读全文
posted @
2012-07-19 09:59
duanxz
阅读(753)
推荐(1) 编辑
java8 集合流式操作
摘要:一、 集合相关的中间操作 和 最终操作 中间操作: filter(): 对元素进行过滤 sorted():对元素排序 map():元素映射 distinct():去除重复的元素 最终操作: forEach():遍历每个元素。 reduce():把Stream 元素组合起来。例如,字符串拼接,数值的
阅读全文
posted @
2012-07-19 09:53
duanxz
阅读(9262)
推荐(0) 编辑
java8 的java.util.function包中函数式接口
摘要:《Java8 @FunctionalInterface》 《java8 的java.util.function包中函数式接口》 《java8 Lambda介绍》 包括: 一. Function 接口的使用 二. Consumer 接口的使用 三. Predicate 接口的使用 四.Supplier
阅读全文
posted @
2012-07-16 09:32
duanxz
阅读(1391)
推荐(0) 编辑
java8 Lambda介绍
摘要:《Java8 @FunctionalInterface》 《java8 的java.util.function包中函数式接口》 《java8 Lambda介绍》 一. 为什么需要lambda 二. lambda 语法 三、变量作用域 四、方法引用 五、函数式接口 5.1、函数式接口介绍 5.2、函数
阅读全文
posted @
2012-07-12 22:06
duanxz
阅读(579)
推荐(0) 编辑