Java is an open-source, general-purpose, class-based, object-oriented programming language and platform developed by James Gosling at Sun Micro-systems (first release on 1995), Now it’s acquired by Oracle Corporation.
Platform: Any software or hardware environment in which a program executes, is known as a platform. Since Java has a JRE(Java Runtime Environment) and API, it is called a platform.
- Java is not a pure object-oriented language because it’s having a primitive type and.
- Java does not support pointers but C/C++ supports it. Java allows the garbage collector to relocate unreachable referenced objects to clear from memory, ensures type safety and security.
- Unlike C++, Java does not support operator overloading or multiple inheritances for classes, though multiple inheritances are supported for interfaces.
Where to use JAVA?
These days Java used on so many technical devices:
- Desktop Applications such as media player, acrobat reader, antivirus, etc.
- Web Applications such as icicibank.com, irctc.co.in, javatpoint.com, etc.
- Enterprise Applications such as banking applications.
- Embedded System
- Smart Card
- Robotics etc.
What type of Java application?
Java can be used to develop four types of application development:
- Standalone Application (Media player, antivirus, etc. AWT and Swing)
- Web Application (Servlet, JSP, Struts, Spring, Hibernate, JSF)
- Enterprise Application (EJB provides high-level security, load balancing, and clustering)
- Mobile Application (Android, Java ME)
What is the main Java Platform/ Edition?
There are four platforms and edition in Java :
- Java SE (Java Standard Edition): it provides a programming platform with the supports of APIs such as java.lang, java.io, java.net, java.util, java.sql, java.math etc. It includes core topics like OOPs, String, Regex, Exception, Inner classes, Multi threading, I/O Stream, Networking, AWT, Swing, Reflection, Collection, etc
- Java EE (Java Enterprise Edition): It’s used to develop Web and Enterprise application development. Use Servlet, JSP, JPA, Web Services, EJB, etc.
- Java ME (Java Micro Edition): It’s a micro platform to develop mobile-based applications.
- Java FX: It is used light-weight user interface API to develop rich internet applications.
Features of Java
- Simple: Java is designed to easy to learn. If you know the basics OOPS Concepts, it would easy to master.
- Object-Oriented: Everything in Java is an object. Java can be easily extended to any level because of the Object model.
- Platform Independent: When Java is compiled, it is not compiled into a platform-specific machine, rather into a platform-independent byte code that can run on any JVM in OS.
- Secure: Java authentication technique is based on public-key encryption and secure feature enables to develop of virus-free, temper-free systems. (No Pointer, run inside of JVM sandbox, byte code verifier, security manager)
- Architecture Neutral: Java compiler generates architecture-neutral object file format (byte code) which makes compiled code executable on any machine where Java presents. Write Once Run Anywhere (WORA).
- Portable: Programs written for the Java platform must run similarly on any combination of hardware and operating system. (bytecode)
- Robust: Java eliminates error-prone situations by emphasizing mainly on compile-time error checking and run time checking.
- Multi-threaded: Java’s multi-threaded feature allows us to perform multi-task simultaneously which makes application so interactive.(Mobile)
- Interpreted: JIT (Just in Time) compiler use to translated byte code to machine instructions and is not stored anywhere. The development process is more rapid and analytical since linking is an incremental and light-weight process.
- High Performance: JIT (Just in Time) compiler use to translated byte code to machine language as per need, which enables high performance.
- Distributed: Java is designed for the distributed environment over the internet. (EJB & RMI)
- Dynamic: Java is considered to be more dynamic in comparison to C or C++. Java supports dynamic loading of classes on demand. Java supports dynamic compilation and automatic memory management.
Here is list of major java version and release date.
- JDK 1.0 (January 23, 1996)
- JDK 1.1 (February 19, 1997)
- J2SE 1.2 (December 8, 1998)
- J2SE 1.3 (May 8, 2000)
- J2SE 1.4 (February 6, 2002)
- J2SE 5.0 (September 30, 2004)
- Java SE 6 (December 11, 2006)
- Java SE 7 (July 28, 2011)
- Java SE 8 (March 18, 2014)
- Java SE 9 (September 21, 2017)
- Java SE 10 (March 20, 2018)
- Java SE 11 (September 25, 2018)
- Java SE 12 (March 19, 2019)
- Java SE 13 (September 19, 2019)