Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
38 views

Java Notes

Java is an object-oriented programming language created by James Gosling at Sun Microsystems in 1995. It is a platform-independent language that runs on a Java Virtual Machine, allowing it to run on any device that supports Java without being recompiled. Key features of Java include being object-oriented, robust, secure, simple, and portable across different operating systems and hardware.

Uploaded by

Divya Lalitha
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views

Java Notes

Java is an object-oriented programming language created by James Gosling at Sun Microsystems in 1995. It is a platform-independent language that runs on a Java Virtual Machine, allowing it to run on any device that supports Java without being recompiled. Key features of Java include being object-oriented, robust, secure, simple, and portable across different operating systems and hardware.

Uploaded by

Divya Lalitha
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

JAVA

What is Java?
Java is an object-oriented, class-based, concurrent, secured and general-purpose computer-
programming language. It is a widely used robust technology.

Java is a programming language and a platform. Java is a high level, robust, object-oriented


and secure programming language.

Java was developed by Sun Microsystems (which is now the subsidiary of Oracle) in the year
1995. James Gosling is known as the father of Java. Before Java, its name was Oak. Since
Oak was already a registered company, so James Gosling and his team changed the name
from Oak to Java.

Platform: Any hardware or software environment in which a program runs, is known as a


platform. Since Java has a runtime environment (JRE) and API, it is called a platform.

Why Use Java?


 Java works on different platforms (Windows, Mac, Linux, Raspberry Pi, etc.)
 It is one of the most popular programming language in the world
 It has a large demand in the current job market
 It is easy to learn and simple to use
 It is open-source and free
 It is secure, fast and powerful
 It has a huge community support (tens of millions of developers)
 Java is an object oriented language which gives a clear structure to programs and allows
code to be reused, lowering development costs

As Java is close to C++ and C#, it makes it easy for programmers to switch to Java or vice versa

History of Java
The history of Java is very interesting. Java was originally designed for interactive television,
but it was too advanced technology for the digital cable television industry at the time. The
history of Java starts with the Green Team. Java team members (also known as Green
Team), initiated this project to develop a language for digital devices such as set-top boxes,
televisions, etc. However, it was best suited for internet programming. Later, Java
technology was incorporated by Netscape.

The principles for creating Java programming were "Simple, Robust, Portable, Platform-
independent, Secured, High Performance, Multithreaded, Architecture Neutral, Object-
Oriented, Interpreted, and Dynamic". Java was developed by James Gosling, who is known
as the father of Java, in 1995. James Gosling and his team members started the project in
the early '90s.
Currently, Java is used in internet programming, mobile devices, games, e-business
solutions, etc. Following are given significant points that describe the history of Java.

1) James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language project
in June 1991. The small team of sun engineers called Green Team.

2) Initially it was designed for small, embedded systems in electronic appliances like set-top
boxes.

3) Firstly, it was called "Greentalk" by James Gosling, and the file extension was .gt.

4) After that, it was called Oak and was developed as a part of the Green project.

Why Java was named as "Oak"?

5) Why Oak? Oak is a symbol of strength and chosen as a national tree of many countries
like the U.S.A., France, Germany, Romania, etc.

6) In 1995, Oak was renamed as "Java" because it was already a trademark by Oak


Technologies.

Why Java Programming named "Java"?


7) Why had they chose the name Java for Java language? The team gathered to choose a
new name. The suggested words were "dynamic", "revolutionary", "Silk", "jolt", "DNA", etc.
They wanted something that reflected the essence of the technology: revolutionary,
dynamic, lively, cool, unique, and easy to spell, and fun to say.

According to James Gosling, "Java was one of the top choices along with Silk". Since Java
was so unique, most of the team members preferred Java than other names.

8) Java is an island in Indonesia where the first coffee was produced (called Java coffee). It is
a kind of espresso bean. Java name was chosen by James Gosling while having a cup of
coffee nearby his office.

9) Notice that Java is just a name, not an acronym.

10) Initially developed by James Gosling at Sun Microsystems (which is now a subsidiary of


Oracle Corporation) and released in 1995.

11) In 1995, Time magazine called Java one of the Ten Best Products of 1995.
12) JDK 1.0 was released on January 23, 1996. After the first release of Java, there have
been many additional features added to the language. Now Java is being used in Windows
applications, Web applications, enterprise applications, mobile applications, cards, etc. Each
new version adds new features in Java.

