Kayıtlar

Java etiketine sahip yayınlar gösteriliyor

Java 14 New Features

Java SE 14 was released in March 2020. The full list of new features in JDK 14 can be found here: https://openjdk.org/projects/jdk/14/   In this tutorial, we will look over some of these new features and examine some of them. 1. JEP 305: Pattern Matching for instanceof (Preview) With this JEP, instanceof now allows casting of the checked object to a variable. Before Java 14: if (obj instanceof String) { String s = (String) obj; // use s } With Java 14: if (obj instanceof String s) { // can use s here } else { // can't use s here } 2. JEP 345: NUMA-Aware Memory Allocation for G1 This JEP i mproves G1 performance on large machines by implementing NUMA-aware( non-uniform memory access ) memory allocation. Use the  +XX:+UseNUMA option to enable it. 3. JEP 358: Helpful NullPointerExceptions This JEP  improves the usability of  NullPointerException  generated by the JVM by describing precisely which variable was  null . Let's look over the follo...

Java 13 New Features

Java SE 13 was released in September 2019. The full list of new features in JDK 13 can be found here: https://openjdk.java.net/projects/jdk/13/ In this tutorial, we will look over some of these new features and examine some of them. 1. JEP 350: Dynamic CDS Archives Application Class Data Sharing was introduced with JEP 310, Java 10. It allows class loaders to load archived classes with a pre-generated class-data archive file and improves the startup performance.  JEP-350 simplifies the generation of CDS archive files directly from the archive file, instead of providing a list of classes. Create a CDS archive file of a jar file: java -XX:ArchiveClassesAtExit=myapp.jsa -cp myapp.jar MyApp Run a jar file with an existing CDS archive file: java -XX:SharedArchiveFile=myapp.jsa -cp myapp.jar MyApp 2. JEP 351: ZGC: Uncommit Unused Memory Performance improvement for the new ZGC collector introduced in Java 11 with JEP 333. With this JEP, unused heap memory is now being returned to the oper...

Java 12 New Features

Java SE 12 was released in March 2019. The full list of new features in JDK 12 can be found here: https://openjdk.org/projects/jdk/12/   In this tutorial, we will look at some of these new features and examine some of them. 1. JEP 189:  Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) Shenandoah is a new garbage collection (GC) algorithm which reduces GC pause times,  independent of heap size. This GC algorithm is experimental so in order to use it with Java 12, you have to enable it : -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC 2. JEP 325:  Switch Expressions (Preview) This JEP extends the switch statement to be used as either a statement or an expression. Meaning that we can now return a value from a switch expression. Before Java 12, we can return a value by assigning it to a variable: String getColor(int num) { String result = ""; switch (number) { case 1, 2, 3: result = "red, green or blue"; bre...

Java 11 New Features

Java SE 11 was released in September 2018. The full list of new features in JDK 11 can be found here: http://openjdk.java.net/projects/jdk/11/   In this tutorial, we will look at some of these new features and examine some of them. 1. JEP 181: Nest-Based Access Control Java 11 introduces the concept of nestmates. The main class and the types within that form a nest. Members of a nest are called nestmates of each other. JVM allows access to private members between nestmates. However, before Java 11, accessing to private members between nestmates over reflection api is denied. The JEP solves this problem. 2. JEP 318: Epsilon: A No-Op Garbage Collector Epsilon is a No-Op Garbage Collector which does collect nothing and when the heap is full then it will shut down the jvm. It could be used for testing use-cases.  Epsilon GC is experimental and could be used with the following jvm parameters: -XX:+UnlockExperimentalVMOptions -XX:+UseEp...

Servlet

In Java EE world, Servlet simply is a web technology with which we can receive and handle the HTTP requests, create HTTP response and return that response back to the client. Servlet technology makes a basis for other Java web technologies on top of which other frameworks put their extensions. For example JSP, JSF, Spring MVC are such technologies which are uses Servlet technology at behind.  Servlets run on a web container such as Tomcat which provides the services on Java EE technology stack .  What is a servlet ? Servlet simply makes an object having HTTP-server functionality when its class extends HttpServlet class. A servlet is mapped to a URL to which clients request HTTP requests made to the URL is directed to the corresponding Servlet object Servlet implementation receives the request in the form of GET, POST, PUT or DELETE Servlet implementation runs a business logic and prepares an HTTP response and sends it back to the client just an HTTP server does Lif...

The Convergence of OpenJDK and the Oracle JDK

Resim
In 2018, Oracle changed the license of their JDK. Instead of a single JDK build available both for commercial and free users, they offered two different JDK builds: Oracle JDK (commercial), which can be used in development and testing for free, but you have pay to use it in production. Oracle Open JDK (open source), which can be used in any environment for free. JDK Builds There is only one set of source code for the JDK. It is hosted in Mercurial at OpenJDK. Anyone can take the source code, produce a build, and post it. So, Oracle created a certification process that should be used to ensure the build is valid. This certification is run by the Java Community Process, which provides a Technology Compatibility Kit (TCK or JCK as Java). If an organization produces an OpenJDK build that passes the TCK then that build can be described as "Java SE compatible". The most popular and famous builds are distributed by Red Hat, Azul and community-led Adopt OpenJDK. ...

Java EE Technology Stack

Resim
In this article, we will examine the components of Java EE technology stack and historically look at the new comer components and version changes in the components along with the Java EE versions. I will use this article as the umbrella for Java EE stack and update for every new features added to Java EE. About Java Enterprise Edition Under the container architecture named Java Enterprise Edition;   - business logic (projects to EJB)   - contents or presentations (projects to Servlet, JSP, JSF) are developed as software components and then run in a managed execution environment named containers. In terms of Java EE, there are two types of containers; Web container In web container, the components are generated in the form of Servlet, JSP and JSF, called web components. Tomcat is a Java EE web container in which web components can be executed. Application container In the application container, the components are generated in the form of EJBs. Weblogic, We...