Home » Tag Archives: Java 8 (page 8)

Tag Archives: Java 8

Java 8特性指南 – 终极手册 (PDF下载)

编者按:距离Java 8的发布已经有段时间了,就目前看来它的确是一个非常重要的版本。我们之前已经在JavaCodeGeeks发布了一系列专题文章,如玩转Java 8-Lambda表达式和并发,Java 8日期/时间API入门:LocalDateTime 以及 JDK8时代的抽象类vs.接口。同时我们也从其它来源处引用了15个必读的Java 8教程。当然,我们也对它的一些短板进行了验证,如Java 8的暗面。为了读者们更好的阅读体验,现在是时候整合所有Java 8的主要特性于一处了。一起来享受它吧! 目录 1. 简介 2. Java语言的新特性 2.1. Lambda表达式和函数式接口 2.2. 接口的默认方法和静态方法 2.3. 方法引用 2.4. 重复型注解 2.5. 更强大的类型推断 2.6. 扩展的注解支持 3. Java编译器的新特性 3.1. 参数名 4. Java类库的新特性 4.1. Optional 4.2. Streams 4.3. 日期/时间API (JSR 310) 4.4. Nashorn JavaScript引擎 4.5. Base64 4.6. 并行数组 4.7. 并发 5. 新的Java工具类New Java tools 5.1. Nashorn引擎: jjs 5.2. 类的依赖关系分析: jdeps 6. ...

Read More »

Default methods and multiple inheritance

Recently Lukas JOOQ Eder posted and article about nested classes and their use. This is an interesting topic and his article is, as always, interesting and worth reading. There was only one slight statement I could not agree with and we had a brief reply chain leading to default method and why there can not be something like     ...

Read More »

Java8 Multi-threading ForkJoinPool: Dealing with exceptions

One of the main motivations behind the introduction of Java8 lambdas was the ability to be able to use multicores as easily as possible (see Mastering Lambdas: Java Programming in a Multicore World).  By simply changing your code from collection.stream()... to collection.parallelStream()... you have instant multi-threading at your disposal which brings with it all the CPU power on your machine. ...

Read More »

Java 8 Optional is not just for replacing a null value

Overview In Java 8, you can return an Optional instead of return null; as you might do in Java 7. This may or may not make a big difference depending on whether you tend to forget to check for null or whether you use static code analysis to check to nullalbe references. However, there is a more compelling case which ...

Read More »

Everything You Need To Know About Default Methods

So, default methods… yesterday’s news, right? Yes but after a year of use, a lot of facts accumulated and I wanted to gather them in one place for those developers who are just starting to use them. And maybe even the experienced ones can find a detail or two they didn’t know about yet. I will extend this post in ...

Read More »

Reason for Slower Reading of Large Lines in JDK 7 and JDK 8

I earlier posted the blog post Reading Large Lines Slower in JDK 7 and JDK 8 and there were some useful comments on the post describing the issue. This post provides more explanation regarding why the file reading demonstrated in that post (and used by Ant‘s LineContainsRegExp) is so much slower in Java 7 and Java 8 than in Java ...

Read More »

Java8 Lambdas: Sorting Performance Pitfall EXPLAINED

Written in collaboration with Peter Lawrey. A few days ago I raised a serious problem with the performance of sorting using the new Java8 declarative style. See blogpost here.  In that post I only pointed out the issue but in this post I’m going to go a bit deeper into understanding and explaining the causes of the problem.  This will ...

Read More »

How to Translate SQL GROUP BY and Aggregations to Java 8

I couldn’t resist. I have read this question by Hugo Prudente on Stack Overflow. And I knew there had to be a better way than what the JDK has to offer. The question reads:               I’m looking for a lambda to refine the data already retrieved. I have a raw resultset, if the user ...

Read More »

The Decorator Pattern With Java 8

In a recent post I described how the decorator pattern saved my day. I gave a small code snippet which contained the simplest way to create decorators but promised that there would be a nicer way with Java 8. Here it is:               Decorating With Java 8 HyperlinkListener listener = this::changeHtmlViewBackgroundColor; listener = DecoratingHyperlinkListener.from(listener) ...

Read More »