What is
Java?
Java is
a general-purpose, class-based, object-oriented programming language designed
for having lesser implementation dependencies. It is a computing platform for
application development. Java is fast, secure, and reliable, therefore. It is
widely used for developing Java applications in laptops, data centers, game
consoles, scientific supercomputers, cell phones, etc.
What is
Java Platform?
Java Platform is
a collection of programs that help programmers to develop and run Java
programming applications efficiently. It includes an execution engine, a
compiler, and a set of libraries in it. It is a set of computer software and
specifications. James Gosling developed the Java platform at Sun Microsystems,
and the Oracle Corporation later acquired it.
Java
Definition and Meaning
Java is a multi-platform, object-oriented, and network-centric
language. It is among the most used programming language. Java is also used as
a computing platform.
It is considered as one of the fast, secure, and reliable programming
languages preferred by most organizations to build their projects.
What is Java
used for?
Here are some important Java applications:
- It
is used for developing Android Apps
- Helps
you to create Enterprise Software
- Wide
range of Mobile java Applications
- Scientific
Computing Applications
- Use
for Big Data Analytics
- Java
Programming of Hardware devices
- Used
for Server-Side Technologies like Apache, JBoss, GlassFish, etc.
History of
Java Programming Language
Here are important landmarks from the history of the Java
language:
- The
Java language was initially called OAK.
- Originally,
it was developed for handling portable devices and set-top boxes. Oak was
a massive failure.
- In
1995, Sun changed the name to "Java" and modified the language
to take advantage of the burgeoning www (World Wide Web) development
business.
- Later,
in 2009, Oracle Corporation acquired Sun Microsystems and took ownership
of three key Sun software assets: Java, MySQL, and Solaris.
Java Versions
Here are a brief history of all the Java versions with its
release date.
Java Versions |
Release Date |
JDK Alpha
and Beta |
1995 |
JDK 1.0 |
23rd Jan
1996 |
JDK 1.1 |
19th Feb
1997 |
J2SE 1.2 |
8th Dec
1998 |
J2SE 1.3 |
8th May
2000 |
J2SE 1.4 |
6th Feb
2002 |
J2SE 5.0 |
30th Sep
2004 |
Java SE 6 |
11th Dec
2006 |
Java SE 7 |
28th July
2011 |
Java SE 8 |
18th Mar
2014 |
Java SE 9 |
21st Sep
2017 |
Java SE 10 |
20th Mar
2018 |
JAVA SE 11 |
25th Sep
2018 |
JAVA SE 12 |
19th Mar
2019 |
JAVA SE 13 |
17th Sep
2019 |
JAVA SE 14 |
17th Mar
2020 |
JAVA SE 15 |
15th Sep
2020 (latest Java Version) |
Java Features
Here are some important Java features:
- It
is one of the easy-to-use programming languages to learn.
- Write
code once and run it on almost any computing platform.
- Java
is platform-independent. Some programs developed in one machine can be
executed in another machine.
- It
is designed for building object-oriented applications.
- It
is a multithreaded language with automatic memory management.
- It
is created for the distributed environment of the Internet.
- Facilitates
distributed computing as its network-centric.
Components Of
Java Programming Language
A Java Programmer writes a program in a human-readable language
called Source Code. Therefore, the CPU or Chips never understand the source
code written in any programming
language.
These computers or chips understand only one thing, which is
called machine language or code. These machine codes run at the CPU level.
Therefore, it would be different machine codes for other models of CPU.
However, you need to worry about the machine code, as
programming is all about the source code. The machine understands this source
code and translates them into machine understandable code, which is an
executable code.
All these functionalities happen inside the following 3 Java
platform components:
Java
Development kit (JDK)
JDK is a software development environment used for making
applets and Java applications. The full form of JDK is Java Development Kit.
Java developers can use it on Windows, macOS, Solaris, and Linux. JDK helps
them to code and run Java programs. It is possible to install more than one JDK
version on the same computer.
Why use JDK?
Here are the main reasons for using JDK:
- JDK
contains tools required to write Java programs and JRE to execute them.
- It
includes a compiler, Java application launcher, Appletviewer, etc.
- Compiler
converts code written in Java into byte code.
- Java
application launcher opens a JRE, loads the necessary class, and executes
its main method.
Java Virtual
Machine (JVM):
Java Virtual Machine (JVM) is an engine that provides a runtime
environment to drive the Java Code or applications. It converts Java bytecode
into machine language. JVM is a part of the Java Run Environment (JRE). In
other programming languages, the compiler produces machine code for a
particular system. However, the Java compiler produces code for a Virtual
Machine known as Java Virtual Machine.
Why JVM?
Here are the important reasons of using JVM:
- JVM
provides a platform-independent way of executing Java source code.
- It
has numerous libraries, tools, and frameworks.
- Once
you run a Java program, you can run on any platform and save lots of time.
- JVM
comes with JIT (Just-in-Time) compiler that converts Java source code into
low-level machine language. Hence, it runs faster than a regular
application.
Java Runtime
Environment (JRE)
JRE is a piece of software that is designed to run other
software. It contains the class libraries, loader class, and JVM. In simple
terms, if you want to run a Java program, you need JRE. If you are not a
programmer, you don't need to install JDK, but just JRE to run Java programs.
Why use JRE?
Here are the main reasons of using JRE:
- JRE
contains class libraries, JVM, and other supporting files. It does not
include any tool for Java development like a debugger, compiler, etc.
- It
uses important package classes like math, swing, util, lang, awt, and
runtime libraries.
- If
you have to run Java applets, then JRE must be installed in your system.
Different
Types of Java Platforms
There are four different types of Java programing language
platforms:
1. Java Platform, Standard
Edition (Java SE): Java SE's API offers the
Java programming language's core functionality. It defines all the basis of
type and object to high-level classes. It is used for networking, security,
database access, graphical user interface (GUI) development, and XML parsing.
2. Java Platform,
Enterprise Edition (Java EE): The Java EE
platform offers an API and runtime environment for developing and running
highly scalable, large-scale, multi-tiered, reliable, and secure network
applications.
3. Java Programming
Language Platform, Micro Edition (Java ME): The
Java ME platform offers an API and a small-footprint virtual machine running
Java programming language applications on small devices, like mobile phones.
4. Java FX: JavaFX
is a platform for developing rich internet applications using a lightweight
user-interface API. It user hardware-accelerated graphics and media engines
that help Java take advantage of higher-performance clients and a modern
look-and-feel and high-level APIs for connecting to networked data sources.
To understand Java programming language, we need to understand
some basic concept of how a computer program can run a command and execute the
action.
What is a PC?
A computer is an electronic device capable of performing
computations. We all know that it is composed of a monitor, keyboard, mouse,
and memory to store information. But the most important component of the
computer is a PROCESSOR. This does all thinking of computer, but the question
is how the computer does this thinking? How does it understand the text,
images, videos, etc.?
What is
Assembly Language?
The computer is an electronic device, and it can only understand
electronic signals or binary signals. For example, the 5-volt electronic signal
may represent binary number 1, while 0 volts may represent binary number 0. So
your PC is continuously bombarded with these signals.
Eight bits of such signals are grouped together to interpret
Text, numerical, and symbols.
For example, the # symbol is identified by the computer as
10101010. Similarly, the pattern for adding a function is represented by
10000011.
This is known as 8-bit computing. Current day processor is
capable of decoding 64-bit time. But what is the relation of this concept with
the programming language JAVA? Let understand these as an example.
Suppose if you want to tell the computer to add two numbers
(1+2) represented by some binary numbers (10000011), how are you going to tell
this to your computer? Yes, we are going to use assembly language to get our
code executed.
"Assembly Language is the most elementary form of software
development languages."
We are going to give the command to a computer in this format, as
shown below. Your code to add two numbers in this language would be in this
order.
- Store
number 1 at memory location say A
- Store
number 2 at memory location say B
- Add
contents of Location A & B
- Store
results
But how are we going to do this? Back in the 1950s, when
computers were huge and consumed a great deal of power, you would convert your
assembly code into corresponding machine code to 1 and 0's using mapping
sheets. Later, this code will be punched into the machine cards and feed to the
computer. The computer will read these codes and execute the program. This
would be a long process then until ASSEMBLER came to help.
What are
Assembler and Compiler?
With the advancement in technology, i/o devices were invented.
You could directly type your program into the PC using ASSEMBLER. It converts
it into the corresponding machine code (110001..) and feeds it to your
processor. Coming back to our example addition of (1+2), the assembler will
convert this code into machine code and output.
That apart, you will also have to make calls to create Operating
System provided functions to display the code's output.
But alone the assembler is not involved in this process; it also
requires the compiler to compile the long code into a small chunk of codes.
With the advancement in software development languages, this entire assembly
code could shrink into just one line print f
1+2 A with the software called COMPILER. It is used to convert
your c language code
into assembly code. The assembler converts it into corresponding machine code.
This machine code will be transmitted to the processor. The most common
processor used in PC or Computers are the Intel processor.
Though present-day compilers come bundled with assembler can
directly convert your higher language code into machine code.
Now, suppose the Windows operating system runs on this Intel
processor, a combination of Operating System plus the processor is called the
PLATFORM. The most common platform in the world is Windows, and Intel is called
the Wintel Platform. The other popular platforms are AMD and Linux, Power
PC, and Mac OS X.
Now, with a change in processor, the assembly instructions will
also change. For example:
- Add
instruction in Intel may be called ADDITION for AMD
- OR
Math ADD for Power PC
And, with a change in Operating System, OS-level calls' level
and nature' will also change.
As a developer, I want my software program to work on all
platforms to maximize my revenues. So I would have to buy separate compilers
that convert my print f command into the native machine code.
But compilers come expensive, and there is a chance of
compatibility issues. So buying and installing a separate compiler for
different OS and processor is not feasible. So, what can be an alternative
solution? Enter Java language.
How Java
Virtual Machine works?
By using Java Virtual Machine,
this problem can be solved. But how it works on different processors and O.S.
Let's understand this process step by step.
Step 1) The
code to display the addition of two numbers is System.out.println(1+2), and
saved as a .java file.
Step 2) Using
the java compiler the code is converted into an intermediate code called
the bytecode. The output is
a .class file.
Step 3) This
code is not understood by any platform, but only a virtual platform called
the Java Virtual Machine.
Step 4) This
Virtual Machine resides in the RAM of your operating system. When the Virtual
Machine is fed with this bytecode, it identifies the platform it is working on
and converts the bytecode into the native machine code.
While working on your PC or browsing the web, whenever you see
either of these icons, be assured the java virtual machine is loaded into your
RAM. But what makes Java lucrative is that code, once compiled, can run not
only on all PC platforms but also on mobiles or other electronic gadgets
supporting Java.
Hence,
"Java is a programming language as well as a Platform"
How is Java
Platform Independent?
Like the C compiler, the Java compiler does not produce native
executable code for a particular machine. Instead, Java produces a unique
format called bytecode. It executes according to the rules laid out in the
virtual machine specification. Therefore, Java is a platform-independent
language.
Bytecode is understandable to any JVM installed on any OS. In
short, the java source code can run on all operating systems.
Summary:
- Java
is a multi-platform, object-oriented, and network-centric programming
language Java is a general-purpose, class-based, object-oriented
programming language.
- Java
Platform is a collection of programs that help programmers to develop and
run Java applications efficiently.
- Meaning
of Java: Java is a multi-platform and network-centric programming
language.
- It
is mainly used for developing Android Apps and Enterprise Software.
- 2009,
Oracle Corporation acquired Sun Microsystems and took ownership of three
key Sun software assets: Java, Solaris, and MySQL.
- The
latest version of Java released on September 15th, 2020
- The
best feature of the Java is that it is one of the easiest programming
languages to learn.
- Four
types of Java Programming language platforms are: 1) Java Platform,
Standard Edition (Java SE) 2) Java Platform, Enterprise Edition (Java EE)
3) Java Platform, Micro Edition (Java ME) 4) JavaFX
- A
computer is an electronic device capable of performing computations.
- The
computer only understands electronic signals or binary signals.
- Assembler
is an advanced technology that converts source core to corresponding
machine code (110001..) and feeds to your processor.
0 Comments