Features of Java

Simple
Java is very easy to learn, and its syntax is simple, clean and easy to understand.
According to Sun Microsystem, Java language is a simple programming language
because:

o Java syntax is based on C++ (so easier for programmers to learn it after C++).
o Java has removed many complicated and rarely-used features, for example, explicit
pointers, operator overloading, etc.
o There is no need to remove unreferenced objects because there is an Automatic
Garbage Collection in Java.

PREPINSTA :

o It can be easily implemented, since,  no concept of pointers explicit memory


allocation as well as structures or operator overloading is used here.
Object-oriented
Java is an object-oriented programming language. Everything in Java is an object.
Object-oriented means we organize our software as a combination of different types
of objects that incorporate both data and behavior.

Object-oriented programming (OOPs) is a methodology that simplifies software


development and maintenance by providing some rules.

Basic concepts of OOPs are:

1. Object
2. Class
3. Inheritance
4. Polymorphism
5. Abstraction
6. Encapsulation

PREPINSTA :

1. One of the factors for the widespread popularity of Java is because it is an


OOP language.
2. We can say that Java is nearly 100% object oriented language. For a language
to be completely object oriented, even it’s primitives will have to be object,
which is not the case here.
3. We have four OOPs concepts:
a. Abstraction
b. Encapsulation
c. Inheritance
d. Polymorphism
Platform Independent

Java is platform independent because it is different from other languages like C, C+


+, etc. which are compiled into platform specific machines while Java is a write once,
run anywhere language. A platform is the hardware or software environment in
which a program runs.

There are two types of platforms software-based and hardware-based. Java provides
a software-based platform.

The Java platform differs from most other platforms in the sense that it is a software-
based platform that runs on top of other hardware-based platforms. It has two
components:

1. Runtime Environment
2. API(Application Programming Interface)

Java code can be executed on multiple platforms, for example, Windows, Linux, Sun
Solaris, Mac/OS, etc. Java code is compiled by the compiler and converted into
bytecode. This bytecode is a platform-independent code because it can be run on
multiple platforms, i.e., Write Once and Run Anywhere (WORA).

PREPINSTA :

 JDK consists of compiler and JRE . Whenever  a java program is compiled, a


dot class file (.class)  will be created which is also known as byte code which
will be allocated to the jvm to be executed.
 Now we know that JVM is platform dependent that is it accesses the
operating system. Since each OS has it’s own JVM, So whatever the OS might
be, output is the same.
 Thus we can say it can run in any environment, i.e, it is Platform Independent.

Secured
Java is best known for its security. With Java, we can develop virus-free systems. Java
is secured because:

o No explicit pointer
o Java Programs run inside a virtual machine sandbox

AD

o Classloader: Classloader in Java is a part of the Java Runtime Environment (JRE)


which is used to load Java classes into the Java Virtual Machine dynamically. It adds
security by separating the package for the classes of the local file system from those
that are imported from network sources.
o Bytecode Verifier: It checks the code fragments for illegal code that can violate
access rights to objects.
o Security Manager: It determines what resources a class can access such as reading
and writing to the local disk.

Java language provides these securities by default. Some security can also be
provided by an application developer explicitly through SSL, JAAS, Cryptography, etc.
PREPINSTA :

 Java codes are converted into byte codes which are implemented on JVM.
 It also performs the tasks of a security manager which kept updated via
internet. It is responsible to throw exceptions.
 For example it raises an OutofBoundary exception in the case of arrays when
the user tries to access the index higher than allocated memory.
 It is also strongly typed language.

Robust
The English mining of Robust is strong. Java is robust because:

o It uses strong memory management.


o There is a lack of pointers that avoids security problems.
o Java provides automatic garbage collection which runs on the Java Virtual Machine to
get rid of objects which are not being used by a Java application anymore.
o There are exception handling and the type checking mechanism in Java. All these
points make Java robust.

PREPINSTA :

 Early identification and checking for errors can be achieved by the help of
garbage collector and exception handler.
 Also a variable cannot be declared without having a data type. All the data
types are pre defined as a part of programming language.
 The advantage of being a strongly typed language is that it imposes a set of
