Home » Java » Core Java (page 4)

Core Java

JDK 14: Records, Text Blocks, and More

Today’s Mark Reinhold post “JEPs proposed to target JDK 14: 305, 343, 359, 366, & 368” proposes targeting five more JEPs to JDK 14. Some highly anticipated features are among this group, although all but one are proposed to be in “preview” or “incubating”: JEP 305: Pattern Matching for instanceof (Preview)JEP 343: Packaging Tool (Incubator)JEP 359: Records (Preview)JEP 366: Deprecate ...

Read More »

JDK 14: CMS GC is OBE

JDK 14 Early Access Build #23 (2019/11/13) is now available. One of the more noteworthy changes with this build is the removal of the Concurrent Mark Sweep garbage collector. JEP 291 [“Deprecate the Concurrent Mark Sweep (CMS) Garbage Collector”] deprecated the Concurrent Mark Sweep (CMS) garbage collector back in 2017 with JDK 9 and JEP 363 [“Remove the Concurrent Mark ...

Read More »

jstat – Analysis

jstat is a simple utility tool, that is present in JDK to provide JVM performance-related statistics like garbage collection, compilation activities. The major strength of jstat is its ability to capture these metrics dynamically when JVM is running without any pre-requisite instrumentation. What do we mean by it? Say for example if you want to capture garbage collection related statistics, you ...

Read More »

Supporting Java 8

Although Java has version 13 released as for now, there are a lot of production installations running with Java 8. As a professional, I develop Java 8 code many times even these days and I have to be happy that this is not Java 6. On the other hand as an open-source developer, I have my liberty to develop my ...

Read More »

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 »