Home » Java » Core Java » Page 6

Core Java

Six More JEPs Proposed for JDK 14

A recent Mark Reinhold message announces six new “JEPs proposed to target JDK 14”: JEP 345, JEP 361, JEP 363, JEP 364, JEP 365, and JEP 367. Assuming no objections are made by November 7, these JEPs will be targeted to JDK 14 along with previously targeted JEPs JEP 349 (“JFR Event Streaming”), JEP 352 (“Non-Volatile Mapped Byte Buffers”), and ...

Read More »

Java 13: Enhancements to Switch Expressions

You may remember from my previous post that, in Java 12, the traditional switch statement was enhanced so that it could be used as an expression. In Java 13, there has been a further change to this feature. The break statement can no longer return a value. Instead, you have to use the new yield statement, as shown below: 01 ...

Read More »

Benchmark for new string methods of Java 11

While I was checking what’s new in Java 11, I saw that there are several new methods for String class. So I wanted to do a microbenchmark with old way of doing things and by using new methods. These new methods are; boolean isBlank() String strip() Stream lines() isBlank() is tested agains trim().isEmpty(), strip() is tested agains trim() and lines() ...

Read More »

Locks In Java

A lock is a thread synchronization mechanism like synchronized blocks. Locks are implemented internally using synchronized blocks. Therefore, we can use locks instead of synchronized keywords in Java. A Lock is more flexible and more sophisticated than a synchronized block. From Java 5 version, JDK provides several implementations of locks, like ReentrantReadWriteLock, ReentrantLock, and StampedLock, etc. 1. Differences between Synchronization ...

Read More »

Become a Master of Java Streams – Part 4: Database Streams

SQL has always been a declarative language whereas Java for a long time has been imperative. Java streams have changed the game. Code your way through this hands-on-lab article and learn how Java streams can be used to perform declarative queries to an RDBMS database, without writing a single line of SQL code. You will discover, there is a remarkable ...

Read More »

Better NPE Messages in JDK 14

My March 2019 blog post “Better Default NullPointerException Messages Coming to Java?” was written when the draft JEP for better NullPointerException messages had not yet been targeted to a particular JDK release. Since then, that draft JEP became JEP 358 (“Helpful NullPointerExceptions”), which has been targeted for JDK 14. Even better, the initial implementation (JDK-8218628) is already in the JDK ...

Read More »

Java 13: Text Blocks

Java 13 has delivered the long-awaited multiline strings or Text Blocks. You no longer need to concatenate strings that span multiple lines or escape special characters, which really improves the readability of your code. Text blocks are a preview language feature, which means that they must be explicitly enabled in the Java compiler and runtime using the --enable-preview flag. Here ...

Read More »

A New Era for Determining Equivalence in Java?

A few month ago I read a blog post of the title “A New Era for Determining Equivalence in Java?” and it was somehow very much in line with what I developed that time in my current liebling side project Java::Geci. I recommend that you pause reading here and read the original article and then return here, even knowing that ...

Read More »

7 Options to capture Java heap dumps

Heap Dumps are vital artifacts to diagnose memory-related problems such as slow memory leaks, Garbage Collection problems, and java.lang.OutOfMemoryError.They are also vital artifacts to optimize the memory consumption. There are great tools like Eclipse MAT and Heap Hero to analyze heap dumps. However, you need to provide these tools with heap dumps captured in the correct format and correct point in time. This article gives ...

Read More »