Prepare Interview

Mock Exams

Make Homepage

Bookmark this page

Subscribe Email Address

Difference between Java 14 and Java 15

Java 14 Java 15
Features Added:
- Switch Expressions: It has been made standardized for production code.

- Text Blocks: Text blocks now have two new escape sequences on top of Java 13 features.

- Pattern Matching for instanceof: Pattern matching for instanceof with the aim of eliminating boilerplate code.

- Records: To reduce repetitive boilerplate code in data model POJOs. They simplify day to day development, improve efficiency and greatly minimize the risk of human error. The simple declaration (e.g. public record User(int id, String password) { };) will automatically add a constructor, getters, equals, hashCode and toString methods for us.

- NullPointerExceptions: Now Java has made this easier by adding the capability to point out which object exactly was null in a given line of code.

- Foreign Memory Access API: It is to allow Java programs to access foreign memory, such as native memory, outside the heap in a safe and efficient manner.

- Packaging Tool: Developers can use jlink to condense the JDK down to the minimum required modules, and then use this packaging tool to create a lightweight image that can be installed.

- ZGC: It was introduced in Linux during Java 11. Now got introduced in Windows as well as in macOS.

- NUMA-Aware Memory Allocation for G1: Non-uniform memory access (NUMA) was not implemented so far for the G1 garbage collector, unlike the Parallel collector. It got introduced to make the G1 collector NUMA-aware as well.

- JFR Event Streaming: JDK's flight recorder data is now exposed so that it can be continuously monitored.
Features Added:
- Records: The record is a new type of class in Java that makes it easy to create immutable data objects. It was introduced in Java 14. Java 15 aims to refine a few aspects before becoming an official product feature. The class definition has a new syntax that is specific for records, allow us to override some of the default behaviors.

- Sealed Classes: Java provides no fine-grained control over the inheritance. Sealed classes involve two new keywords — sealed and permits. These are to allow individual classes to declare which types may be used as sub-types. This also applies to interfaces and determining which types can implement them. Any class that extends a sealed class must itself be declared sealed, non-sealed, or final.

- Hidden Classes: It is to allow the runtime creation of classes that are not discoverable.

- Pattern Matching Type Checks: Here got few enhancement top of Java 14. The goal of this feature is to remove a lot of boilerplate code that typically comes with the instanceof operator.

- Foreign Memory API: Foreign memory generally refers to memory that lives outside the managed JVM heap. Because of this, it's not subject to garbage collection and can typically handle incredibly large memory segments. A new VarHandle API, to customize memory access var handles. Support for parallel processing of a memory segment using the Spliterator interface. Enhanced support for mapped memory segments. Ability to manipulate and dereference addresses coming from things like native calls.

- Garbage Collectors: In Java 15, both ZGC and Shenandoah will be no longer be experimental. Both will be supported configurations that teams can opt to use, while the G1 collector will remain the default.

Related differences

Java 13 vs Java 14Java 14 vs Java 15Java 15 vs Java 16
Is it helpful? Yes No

Get differences from below

JSF vs JSPJSP vs ServletsJSP vs ASP
JSF 1.2 vs JSF 2.0JSF 2.0 vs JSF 2.1Java 5 vs Java 6
Java 6 vs Java 6 update 10Java 6 vs Java 7Java 6 update 10 vs Java 6 update 12
Java 1.0 vs Java 1.1Java 1.1 vs Java 1.2Java 1.2 vs Java 1.3
Java 1.3 vs Java 1.4Java 1.4 vs Java 5Struts 1 vs Struts 2
Struts 1.1 vs Struts 1.2Struts 1.2 vs Struts 1.3Linux vs Unix
C vs C++Java vs C++Java vs J2EE
Java vs KotlinJava vs .NETStruts vs JSF
Struts vs SpringSpring vs Spring BootApache vs IIS
Jboss vs TomcatJboss vs WebLogicWebLogic vs Websphere
JavaScript vs JqueryJavaScript vs VBScriptJavaScript vs TypeScript
Jquery vs AngularJSHTML vs XMLHTML vs XHTML
HTML vs DHTMLHTML 5 vs HTML 4Java 7 vs Java 8
EJB 2.0 vs EJB 3.0EJB 3.0 vs SpringJDBC vs Hibernate
JDBC vs JPAJDBC 3.0 vs JDBC 4.0CSS 2 vs CSS 3
EJB 1.0 vs EJB 2.0AWT vs SwingSwing vs Applet
PHP vs JSPJ2EE vs J2MEJava 8 vs Java 9
JPA vs HibernateMVC 1 vs MVC 2Hibernate 3 vs Hibernate 4
Spring 3.0 vs Spring 4.0Java 9 vs Java 10jQuery Mobile vs Bootstrap
JavaBeans vs EJBJSON vs XMLRESTful Web Services vs SOAP Web Services
Spring 2.5 vs Spring 3.0HTTP vs HTTPSAngularJS vs NodeJS
AngularJS vs AngularNodeJS vs JavaNodeJS vs Spring Boot
NodeJS vs GolangPaaS vs IaaSSaaS vs PaaS
SaaS vs IaaSOn-Premise vs Cloud ComputingMonolithic vs Microservices
Java 10 vs Java 11Spring MVC vs Spring BootGolang vs Java
Python vs JavaAWS vs AzureAWS vs Google Cloud/GCP
Ansible vs TerraformAnsible vs PuppetPuppet vs Terraform
OpenID Connect vs OAuth 2.0SAML vs OpenID ConnectJava 11 vs Java 12
Java 12 vs Java 13Java 13 vs Java 14Java 14 vs Java 15
Java 15 vs Java 16Java 16 vs Java 17Python 2 vs Python 3
RDBMS vs HadoopAngular vs ReactJava 17 vs Java 18
GraphQL vs RESTful Web Services (REST API)RESTful Web Services (REST API) vs gRPCAndroid vs iOS
TikTok vs InstagramInstagram vs YouTubeTensorFlow vs PyTorch
OracleJDK vs OpenJDK
©2024 WithoutBook