Posts

The Convergence of OpenJDK and the Oracle JDK

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 BuildsThere 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.
Oracle Commercial JDK If you …

It's Time For Faster Releases

According to the article published on 2017.09 by Mark Reinhold, the chief architect of the Java Platform Group; Java will have feature releases every six months rather than the present multiyear cycles.
Here is the keynotes: 
Java will have feature releases every six months rather than the present multiyear cycles.After Java 9, a strict, time-based model will be followed witha new feature release every six months,update releases every quarter,and a long-term support release every three years.Feature releases can contain any type of feature, including not just new and improved APIs but also language and JVM features. New features will be merged only when they’re nearly finished, so that the release currently in development is feature-complete at all times. Feature releases will ship in March and September of each year, starting in March of 2018.Update releases will be strictly limited to fixes of security issues, re…

Java 9 New Features

Java SE 9 was released in September 2017 with a rich feature set. 

The full list of new features in JDK 9 can be found here:
http://openjdk.java.net/projects/jdk9/

In this tutorial, we will look at some of these new features and examine some of them.


1. Modular System – Jigsaw ProjectThe Java platform is modularized into numerous modules in Java 9. 
Developers can now create custom runtimes consisitng of the only modules needed by the target application.
We already examine the outlines of Jigsaw project in the following article:
https://www.jtudy.com/2018/03/project-jigsaw.html


2. JEP 223: New Version-String SchemeJava version-string is a string format that contains information about the Java version.
Prior to Jdk 9, it was hard to identify version information from JDK version-string.
With JEP 223, version-string was rearranged with a more systematic naming scheme.

Java version-string consists of major, minor, security and patch version numbers of Java releases.
$MAJOR.$MINOR.$SECURITY.$PATCH
$M…

Project Jigsaw

Jigsaw is the name of the project to build a Java Platform Module System (JPMS) into the Java 9 platform.
http://openjdk.java.net/projects/jigsaw/
Modularizing the Java SE platform has been challenging to implement, and the effort has taken many years. JSR 277: Java Module System was originally proposed in 2005 for Java 7.This JSR was later superseded by JSR 376: Java Platform Module System and targeted for Java 8.The Java SE platform is modularized in Java 9, but only after Java 9 was delayed until September 2017.The Java platform is modularized into numerous modules in Java 9. The number of modules will clearly change with the new features added to the platform. Developers can now create custom runtimes consisitng of the only modules needed by the target application. For example, if the application is cli-based, then the runtime might not include the GUI modules and this will considerably reduce the size of runtime.
1. CompetitorsJBoss ModulesOSGi (extremely complicated)
2. JEPs & JSR…

Java EE 8, The Open Source Way

In 2017, towards the end of the year, Oracle has announced that along with the Java EE 8,
The control of the java enterprise edition will be given to Eclipse Foundation, included the full source code.Meaning that, Oracle is giving the enterprise technology to the Java community.Of course, that does not mean Oracle is dropping out the enterprise Java.Instead, Oracle's commercial offering is going ahead with Oracle WebLogic with the complience to Java EE.And Oracle will continue to support the evolution of the enterprise standards along with other largest contributers such as IBM and Red Hat.

HTTP/2

Http is an application layer protocol designed for client-server communication and can be made analogy as a kind of mail service simply with the following features:
Http header; contains operating information about the message such as destination, content type and etc. in the form of key-value pairs.Payload; is the part that the actual message is contained.HTTP protocol is comprised of commands such as GET, POST, PUT..

History of HTTP by VersionsThe initial version of HTTP is 0.9 which is released in 1991.HTTP 1.0 is released in 1996.HTTP 1.1 is released in 1997.In 2015, the specification of HTTP/2 as a revised version was published by IETF.

Drawbacks of HTTP 1.1Needs multiple connections for concurrencyDoes not compress request and response headers, that means unnecessary network traffic

HTTP/2The main goals of HTTP/2 are simplicity and performance inspired by the experimental protocol SPDY which is released by Google in 2009.HTTP/2 is an extension to the previous HTTP standards, not rep…

Transient

In the context of Java, 
the transient keyword is used as field modifier.
If we declare a field as transient; that field would not be serialized even if the class implements Serializable.
private transient int count;
In Java, transient is used only for fields, so methods, classes and interfaces can not be declared as transient.