Java Training Report
Java Training Report
ON
SKY WAR
SESSION 2017-18
INDUSTRIAL TRAINING
(NCS- 753)
PRAVIN
ANAND
Certificate
I hereby declare that the work which is being presented in this training report entitled
JAVA, towards the partial fulfillment for the award of Bachelor of Technology in
Computer Engineering, submitted in the Department of Computer Engineering at Raj
Kumar Goel Institute of Technology, is record of my work carried out from under the
Guidance of MOBULOUS Technology Noida.
DATE:-31July,2017
Preface
This report is based on the in-house summer training we had undergone in the campus of
MOBULOUS Technology. We obtained the knowledge of JAVA language through the
selfless efforts of the faculty arranged to us by the college administration. The training
was based on JAVA.The experience of the training was good and we learned lots of
things. We were successfully able to complete the training.
Contents
Introduction
Characteristics of java
Java and C
Java and C++
Object Oriented Principles
Classes and Objects
Declaring class members
JavaArchitecture
Garbage Collection in
JVM 10.Java Bytecode
JVM
Packages
API
User-Defined Packages
J2ME or JAVAME
J2EE or JAVAEE
Java Applet
Introduction
Characteristics of Java:
PlatformIndependent
Java byte code is exactly the same on every platform. Java programs that have been
compiled into byte code still need an interpreter to execute them on any given platform.
The interpreter reads the byte code and translates it into the native language of the host
machine on the fly. Since the byte code is completely platform independent, only the
interpreter and a few native libraries need to be ported to get Java to run on a new
computer or operating system.
All these pieces, the java compiler, the java interpreter, the Java programming
language, and more are collectively referred to as Java.
Objectoriented
Robust
Java implements a robust exception handling mechanism to deal with both expected
and unexpected errors. The worst that an applet can do to a host system is bringing
down the runtime environment. It cannot bring down the entire system.
Most importantly Java applets can be executed in an environment that prohibits them
from introducing viruses, deleting or modifying files, or otherwise destroying data and
crashing the host computer. A Java enabled web browser checks the byte codes of an
applet to verify that it doesn't do anything nasty before it will run theapplet.
Multithreaded
Java is inherently multi-threaded. A single Java program can have many different
threads executing independently and continuously. Three Java applets on the same page
can run together with each getting equal time from the CPU with very little extra effort
on the part of theprogrammer.
Highperformance
Java byte codes can be compiled on the fly to code that rivals C++ in speed using a
"just- in-time compiler." Several companies are also working on native-machine-
architecture compilers for Java. These will produce executable code that does not
require a separate interpreter, and that is indistinguishable in speed from C++.
Dynamic
Java programs carry with them substantial amounts of run-time type information that is
used to verify and resolve accesses to objects at run-time. This makes it possible to
dynamically link code in a safe and expedite manner. The java programming language
is unusual than other programming languages it first compiles and then interprets the
program. Compile first translate the program into intermediate language called
intermediate language called java byte code. Java byte code is platform independent
code, which is further interpreted by the interpreter on the java platform. Interpreter
parses and run each java byte code instruction on the computer. Compilation occurs
only once,interpretation occurs each time when the program isexecuted.
Fig 1.1
Java byte code helps in making the program write once, run anywhere. The program
can be compiled into byte code by any platform that is having the java compiler; the
compiled java byte code program is ready to run on any machine having the java
virtual machine (JVM). JVM is an interpreter for byte code.
Need of Java
The main motive for developing java was to meet the need of portable and platform
independent language that could be used to produce code that would run on a variety of
systems.
Java and C
The object oriented programming languages provide mechanisms that help you
implement the object-orientedmodel.
One of the important object-oriented techniques is hiding the data within the class and
making it available only through the methods. This technique is known as
encapsulation because it seals the data (and internal methods) safely inside the
"capsule" of the class,
where it can be accessed only by trusted users (i.e., by the methods of the class). The
most important reason is to hide the internal implementation details of your class. If
you prevent programmers from relying on those details, you can safely modify the
implementation without worrying that you will break existing code that uses the class.
Another reason for encapsulation is to protect your class against accidental or willful
stupidity. A class often contains a number of interdependent fields that must be in a
consistent state. If you allow a programmer (including yourself) to manipulate those
fields directly, he may change one field without changing important related fields, thus
leaving the class in an inconsistent state. If, instead, he has to call a method to change
the field, that method can be sure to do everything necessary to keep the state
consistent. Similarly, if a class defines certain methods for internal use only, hiding
these methods prevents users of the class from calling them. When all the data for a
class is hidden, the methods define the only possible operations that can be performed
on objects of that class. Once you have carefully tested and debugged your methods,
you can be confident that the class will work as expected. On the other hand, if all the
fields of the class can be directly manipulated, the number of possibilities you have to
test becomes unmanageable. There are other reasons to hide fields and methods of a
class, aswell:
Internal fields and methods that are visible outside the class just clutter up the
API. Keeping visible fields to a minimum keeps your class tidy and therefore
easier to use andunderstand.
If a field or method is visible to the users of your class, you have to document
it. Save yourself time and effort by hiding itinstead.
Inheritance
Inheritance is the process by which one object acquires the properties of another object.
This is important because it supports the concept of hierarchical classification. Most
knowledge is made by hierarchical classification. Inheritance is a compile-time
mechanism in Java that allows you to extend a class (called the base class or super
class) with another class (called the derived class or subclass).
In Java, unlike C++, these two types of inheritance are made distinct by using different
language syntax. For class inheritance, Java uses the keyword extends and for interface
inheritance Java uses the keyword implements.In Java, unlike C++, only single class
inheritance is supported. I.e., for a given class, there is only one super class.
Polymorphism
Overloading andOverriding.
Dynamic methodbinding
A class defines user defined objects and their characteristics. Any concept need
to implement in a java program is encapsulated within a class. A class defines the
attributes and methods of objects of the same type sharing common characteristics. The
main components of classes are:
Classes contains statements that include the declaration of data members, which specify
the type of data to be stored. Methods of class contain a set of executable statements
that gives a desired output.
Creating Classes in Java
Code:
class ClassName
//Declaration of methods
class_nameobject_name;
Instantiation or creation: creates an object of the specified class. When you declare an
object, memory is not allocated to it. Therefor you cannot store data in the data
members of the object. New operator is used to allocate memory to an object.
object_name= new_class_name();
Java supports some basic programming elements, such as data types, keywords,
literals, variables and enums. Java is strictly typed language, which means java
gives importance to type checking. Various data types are:
Examples:
Objects
Arrays
Enums
Abstract
DataTypes:
Abstract data types include data types derived from primitive data types and
have more functions than primitive data types. For example, string is an abstract data
type which can store letters, digits and other characters like $, # etc.
Keywords in Java:
Keywords are the reserved words for the java programming language, which
cannot be used as names for variables, classes or methods. They express the language
features. Some keywords are: abstract, case, const, double, finally, if, int, new, public,
Boolean, catch, break, char, etc.
Variable:
The name of a variable needs to be meaningful, short and without any space or
symbol such as ? , !,#, @,etc.
A variable name must be unique.
A variable name must begin with a letter, an underscore (_), or the dollar
symbol ($), which can be followed by a sequence of letters ordigits.
A variable name should not start with a digit.
A variable name should not contain embedded whitespaces.
A variable name should not contain a keyword.
A variable name in Java is case-sensitive. There is a difference between
uppercase and lowercasenames.
Literals in Java:
Literals are the values to be stored in variables and constants. A literal contains a
sequence of characters, such as digits, alphabets, or any other symbol that represents
the value to be stored. Various types of literals are:
Integerliterals
Floating pointliterals
Characterliterals
Stringliterals
Booleanliteral
Java Architecture
Java programs are saved with an extension .java. A .java file is compiled to
generate the .class file, which contains the bytecode. The JVM converts the
bytecode contained in the .class file to machine object code. JVM needs to be
implemented for each platform running on a different operating system.
JVM
JVM forms the base for the Java platform and is convenient to use on various
hardware- based platforms.
Components of JVM:
Class Loader
Executionengine
Just in time(JIT)compiler
Java Application Programming Interface(API)
The Java API is a large collection of ready-made software components that provide
many useful capabilities, such as graphical user interface (GUI). The java API is
grouped into libraries of related classes and interfaces these libraries are known as
packages.
Java interpreter
When a program stops referencing an object, it is not required anymore and can be
deleted. The space that is used by the object is released for use by another object.
Java Bytecode
Java bytecode is the form of instructions that the Java virtual machine executes.
Each bytecode is one byte in length, although some require parameters, resulting in
some multi-byte instructions. A Java programmer does not need to be aware of or
understand Java bytecode. Understanding bytecode and what bytecode is likely to be
generated by a Java compiler helps the Java programmer in the same way
that knowledge of assembly helps the C or C++programmer.
JVM (Java Virtual Machine)
A Java virtual machine (JVM) is a virtual machine that can execute Java
bytecode. It is the code execution component of the Java platform. Sun Microsystems
has stated that there are over 5.5 billion JVM-enabled devices. Programs intended to
run on a JVM must be compiled into Java bytecode, a standardized portable binary
format which typically comes in the form of .class files (Java class files). A program
may consist of many classes in different files. For easier distribution of large programs,
multiple class files may be packaged together in a .jar file (short for Javaarchive).
The Java application launchers offer a standard way of executing Java code, with or
without a console window respectively.
The JVM runtime executes .class or .jar files, emulating the JVM instruction set by
interpreting it or using a just-in-time compiler (JIT) such as Oracle's Hot Spot. JIT
compiling, not interpreting, is used in most JVMs today to achieve greater speed. There
are also ahead-of-time compilers that enable developers to pre-compile class files into
native code for particularplatforms.
Like most virtual machines, the Java virtual machine has a stack-based architecture
akin to a microcontroller/microprocessor. However, the JVM also has low-level
support for Java-like classes and methods, which amounts to a highly idiosyncratic
memory model and capability-basedarchitecture.
Packages
Java enables you to combine set of classes within a package. This enables you
to organize the classes and interfaces. A package is a set of classes that are stored in a
directory, which has the same name as the package name. Java packages are classified
into the following two categories:
Java Application Programming interface (API) packages: The java API consists
of various packages, such as java.lang, java.util, java.io, java.awt, java.net and
java.applet.
Java User defined Packages: The packages that a user creates are called user-
defined packages. The user-defined packages can be imported in any Java
program.
JavaAPI
The java API contains classes that are grouped in different packages in
accordance to theirfunctions.
To use a package's class inside a Java source file, it is convenient to import the classes
from the package with an import declaration.
If you do not use a package declaration, your class ends up in an unnamed package.
Classes in an unnamed package cannot be imported from classes in any other package.
Package Access Protection
Classes within a package can access classes and members declared with default
access and class members declared with the protected access modifier. Default access
is enforced when neither the public, protected nor private access modifier is specified
in the declaration. By contrast, classes in other packages cannot access classes and
members declared with default access. Class members declared as protected can be
accessed from the classes in the same package as well as classes in other packages that
are subclasses of the declaring class.
Packages are usually defined using a hierarchical naming pattern, with levels in
the hierarchy separated by periods ("dot"). A package name begins with the top level
domain name of the organization and then the organization's domain and then any sub
domains, listed in reverse order. The Java Language Specification establishes package
naming conventions to avoid the possibility of two published packages having the same
name. The naming conventions describe how to create unique package names, so that
packages that are widely distributed will have unique namespaces. This allows
packages to be separately, easily and automatically installed and catalogued.
User-DefinedPackage
One can create a user-defined package by using the keyword, package. The
package declaration must be at the beginning of the source file. Only one package
declaration can be made in one source file.
Code:
package <package_name>
// Class definition
public Class<classname1>
public Class<classname2>
The file containing the package is saved as .java file. After compiling the source code, the
.class file is created that is stored in the directory having the same name as the package
name.
Code:
import app.empDetails.Employee
J2ME or JAVA ME
Java EE or J2EE
INTRODUCTION:
You are leaving for work in the morning and someone rings the doorbell. That is
anevent!
In life, you encounter events that force you to suspend other activities and respond to
them immediately. In Java, events represent all activity that goes on between the user
and the application. Javas Abstract Windowing Toolkit (AWT) communicates these
actions to the programs using events. When the user interacts with a program let us say
by clicking a command button, the system creates an event representing the action and
delegates it to the event-handling code within the program. This code determines how
to handle the event so the user gets the appropriate response.
In todays tutorial we are going to learn event-driven programming, the event model of
Java, and the different ways in which you can handle events.
Components of an Event:
Event Object: When the user interacts with the application by clicking a mouse
button or pressing a key an event is generated. The Operating System traps this event
and the data associated with it. For example, info about time at which the event
occurred, the event types (like keypress or mouse click). This data is then passed on to
the application to which the event belongs. In Java, events are represented by objects,
which describe the events themselves. And Java has a number of classes that describe
and handle different categories of events.
Event Source: An event source is the object that generated the event. Example if
you click a button an Action Event Object is generated. The object of the Action Event
class contains information about the event.
Event-Handler: Is a method that understands the event and processes it. The event-
handler method takes the Event object as a parameter. Java uses Event-
DelegationModel
with JDK1.1 onwards; you can specify the objects that are to be notified when a
specific event occurs. If the event is irrelevant, it is discarded. The four main
components based on this model are Event classes, Event Listeners, Explicit event
handling and Adapters. Let us take a closer look at them one byone.
Event Classes:
The EventObject class is at the top of the event class hierarchy. It belongs to the
java.util package. While most of the other event classes are present in java.awt.event
package. The getSource() method of the EventObject class returns the object that
initiated the event. The getId () method returns the nature of the event. For example, if
a mouse event occurs, you can find out whether the event was click, a press, a move or
release
from the event object. AWT provides two conceptual types of events: Semantic and
low- level events.
Semantic events:
A Container Event Object is generated when components are added or removed from
container.
AComponentEventobjectisgeneratedwhenacomponentisresized,movedetc.
A Focus Event object isgenerated when component receives focus for input.
A Key Event object is generated when key on keyboard is pressed, releasedetc.
A Window Event object is generated when a window activity, like maximizing or
close occurs.
A Mouse Event object is generated when a mouse is used.
A Pain Event object is generated when component is painted.
Event Listeners:
An object delegates the task of handling an event to an event listener. when an event
occurs, an event object of the appropriate type (as illustrated below) is created. This
object is passed to a Listener. A listener must implement the interface that has the
methodfor event handling. A component can have multiple listeners, and a listener can
be removed using removeActionListener () method. Next question in your mind must
be what is an interface. An Interface contains constant values and method declaration.
The difference between classes and interface is that the methods in an interface are only
declared and not implemented, that is, the methods do not have a body. What is the
Need for interface? Are interfaces used to define behavior protocols (standard
behavior) that can be implemented by any class anywhere in the class hierarchy. The
java.awt.event package contains definitions of all event classes and listener interface.
The semantic listenerinterfacesdefinebyAWTfortheabovementionedsemanticeventsare:
Action Listener
Adjustment Listener
Item Listener
Text Listener
Applet
An applet is a small Java program that is embedded and ran in some other Java
interpreter program such as a Java technology-enabled browser.suns applet viewer
program called applet viewer.A Java applet is a small application written in Java and
delivered to users in the form of bytecode. The user launches the Java applet from a
web page and it is then executed within a Java Virtual Machine (JVM) in a process
separate from the web browser itself.
How Applets Differ from Applications?
Although both the Applets and stand-alone applications are Java programs, there
arecertain restrictions are imposed on Applets due to securityconcerns.
Applets dont use the main() method,while they are loaded ,automatically
call certain methods (init, start, paint, stop,destroy).
They are embedded inside a web page and executed inbrowsers.
They cannot read from or write to the files on localcomputer.
They cannot communicate with other servers on thenetwork.
They cannot run any programs from the localcomputer.
They are restricted from using libraries from otherlanguages.
The above restrictions ensure that an Applet cannot do any damage to the local
system.
Every applet inherits a set of default behavior from the Applet class. As a result, when
an applet is loaded, it undergoes a series of changes in its state. The applet
statesinclude:
Applet States
It is also invoked when applet moves from idle/stop() state to active state. For
example, when we return back to the Web page after temporary visiting other
pages.
Display invokes paint() - more thanonce
It happens immediately after the applet enters into the running state. It is
responsible for displayingoutput.
Idle invokes stop() - more thanonce
It is invoked when the applet is stopped from running. For example, it occurs
when weleavea webpage.
Dead/Destroyed State invokes destroy() - onlyonce
This occurs automatically by invoking destroy() method when we quite the
browser.
Born
RunningIdle
Dead
Begin
init()
start()
paint()
stop()
start()
destroy()
End()
Viewing Applet
As you know, applets are displayed as a part of a Web page. A special HTML tag,
<APPLET>, is used to attach a Java applet to an HTML page. Running an applet
requires the use of a Web browser or other software that serves the function of a
browser, such as the applet viewer program that ships with the Java developers kit from
Java soft. The browser acts as the operating system for applets-you cannot run an
applet as a standalone program in the same way you can run an executable file. At the
time of this writing, there are three widely available Web browsers that can run Java
applets:
These programs load applets from a Web page and run them remotely on the Web
user's computer. This arrangement raises security issues that must be handled by the
Java language itself and by Java-enabled browsers
Applet method
Public voidinit()
This is the first method to execute. It is the best place to define the GUI
Components.
Public voidstart()
Start are used when the Applet is doing time-consuming calculations that
you dont want to continue when the page is not in front.
Public voiddestroy()
Use to explicitly release system resources.System resources are usually
released automatically
Public voidstop()
If the applet is doing heavy computation that you dont want to continue
when the browser is on some other page.
JDBC
Servlets
The servlet is a Java programming language class used to extend the capabilities
of a server. Although servlets can respond to any types of requests, they are commonly
used to extend the applications hosted by web servers, so they can be thought of as Java
Applets that run on servers instead of in web browsers.Servlets can be generated
automatically from Java Server Pages by the Java Server Pages compiler. The
difference between servlets and JSP is that servlets typically embed HTML inside Java
code, while JSPs embed Java code inHTML.
During initialization stage of the servlet life cycle, the web container
initializes the servlet instance by calling the init()method, passing an
object implementing thejavax.servlet.ServletConfiginterface. This
configuration object allows the servlet to access name-value initialization
parameters from the web application.
After initialization, the servlet instance can service client requests. Each
request is serviced in its own separate thread. The web container calls the
service() method of the servlet for every request. The service() method
determines the kind of request being made and dispatches it to an
appropriate method to handle the request. The developer of the servlet
must provide an implementation for these methods. If a request is made
for a method that is not implemented by the servlet, the method of the
parent class is called, typically resulting in an error being returned to
therequester.
Finally, the web container calls the destroy() method that takes the servlet
out of service. The destroy() method, like init(), is called only once in the
lifecycle of aservlet.
Servlet API
The Servlet 2.3 API consists of two packages: javax.servlet and javax.servlet.http. The base
functionality is defined in the javax.servlet package whose classes and
interfacesoutlineageneric,protocol-independentimplementation.Thismeansyoucanuse it for
non-Web applications, too. Of course, the exam targets the Web, so the HTTP protocol is
the only one discussed in this blog.
Conclusion
This training focused upon increasing our knowledge and interest in toward the java.
Because java is most interesting and most used language in these days. We learnt how
to create a web sites and web pages. It was a great experience. It increases our practical
skills thats the main thing which we learnt in the training session. Thus, we believe
that our project will be beneficial for various purposes & hence our efforts will be
faithful.