stringent set of rules on the user which guarantees consistency of the output

Architecture-neutral
Java is architecture neutral because there are no implementation dependent features,
for example, the size of primitive types is fixed.
In C programming, int data type occupies 2 bytes of memory for 32-bit architecture
and 4 bytes of memory for 64-bit architecture. However, it occupies 4 bytes of
memory for both 32 and 64-bit architectures in Java.

Portable
Java is portable because it facilitates you to carry the Java bytecode to any platform.
It doesn't require any implementation.

PREPINSTA:

We can write Java program in one environment and implement it on another


environment. It can be easily moved among various OS ( Windows, Linux, Mac ) to
yield the same output.

High-performance
Java is faster than other traditional interpreted programming languages because Java
bytecode is "close" to native code. It is still a little bit slower than a compiled
language (e.g., C++). Java is an interpreted language that is why it is slower than
compiled languages, e.g., C, C++, etc.

AD

Distributed
Java is distributed because it facilitates users to create distributed applications in
Java. RMI and EJB are used for creating distributed applications. This feature of Java
makes us able to access files by calling the methods from any machine on the
internet.

Multi-threaded
A thread is like a separate program, executing concurrently. We can write Java
programs that deal with many tasks at once by defining multiple threads. The main
advantage of multi-threading is that it doesn't occupy memory for each thread. It
shares a common memory area. Threads are important for multi-media, Web
applications, etc.

PREPINSTA:

 A thread  can be defined as a light weight process recognized as smallest unit


of processing.
 Concurrent execution of different parts/threads of a prog.at the same time.for
maximum utlisation of the CPU. 

Dynamic
Java is a dynamic language. It supports the dynamic loading of classes. It means
classes are loaded on demand. It also supports functions from its native languages,
i.e., C and C++.

Java supports dynamic compilation and automatic memory management (garbage


collection).

Memory allocation
 Management of allocation and de allocation of the objects in java is done by
either assigning them to heap or stack for easy access and easily restoring
the data.

Disadvantages of Java
1. Slow and Inferior Performance
 It is memory consuming and of significantly low performance.
 Slow performance due to extra level of compilation and abstraction of JVM and more
memory consuming due to the functioning of garbage collector.

 No backup facility. It is much focused on storing the data than backing up the
data.

2. Complex Codes
  In java the codes are generally complex in comparison to other languages.
 Java has succeeded to become a manageable language but compromised the ease
of understanding for the user.

Application
According to Sun, 3 billion devices run Java. There are many devices where Java is
currently used. Some of them are as follows:

1. Desktop Applications such as acrobat reader, media player, antivirus, etc.


2. Web Applications such as irctc.co.in, javatpoint.com, etc.
3. Enterprise Applications such as banking applications.
4. Mobile
5. Embedded System
6. Smart Card
7. Robotics
8. Games, etc.

Types of Java Applications


There are mainly 4 types of applications that can be created using Java
programming:

1) Standalone Application

Standalone applications are also known as desktop applications or window-based


applications. These are traditional software that we need to install on every machine.
Examples of standalone application are Media player, antivirus, etc. AWT and Swing
are used in Java for creating standalone applications.

2) Web Application

An application that runs on the server side and creates a dynamic page is called a
web application. Currently, Servlet, JSP, Struts, Spring, Hibernate, JSF, etc.
technologies are used for creating web applications in Java.

3) Enterprise Application

An application that is distributed in nature, such as banking applications, etc. is called


an enterprise application. It has advantages like high-level security, load balancing,
and clustering. In Java, EJB is used for creating enterprise applications.
4) Mobile Application

An application which is created for mobile devices is called a mobile application.


Currently, Android and Java ME are used for creating mobile applications.

How Java Platform Independent


Platform independence means that java compiled code (byte code) can run on any
operating system.
A programme is written in a language that is readable by humans. It may contain
words, phrases, or other content that the machine does not understand. To be
understood by the machine, the source code must be written in a machine-readable
language, typically a machine-level language. As a result, a compiler is required. The
compiler converts the high-level language (human language) into a machine-
readable format. As a result, a compiler is a programme that converts source code
from a programming language into executable code.

This executable code may be a sequence of machine instructions that can be


