Home » Tag Archives: Java 8 (page 3)

Tag Archives: Java 8

Improved Documentation of HotSpot Options in Java 8

One of the small but welcome features introduced with Oracle’s HotSpot implementation of Java 8 is the addition of many common HotSpot Java launcher (java) options/flags to the launcher’s documentation. In the past, a developer interested in even some fairly common HotSpot JVM options has had to potentially look in multiple different sources to find “official” documentation on these flags. ...

Read More »

Using Java 8 Lambdas, Streams, and Aggregates

Overview In this post, we’ll take a look at filtering and manipulating objects in a Collection using Java 8 lambdas, streams, and aggregates. All code in this post is available in BitBucket here. For this example we’ll create a number of objects that represent servers in our IT infrastructure. We’ll add these objects to a List and then we’ll use ...

Read More »

Functional vs Imperative Programming. Fibonacci, Prime and Factorial in Java 8

There are multiple programming styles/paradigms, but two well-known ones are Imperative and Functional. Imperative programming is the most dominant paradigm as nearly all mainstream languages (C++, Java, C#) have been promoting it. But in the last few years functional programming started to gain attention. One of the main driving factors is that simply all new computers are shipped with 4, ...

Read More »

Java 8 Lambda Expression for Design Patterns – Decorator Design Pattern

The Decorator pattern (also known as Wrapper) allows behavior to be added to an individual object, either statically or dynamically, without affecting the behavior of other objects from the same class. It can be considered as an alternative to subclassing. We know that subclassing adds behavior at compile time and the change affects all instances of the original class. On ...

Read More »

Functional Data Structures in Java 8 with Javaslang

Java 8’s lambdas (λ) empower us to create wonderful API’s. They incredibly increase the expressiveness of the language. Javaslang leveraged lambdas to create various new features based on functional patterns. One of them is a functional collection library that is intended to be a replacement for Java’s standard collections.             Functional Programming Before we deep-dive ...

Read More »

Using Mockito without static imports with Java 8

How to simplify Mockito usage by removing static imports in Java 8 based projects. Rationale Mockito API is based on static methods aggregated (mostly) in the (BDD)Mockito class followed by extremely fluent, chained method calls. Mock creation, stubbing and call verification can be initiated with mock/spy/given/then/verify static methods: @Test public void shouldVerifyMethodExecution() { //given TacticalStation tsSpy = BDDMockito.spy(TacticalStation.class); BDDMockito.willDoNothing().given(tsSpy).fireTorpedo(2); //when ...

Read More »

Java 8 Streams API: Grouping and Partitioning a Stream

This post shows how you can use the Collectors available in the Streams API to group elements of a stream with groupingBy and partition elements of a stream with partitioningBy. Consider a stream of Employee objects, each with a name, city and number of sales, as shown in the table below: +----------+------------+-----------------+ | Name | City | Number of Sales ...

Read More »