Introduction to Java:
Java is a high-level programming language based on object-oriented concepts. It thus uses CamelCase syntax. Java is famous because of the below-mentioned points.
- Easy to learn.
- Simple.
- Platform independent.
- also Secure.
- Fast and High Performance.
- Free and Open Source.
- Interpreted and compiled language.
- though Garbage collector.
- Robust.
- Architecture neutral
- Multithreaded also.
History of java & Java Versions:
Java originated from Sun MicroSystems.
James Gosling started the “Java language” at Sun Microsystems in June 1991. Initially, it was named Oak and was developed as a part of the Green project. The name Oak was chosen because it represents a symbol of strength and also chosen as a national tree by many countries like Romania, USA, France, etc.
In 1995, Oak was renamed “Java” because of Oak Technologies which was name it before.
however, ORACLE CORPORATION acquired JAVA And was first released in 1995. The main objective of java is ” WRITE ONCE RUN ANYWHERE ” shortly called ” WORA “.
Common Terms Used In Java Versions are:
1. JVM:
- It stands for Java Virtual Machine. JVM is a “platform dependent”.
- also, It executes the bytecode generated by the java compiler.
- thus, It provides the run-time environment for the applications to execute/run.
- JVM takes care of the Memory area, Register set, also Provides a garbage collection heap.
2. JRE:
- JRE stands for Java runtime environment.
- It also gives an environment to run the java program.
- thus, It consists of JVM and java class libraries.
- JRE however provides a package of tools for running Java codes.
3. JDK:
- JDK stands for Java development kit.
- though It consists of the necessary tools to create java programs.
- therefore, It includes JRE, compilers, java debugger, Javadoc.
- also require to create, compile, and run the java source code.
- In simple terms, it is a package of tools for developing Java-based software.
- It requires a JRE because running Java programs is part of developing the java codes and applications.
4. ByteCode:
Javac compiles the java code and generates bytecode which is saved in a .class file.
hence, The generated .class file now with the help of JVM can be run on any system.
List of Java Editions:
- Java Standard Edition:
- It is an API that also provides the core functionality of the Java programming language.
- therefore, Java SE platform consists of a virtual machine, deployment technologies, development tools, and other class libraries that are commonly used in Java technology applications.
- though, It defines all from the basic types and the objects of the Java programming language to the high-level classes which are used for security, networking, database access, graphical user interface (GUI) development.
- Java Enterprise Edition:
- It is an enterprise platform used for developing web and enterprise applications.
- therefore, It uses support/services from Java SE. It consists of Servlet, JSP, Web Services, EJB, JPA, etc.
- Java Micro Edition:
- It also provides a platform for developing mobile applications. These applications are often clients of Java EE services.
- JavaFX:
- JavaFX is used for developing rich internet applications. It is a light-weight user interface API.
Different Java Versions:
1. 1995( JDK Alpha-beta version):
It consisted of an unstable API. It is not a stable version.
2. 1995( JDK Alpha-Beta Version):
- Oak changed to Java.
- First stable version.
- Access specifiers were added.
3. February 1997 (JDK 1.1) Java Versions:
- Language changes: Inner classes, JavaBeans.
- Library Changes: AWT Event changes, JDBC, and RMI( Remote Method Invocation), JIT(Just In Time compiler for Microsoft Windows platforms).
4. J2SE 1.2 December 1998 Playground:
- Language Changes: the Strictfp keyword.
- Library Changes: Swing as a new UI-System on top of AWT. JVM was added with JIT compiler, Java plugins, and Java IDL (Technology for distributed objects, Similar to RMI but it can interact regardless of the objects written in java or c or c++ or COBOL, etc).
5. J2SE 1.3 May 2000 Kestral:
- Platform changes: Hotspot JVM included. RMI was modified to be compatible with CORBA (Design specification for ORB (Object Request Broker)).
- also, Language changes: Java Naming and Directory interface added to the core libraries.
- Library Changes: Java Platform Debugger Architecture (JPDA), Java Sound, and Synthetic Proxy classes got added.
6. J2SE 1.4 February 2002 Merlin:
- Language changes: The assert keyword.
- Library changes: Regular expressions, Exception chaining, IPV6 support, Non-Blocking IO, Logging API, Image I/O API, Integrated XML Parser, and XSLT(eXtensible Stylesheet Language Transformations) Processor, Integrated security and also cryptography extensions(JCE, JSSE, JAAS), Java Web start included, java.util.prefs.
7. J2SE 5.0 September 2004 Tiger:
- Language changes: Generics, Annotations, enum types.var-args, enhanced for loops.
- Library changes: Concurrent utilities in java.util.concurrent. Scanner class joins for parsing data thus from different input streams and buffers.
8. Java SE6 December 2006 Mustang:
Scripting language support i.e., generic API for tight integration with scripting languages. JDBC 4.0 support. Here, improvements to the existing libraries no extra language features adds up except @Override.
9. Java SE 7 July 2011 Dolphin:
- Language changes: Project coin(Small changes/Enhancements and bug releases). Try-with-resources, the diamond operator(“<TypeName>: to simplify the use of generics ”).
- Library changes: A new Abstracted file-system API with support for virtual file systems. Improved concurrency libraries and elliptic curve encryption.
- Platform changes: Support for dynamic languages.
10. Java SE 8 (LTS) March 2014 Spider (older but maintained):
- Language changes: Lambda expressions, Annotation on java types. Improvements or development in project coin( Small language improvements).
- Library changes: Improved Data and Time API.
11. Java SE 9 September 2017:
Library changes: Java Platform Module System(jigsaw). Modularization of the platform makes the modules to replace the messy classpath and modules with real dependency information.
12. Java SE 10 March 2018:
Language changes: Local variable type inference(var keyword), Garbage Collector Interface.
13. Java SE 11 (LTS) September 2018 (older but maintained):
Language Changes: The Local variable syntax adds up for lambda parameters.
Library changes: JEP 321 HTTP client standardized.
14. Java SE 12 March 2019:
Language changes: It has enhanced Switch expressions for pattern matching. The new Syntax removes the need for a break statement to prevent fall-throughs.
JVM Changes were also made.
15. Java SE 13 September 2019:
Text Blocks, New methods in String class for text blocks. Switch Expression Enhancements. Reimplementation of the socket API.
16. Java SE 14 March 2020:
Switch Expressions (standard). Pattern Matching for instance-of. Helpful Null pointer Exceptions. Packaging tool, NUMA-Aware memory allocation. JFR Event streaming.
17. Java SE 15 September 2020:
Edwards-Curve Digital Signature Algorithm(EdDSA), Sealed classes, Hidden classes, also Remove the Nashorn JavaScript Engine. A Scalable Low Latency Garbage Collector, Foreign Memory Access API.
18. Java SE 16 March 2021:
Vector API, Enable C++14 language features, Migrate from Mercurial to Git, Concurrent Thread-stack processing, Elastic Metaspace.
19. Java SE 17 (LTS) September 2021
Imagelink :- https://medium.com
Conclusion | Java versions:
therefore, Java programming language consists of many different packages and newer packages adds to its libraries for helping developers ease of access and usages in building applications by providing various services. so, You could prefer any Long Term Support java version for development.
written by: Laxmi Narayana
reviewed by: Soutik Maity
If you are Interested In Machine Learning You Can Check Machine Learning Internship Program
Also Check Other Technical And Non Technical Internship Programs