executed by the CPU directly, or it may be an intermediate representation that is
interpreted by a virtual machine. This intermediate representation in Java is the Java
Byte Code.

Step by step Execution of Java Program:

 Whenever, a program is written in JAVA, the javac compiles it.


 The result of the JAVA compiler is the .class file or the bytecode and not the
machine native code (unlike C compiler).
 The bytecode generated is a non-executable code and needs an interpreter to
execute on a machine. This interpreter is the JVM and thus the Bytecode is
executed by the JVM.
 And finally program runs to give the desired output.

In Java, the main point here is that the JVM depends on the operating system – so if
you are running Mac OS X you will have a different JVM than if you are running
Windows or some other operating system. This fact can be verified by trying to
download the JVM for your particular machine – when trying to download it, you will
be given a list of JVMs corresponding to different operating systems, and you will
obviously pick whichever JVM is targeted for the operating system that you are
running. So we can conclude that JVM is platform-dependent and it is the reason
why Java is able to become “Platform Independent”.

 In the case of Java, it is the magic of Bytecode that makes it platform


independent.
 This adds to an important feature in the JAVA language termed as portability.
Every system has its own JVM which gets installed automatically when the
jdk software is installed. For every operating system separate JVM is
available which is capable to read the .class file or byte code.
 An important point to be noted is that while JAVA is platform-independent
language, the JVM is platform-dependent. Different JVM is designed for
different OS and byte code is able to run on different OS.

Internal Working of a Java Code


1. Compile Time
 This step is handled by the JDK that contains the OS- dependent compiler.
 Initially, the source ‘.java’ file is passed through the compiler, which then encodes the
source code into a machine independent encoding, known as Bytecode.
 The content of each class contained in the source file is stored in a separate ‘.class’
file.

2. Run Time
 The bytecode generated by the compiler will be executed by Java Virtual Machine
(JVM).
 To run, the main class file (the class that contains the method main) is passed to the
JVM, and then goes through three main stages before the final machine code is
executed. 
2.1 Classloader

 Java class loader is an abstract class which loads classes from various sources.
 It is a part of the Java Runtime Environment that dynamically loads Java classes into
the Java Virtual Machine. The Java run time system does not need to know about
files and file systems because of class loaders.
 Java classes aren’t loaded into memory all at once, but when required by an
application. At this point, the Java ClassLoader is called by the JRE and these
ClassLoaders load classes into memory dynamically.

2.2 Bytecode Verifier

 A JVM Bytecode Verifier acts a gatekeeper of sorts whose  main task is to check if
the loaded bytecode are valid and do not violate any rules of security.
 it ensures that code passed to the Java interpreter is in a fit state to be executed and
can run without fear of breaking the Java interpreter.
 The following are some of the checks carried out:
o Variables are initialized before they are used.
o Method calls match the types of object references.
o Rules for accessing private data and methods are not violated.
o The run time stack does not overflow.
o It doesn’t forge pointers.
o It doesn’t violate access restrictions.
o It accesses objects as what they are.

If any of the above checks fails, the verifier doesn’t allow the class to be
loaded.

2.3 Just-in-Time Compiler

 This step involves reading the bytecode stream and carrying out the execution of the
program which is done by the conversion of byte code into machine code.
 A JVM is, in effect, a bytecode interpreting machine running on a hardware machine.
This interpreting stage has an overhead and slows the program execution
performance of Java applications. Java bytecode is extremely compact, allowing it to
be easily delivered over a network.

Parameters used in First Java Program


Let's see what is the meaning of class, public, static, void, main, String[],
System.out.println().

o class keyword is used to declare a class in Java.


o public keyword is an access modifier that represents visibility. It means it is visible to
all.
o static is a keyword. If we declare any method as static, it is known as the static
method. The core advantage of the static method is that there is no need to create an
object to invoke the static method. The main() method is executed by the JVM, so it
doesn't require creating an object to invoke the main() method. So, it saves memory.
o void is the return type of the method. It means it doesn't return any value.
o main represents the starting point of the program.
o String[] args or String args[] is used for command line argument. We will discuss it
in coming section.
o System.out.println() is used to print statement. Here, System is a class, out is an
object of the PrintStream class, println() is a method of the PrintStream class. We will
discuss the internal working of System.out.println() statement in the coming section.

You might also like