SlideShare a Scribd company logo
Introduction
What is Java
• A general purpose Programming Language
• Most Famous Object Oriented Programming
Language.
• Suited for the web and networked services,
applications, platform independent desktops,
robotics, embedded devices.
Java No Longer a
Programming Language
but a Platform
History of Java
• Developed by James Gosling, Mike Sheridan,
Patrick Naughton et. al;
• When working on green project;
• The goal of this project was to control
microprocessor embedded in electronic
devices.
• To perform this task, a platform independent,
reliable, and compact language was needed
History of Java
• Gosling was given task to identify the proper
programming language for the project.
• Gosling decided to develop a new language to
avoid the problems of current programming
languages(C++ especially)
• The new language developed for this purpose
is called “Oak”
History of Java
It consist of –
• Oak Programming Language
• An Operating System
• An User Interface
• A Hardware
Java Versions
• JDK 1.0 1996
• JDK 1.1 1997
• JDk 1.2 1998 (Java 2)
• JDK 1.3 2000 (Java 2)
• JDK 1.4 2002 (Java 2)
• JDK 5.0 2004 (J2SE 5.0)
• JDK 6.0 2006 (Java SE 6)
• JDK 7.0 2010
With the advancement of Java and its
widespread popularity, multiple
configurations were built to suite various
types of platforms.
Ex: J2EE for Enterprise Applications
J2ME for Mobile Applications.
• Sun Microsystems has renamed the new J2
versions as Java SE, Java EE and Java ME
respectively.
• Java is guaranteed to be Write Once, Run
Anywhere.
1  java programming- introduction
Object Oriented
• Java, everything is an Object.
• Java can be easily extended since it is based
on the Object model.
Platform independent
• Unlike many other programming languages
including C and C++, when Java is compiled, it
is not compiled into platform specific
machine, rather into platform independent
byte code. This byte code is distributed over
the web and interpreted by virtual Machine
(JVM) on whichever platform it is being run.
Simple
• Java is designed to be easy to learn. If you
understand the basic concept of OOP Java
would be easy to master.
Secure
• With Java's secure feature it enables to
develop virus-free, tamper-free systems.
Authentication techniques are based on
public-key encryption.
Architectural-neutral
• Java compiler generates an architecture-
neutral object file format which makes the
compiled code to be executable on many
processors, with the presence of Java runtime
system.
Portable
• Being architectural-neutral and having no
implementation dependent aspects of the
specification makes Java portable.
• Compiler in Java is written in ANSI C
Robust
• Java makes an effort to eliminate error prone
situations by emphasizing mainly on compile
time error checking and runtime checking.
Multithreaded
• With Java's multithreaded feature it is
possible to write programs that can do many
tasks simultaneously. This design feature
allows developers to construct smoothly
running interactive applications.
Interpreted
• Java byte code is translated on the fly to
native machine instructions and is not stored
anywhere. The development process is more
rapid and analytical since the linking is an
incremental and light weight process.
High Performance
• With the use of Just-In-Time compilers, Java
enables high performance
Distributed
• Java is designed for the distributed
environment of the internet
Dynamic
• Java is considered to be more dynamic than C
or C++ since it is designed to adapt to an
evolving environment. Java programs can
carry extensive amount of run-time
information that can be used to verify and
resolve accesses to objects on run-time.
Java Environment
Java Programming Language
JDK JSL
Java Programming Environment
Java Environment
(Java Development Environment)
A set of Programming Tools
(Java Standard Library)
(A collection of Classes and Methods)
It is also called Java API
Java Development Kit
(JDK)
• A Software Package
• Sun Microsystems made it available free on
the website
• Includes all basic components of Java
Environment
Java Development Kit
(JDK) - Tools
Java Development Kit
File Structure(C:jdk)
jdk
include
bin
lib
jre demo
Src.zip
• A collection of utilities that help u to develop,
execute, debug and document java programs
• Include-
– javac.exe
– java.exe
– javadoc.exe
– appletviewer.exe
Java Development Kit
bin
• Contains files that support native code
programming
• integrate java with other programming
languages.
• Include-
– jawet.h
– jni.h
Java Development Kit
include
Un T
• Root directory of Java Run Time Environment
• Includes
– JVM(Java Virtual Machine)
– runtime class libraries
– java application launcher
Java Development Kit
jre
• Includes additional class libraries and support
files required by the development tools
– htmlconvertor
– jconsole
Java Development Kit
lib
• Consist of sample programs with source code
Java Development Kit
demo
• Compressed files contain source code for java
API classes(that are included in JDK)
• We can unpack these files.
• The source code in these files helps
developers to learn and use the java
programming language
Java Development Kit
src.zip
1  java programming- introduction
• A command line tool that reads java source
code files and compiles it into executable byte
code classes.
Hello.java Hello.class
javac [Options] [File Name]
Example- Javac Hello.java
Syntax
• Java programs are compiled to byte code and
not in native code.
• Hence it can not be run on the machine
directly.
• Java Runtime Interpreter implements Java
Virtual Machine(JVM) and runs java
applications.
• It is used to run java .class file by doing
following two things-
– Starting Java Runtime Environment(JRE)
– Loading the specified class
– Invoking the main() method
Hello.class
java [ Options ] [ Class Name ] [ Arguments ]
Example- Java Hello
Syntax
OUTPUT
• A command line tool
• Used to run applet without the need of a web
browser
• Command line tool helps
• Used to find out and fixes bugs in java
programs
jdb [Options] [Class Name] [Arguments]
• A command line tool
• Reads java bytecode class files
• Print human readable version of API defined
by those classes.
• A command line tool
• Produces two c files
– C Header file
– C stub file
• These C files are used to implement native
methods
• The header file contains the declaration for
the C implementation function and structure
definition
• Stub file provide the glue that binds the java
method invocations and object references to
the C code
• The header file name is appended with .h
• The stub file name is appended with .c
• A command line tool
• Used to generate documentation in the form
of HTML pages
txt • Text Editor
.java • Java Source Code
Javac • Java Compiler
.class • Java Class File
Java • Java Interpreter
Java • Java Program Output
javadoc HTML Files
javah Header and Stub Files
jdb
Java Virtual Machine (JVM)
• A Component of Java System
• It interprets and executes the instructions in
our class files.
Figure 1: Memory configuration by the JVM.
ea
Class Files
Execution
Engine
Native Method
Interface
Native Method
Libraries
• Each instance of the JVM has one method area,
one heap, and one or more stacks - one for each
thread
• When JVM loads a class file, it puts its information
in the method area
• As the program runs, all objects instantiated are
stored in the heap
• The stack area is used to store activation records as
a program runs
Stack
Frame
Stack
Frame
Stack
Frame
Stack
Frame
Stack
Frame
Stack
Frame
Object Object
Object Object
Object Object
Class
Data
Class
Data
Class
Data
Class
Data
Class
Data
Class
Data
Method Area Heap Stack Area
Thread 1 Thread 2
• The class loader performs three main functions of
JVM, namely:
• The linking process consists of three sub-tasks,
namely,
Load
Link
Initialize
Verify
Prepare
Resolve
• Loading means reading the class file for a type, parsing it to get its
information, and storing the information in the method area.
• For each type it loads, the JVM must store the following information
in the method area:
– The fully qualified name of the type
– The fully qualified name of the type's direct superclass or if the type is an
interface, a list of its direct super interfaces .
– Whether the type is a class or an interface
– The type's modifiers ( public, abstract, final, etc)
– Constant pool for the type: constants and symbolic references.
– Field info : name, type and modifiers of variables (not constants)
– Method info: name, return type, number & types of parameters, modifiers,
bytecodes, size of stack frame and exception table.
• The end of the loading process is the creation of an instance of java.lang.Class for the loaded
type.
• The purpose is to give access to some of the information captured in the method area for
the type, to the programmer.
• Some of the methods of the class java.lang.Class are:
• Note that for any loaded type T, only one instance of java.lang.Class is created even if T is
used several times in an application.
• To use the above methods, we need to first call the getClass() method on any instance of T
to get the reference to the Class instance for T.
public String getName()
public Class getSupClass()
public boolean isInterface()
public Class[] getInterfaces()
public Method[] getMethods()
public Fields[] getFields()
public Constructor[] getConstructors()
Instances of Class objects created in the heap at runtime
import java.lang.reflect.Method; // Required!
//you must import your Circle class
public class TestClassClass{
public static void main(String[] args) {
String name = new String(“Ahmed”);
Class nameClassInfo = name.getClass();
System.out.println("Class name is : “ + nameClassInfo.getName());
System.out.println("Parent is : “ + nameClassInfo.getSuperclass());
Method[] methods = nameClassInfo.getMethods();
System.out.println("nMethods are: ");
for(int i = 0; i < methods.length; i++)
System.out.println(methods[i]);
}
}
Verify
Prepare
Resolve
• The next process handled by the class loader is Linking. This involves three sub-
processes: Verification, Preparation and Resolution
• Verification is the process of ensuring that binary representation of a class is
structurally correct
• The JVM has to make sure that a file it is asked to load was generated by a valid
compiler and it is well formed
• Class B may be a valid sub-class of A at the time A and B were compiled, but class A
may have been changed and re-compiled
• Example of some of the things that are checked at verification are:
– Every method is provided with a structurally correct signature
– Every instruction obeys the type discipline of the Java language
– Every branch instruction branches to the start not middle of another
instruction
• In this phase, the JVM allocates memory for the class (i.e static) variables
and sets them to default initial values.
• Note that class variables are not initialized to their proper initial values until the
initialization phase - no java code is executed until initialization.
• The default values for the various types are shown below:
• Resolution is the process of replacing symbolic names for types, fields and methods used
by a loaded type with their actual references.
• Symbolic references are resolved into a direct references by searching through the method
area to locate the referenced entity.
• For the class below, at the loading phase, the class loader would have loaded the classes:
TestClassClass, String, System and Object.
• The names of these classes would have been stored in the constant pool for TestClassClass.
• In this phase, the names are replaced with their actual references.
public class TestClassClass{
public static void main(String[] args){
String name = new String(“Ahmed”);
Class nameClassInfo = name.getClass();
System.out.println("Parent is: “ + nameClassInfo.getSuperclass());
}
}
• This is the process of setting class variables to their proper initial values - initial values desired by
the programmer.
• Initialization of a class consists of two steps:
– Initializing its direct superclass (if any and if not already initialized)
– Executing its own initialization statements
• The above imply that, the first class that gets initialized is Object.
• Note that static final variables are not treated as class variables but as constants and are
assigned their values at compilation.
class Example1 {
static double rate = 3.5;
static int size = 3*(int)(Math.random()*5);
...
}
class Example2 {
static final int angle = 35;
static final int length = angle * 2;
...
}
• After a class is loaded, linked, and initialized, it is ready for use. Its
static fields and static methods can be used and it can be instantiated.
• When a new class instance is created, memory is allocated for all its instance
variables in the heap.
• Memory is also allocated recursively for all the instance variables declared in its
super class and all classes up is inheritance hierarchy.
• All instance variables in the new object and those of its superclasses are then
initialized to their default values.
• The constructor invoked in the instantiation is then processed according to the
rules shown on the next page.
• Finally, the reference to the newly created object is returned as the result.
Rules for processing a constructor:
1. Assign the arguments for the constructor to its parameter variables.
2. If this constructor begins with an explicit invocation of another constructor in the
same class (using this), then evaluate the arguments and process that constructor
invocation recursively.
3. If this constructor is for a class other than Object, then it will begin with an explicit
or implicit invocation of a superclass constructor (using super). Evaluate the
arguments and process that superclass constructor invocation recursively.
4. Initialize the instance variables for this class with their proper values.
5. Execute the rest of the body of this constructor.
class GrandFather {
int grandy = 70;
public GrandFather(int grandy) {
this.grandy = grandy;
System.out.println("Grandy: "+grandy);
}
}
class Father extends GrandFather {
int father = 40;
public Father(int grandy, int father) {
super(grandy);
this.father = father;
System.out.println("Grandy: "+grandy+" Father: "+father);
}
}
class Son extends Father {
int son = 10;
public Son(int grandy, int father, int son) {
super(grandy, father);
this.son = son;
System.out.println("Grandy: "+grandy+" Father: "+father+" Son: "+son);
}
}
public class Instantiation {
public static void main(String[] args) {
Son s = new Son(65, 35, 5);
}
}
Ad

More Related Content

What's hot (20)

Core java slides
Core java slidesCore java slides
Core java slides
Abhilash Nair
 
core java
core javacore java
core java
Roushan Sinha
 
Introduction to Java Programming
Introduction to Java ProgrammingIntroduction to Java Programming
Introduction to Java Programming
Ravi Kant Sahu
 
Introduction to java
Introduction to java Introduction to java
Introduction to java
Sandeep Rawat
 
Introduction to java technology
Introduction to java technologyIntroduction to java technology
Introduction to java technology
Indika Munaweera Kankanamge
 
Java Programming
Java ProgrammingJava Programming
Java Programming
Elizabeth alexander
 
Introduction to JAVA
Introduction to JAVAIntroduction to JAVA
Introduction to JAVA
ParminderKundu
 
Training on Core java | PPT Presentation | Shravan Sanidhya
Training on Core java | PPT Presentation | Shravan SanidhyaTraining on Core java | PPT Presentation | Shravan Sanidhya
Training on Core java | PPT Presentation | Shravan Sanidhya
Shravan Sanidhya
 
Presentation on Core java
Presentation on Core javaPresentation on Core java
Presentation on Core java
mahir jain
 
Core Java
Core JavaCore Java
Core Java
NA
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
Saba Ameer
 
Java Programming Basics
Java Programming BasicsJava Programming Basics
Java Programming Basics
Rkrishna Mishra
 
Introduction of java
Introduction  of javaIntroduction  of java
Introduction of java
Madishetty Prathibha
 
Java seminar
Java seminarJava seminar
Java seminar
devendrakhairwa
 
Chapter 1. java programming language overview
Chapter 1. java programming language overviewChapter 1. java programming language overview
Chapter 1. java programming language overview
Jong Soon Bok
 
Basic Java Programming
Basic Java ProgrammingBasic Java Programming
Basic Java Programming
Math-Circle
 
Java features
Java featuresJava features
Java features
Prashant Gajendra
 
Industrial Training Report on Java Technology.
Industrial Training Report on Java Technology.Industrial Training Report on Java Technology.
Industrial Training Report on Java Technology.
Ritesh Kumar Bhanu
 
Features of java
Features of javaFeatures of java
Features of java
Hitesh Kumar
 
Introduction to basics of java
Introduction to basics of javaIntroduction to basics of java
Introduction to basics of java
vinay arora
 
Introduction to Java Programming
Introduction to Java ProgrammingIntroduction to Java Programming
Introduction to Java Programming
Ravi Kant Sahu
 
Introduction to java
Introduction to java Introduction to java
Introduction to java
Sandeep Rawat
 
Training on Core java | PPT Presentation | Shravan Sanidhya
Training on Core java | PPT Presentation | Shravan SanidhyaTraining on Core java | PPT Presentation | Shravan Sanidhya
Training on Core java | PPT Presentation | Shravan Sanidhya
Shravan Sanidhya
 
Presentation on Core java
Presentation on Core javaPresentation on Core java
Presentation on Core java
mahir jain
 
Core Java
Core JavaCore Java
Core Java
NA
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
Saba Ameer
 
Chapter 1. java programming language overview
Chapter 1. java programming language overviewChapter 1. java programming language overview
Chapter 1. java programming language overview
Jong Soon Bok
 
Basic Java Programming
Basic Java ProgrammingBasic Java Programming
Basic Java Programming
Math-Circle
 
Industrial Training Report on Java Technology.
Industrial Training Report on Java Technology.Industrial Training Report on Java Technology.
Industrial Training Report on Java Technology.
Ritesh Kumar Bhanu
 
Introduction to basics of java
Introduction to basics of javaIntroduction to basics of java
Introduction to basics of java
vinay arora
 

Viewers also liked (18)

Java basic
Java basicJava basic
Java basic
Sonam Sharma
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
Veerabadra Badra
 
Oops in c
Oops in cOops in c
Oops in c
baabtra.com - No. 1 supplier of quality freshers
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
ASU Online
 
Java training in delhi
Java training in delhiJava training in delhi
Java training in delhi
APSMIND TECHNOLOGY PVT LTD.
 
Introduction to java Programming
Introduction to java ProgrammingIntroduction to java Programming
Introduction to java Programming
Ahmed Ayman
 
Introduction to JAVA
Introduction to JAVAIntroduction to JAVA
Introduction to JAVA
javatrainingonline
 
Griffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java TechnologyGriffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java Technology
James Williams
 
An introduction to java programming language forbeginners(java programming tu...
An introduction to java programming language forbeginners(java programming tu...An introduction to java programming language forbeginners(java programming tu...
An introduction to java programming language forbeginners(java programming tu...
Daroko blog(www.professionalbloggertricks.com)
 
Ozis Pre
Ozis PreOzis Pre
Ozis Pre
ozis_studio
 
1 introduction to java technology
1 introduction to java technology1 introduction to java technology
1 introduction to java technology
rendezvous07
 
Android - 04 - Internship project introduction
Android - 04 - Internship project introductionAndroid - 04 - Internship project introduction
Android - 04 - Internship project introduction
Noveo
 
Chapter 1 introduction to java technology
Chapter 1 introduction to java technologyChapter 1 introduction to java technology
Chapter 1 introduction to java technology
sshhzap
 
Java 7 - State of the Enterprise
Java 7 - State of the EnterpriseJava 7 - State of the Enterprise
Java 7 - State of the Enterprise
Markus Eisele
 
Whitep paper on Emerging java and .net technology and critical trends
Whitep paper on Emerging java and .net technology and critical trendsWhitep paper on Emerging java and .net technology and critical trends
Whitep paper on Emerging java and .net technology and critical trends
Rakesh Jha
 
Introduction to java 101
Introduction to java 101Introduction to java 101
Introduction to java 101
kankemwa Ishaku
 
Introduction to Java Programming
Introduction to Java ProgrammingIntroduction to Java Programming
Introduction to Java Programming
Pokequesthero
 
Java Basics
Java BasicsJava Basics
Java Basics
shivamgarg_nitj
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
ASU Online
 
Introduction to java Programming
Introduction to java ProgrammingIntroduction to java Programming
Introduction to java Programming
Ahmed Ayman
 
Griffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java TechnologyGriffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java Technology
James Williams
 
1 introduction to java technology
1 introduction to java technology1 introduction to java technology
1 introduction to java technology
rendezvous07
 
Android - 04 - Internship project introduction
Android - 04 - Internship project introductionAndroid - 04 - Internship project introduction
Android - 04 - Internship project introduction
Noveo
 
Chapter 1 introduction to java technology
Chapter 1 introduction to java technologyChapter 1 introduction to java technology
Chapter 1 introduction to java technology
sshhzap
 
Java 7 - State of the Enterprise
Java 7 - State of the EnterpriseJava 7 - State of the Enterprise
Java 7 - State of the Enterprise
Markus Eisele
 
Whitep paper on Emerging java and .net technology and critical trends
Whitep paper on Emerging java and .net technology and critical trendsWhitep paper on Emerging java and .net technology and critical trends
Whitep paper on Emerging java and .net technology and critical trends
Rakesh Jha
 
Introduction to java 101
Introduction to java 101Introduction to java 101
Introduction to java 101
kankemwa Ishaku
 
Introduction to Java Programming
Introduction to Java ProgrammingIntroduction to Java Programming
Introduction to Java Programming
Pokequesthero
 
Ad

Similar to 1 java programming- introduction (20)

JAVA PROGRAM CONSTRUCTS OR LANGUAGE BASICS.pptx
JAVA PROGRAM CONSTRUCTS OR LANGUAGE BASICS.pptxJAVA PROGRAM CONSTRUCTS OR LANGUAGE BASICS.pptx
JAVA PROGRAM CONSTRUCTS OR LANGUAGE BASICS.pptx
AALIM MUHAMMED SALEGH COLLEGE OF ENGINEERING
 
CS8392 OOP
CS8392 OOPCS8392 OOP
CS8392 OOP
DhanalakshmiVelusamy1
 
oop unit1.pptx
oop unit1.pptxoop unit1.pptx
oop unit1.pptx
sureshkumara29
 
Java Introduction
Java IntroductionJava Introduction
Java Introduction
sunmitraeducation
 
j-chap1-Basics.ppt
j-chap1-Basics.pptj-chap1-Basics.ppt
j-chap1-Basics.ppt
SmitaBorkar9
 
Comp102 lec 3
Comp102   lec 3Comp102   lec 3
Comp102 lec 3
Fraz Bakhsh
 
JavaClassPresentation
JavaClassPresentationJavaClassPresentation
JavaClassPresentation
juliasceasor
 
Java Programming Fundamentals: Complete Guide for Beginners
Java Programming Fundamentals: Complete Guide for BeginnersJava Programming Fundamentals: Complete Guide for Beginners
Java Programming Fundamentals: Complete Guide for Beginners
Taranath Jaishy
 
2. Introduction to Java for engineering stud
2. Introduction to Java for engineering stud2. Introduction to Java for engineering stud
2. Introduction to Java for engineering stud
vyshukodumuri
 
JAVAPart1_BasicIntroduction.pptx
JAVAPart1_BasicIntroduction.pptxJAVAPart1_BasicIntroduction.pptx
JAVAPart1_BasicIntroduction.pptx
Murugesh33
 
JAVA_Day1_BasicIntroduction.pptx
JAVA_Day1_BasicIntroduction.pptxJAVA_Day1_BasicIntroduction.pptx
JAVA_Day1_BasicIntroduction.pptx
Murugesh33
 
2 22CA026_Advance Java Programming_Data types and Operators.pptx
2 22CA026_Advance Java Programming_Data types and Operators.pptx2 22CA026_Advance Java Programming_Data types and Operators.pptx
2 22CA026_Advance Java Programming_Data types and Operators.pptx
dolphiverma80
 
Object Oriented Programming Part 1 of Unit 1
Object Oriented Programming Part 1 of Unit 1Object Oriented Programming Part 1 of Unit 1
Object Oriented Programming Part 1 of Unit 1
VigneshkumarPonnusam1
 
Presentation on java
Presentation  on  javaPresentation  on  java
Presentation on java
shashi shekhar
 
JAVA PROGRAMING NOTE FOR BEGINNERS 20242
JAVA PROGRAMING NOTE FOR BEGINNERS 20242JAVA PROGRAMING NOTE FOR BEGINNERS 20242
JAVA PROGRAMING NOTE FOR BEGINNERS 20242
boatengsolo963
 
PPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptPPS Java Overview Unit I.ppt
PPS Java Overview Unit I.ppt
CDSukte
 
PPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptPPS Java Overview Unit I.ppt
PPS Java Overview Unit I.ppt
RajeshSukte1
 
basic core java up to operator
basic core java up to operatorbasic core java up to operator
basic core java up to operator
kamal kotecha
 
Skillwise Elementary Java Programming
Skillwise Elementary Java ProgrammingSkillwise Elementary Java Programming
Skillwise Elementary Java Programming
Skillwise Group
 
object oriented programming unit one ppt
object oriented programming unit one pptobject oriented programming unit one ppt
object oriented programming unit one ppt
isiagnel2
 
j-chap1-Basics.ppt
j-chap1-Basics.pptj-chap1-Basics.ppt
j-chap1-Basics.ppt
SmitaBorkar9
 
JavaClassPresentation
JavaClassPresentationJavaClassPresentation
JavaClassPresentation
juliasceasor
 
Java Programming Fundamentals: Complete Guide for Beginners
Java Programming Fundamentals: Complete Guide for BeginnersJava Programming Fundamentals: Complete Guide for Beginners
Java Programming Fundamentals: Complete Guide for Beginners
Taranath Jaishy
 
2. Introduction to Java for engineering stud
2. Introduction to Java for engineering stud2. Introduction to Java for engineering stud
2. Introduction to Java for engineering stud
vyshukodumuri
 
JAVAPart1_BasicIntroduction.pptx
JAVAPart1_BasicIntroduction.pptxJAVAPart1_BasicIntroduction.pptx
JAVAPart1_BasicIntroduction.pptx
Murugesh33
 
JAVA_Day1_BasicIntroduction.pptx
JAVA_Day1_BasicIntroduction.pptxJAVA_Day1_BasicIntroduction.pptx
JAVA_Day1_BasicIntroduction.pptx
Murugesh33
 
2 22CA026_Advance Java Programming_Data types and Operators.pptx
2 22CA026_Advance Java Programming_Data types and Operators.pptx2 22CA026_Advance Java Programming_Data types and Operators.pptx
2 22CA026_Advance Java Programming_Data types and Operators.pptx
dolphiverma80
 
Object Oriented Programming Part 1 of Unit 1
Object Oriented Programming Part 1 of Unit 1Object Oriented Programming Part 1 of Unit 1
Object Oriented Programming Part 1 of Unit 1
VigneshkumarPonnusam1
 
JAVA PROGRAMING NOTE FOR BEGINNERS 20242
JAVA PROGRAMING NOTE FOR BEGINNERS 20242JAVA PROGRAMING NOTE FOR BEGINNERS 20242
JAVA PROGRAMING NOTE FOR BEGINNERS 20242
boatengsolo963
 
PPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptPPS Java Overview Unit I.ppt
PPS Java Overview Unit I.ppt
CDSukte
 
PPS Java Overview Unit I.ppt
PPS Java Overview Unit I.pptPPS Java Overview Unit I.ppt
PPS Java Overview Unit I.ppt
RajeshSukte1
 
basic core java up to operator
basic core java up to operatorbasic core java up to operator
basic core java up to operator
kamal kotecha
 
Skillwise Elementary Java Programming
Skillwise Elementary Java ProgrammingSkillwise Elementary Java Programming
Skillwise Elementary Java Programming
Skillwise Group
 
object oriented programming unit one ppt
object oriented programming unit one pptobject oriented programming unit one ppt
object oriented programming unit one ppt
isiagnel2
 
Ad

More from jyoti_lakhani (20)

CG02 Computer Graphic Systems.ppsx
CG02 Computer Graphic Systems.ppsxCG02 Computer Graphic Systems.ppsx
CG02 Computer Graphic Systems.ppsx
jyoti_lakhani
 
Projections.pptx
Projections.pptxProjections.pptx
Projections.pptx
jyoti_lakhani
 
CG04 Color Models.ppsx
CG04 Color Models.ppsxCG04 Color Models.ppsx
CG04 Color Models.ppsx
jyoti_lakhani
 
CG03 Random Raster Scan displays and Color CRTs.ppsx
CG03 Random Raster Scan displays and Color CRTs.ppsxCG03 Random Raster Scan displays and Color CRTs.ppsx
CG03 Random Raster Scan displays and Color CRTs.ppsx
jyoti_lakhani
 
CG02 Computer Graphic Systems.pptx
CG02 Computer Graphic Systems.pptxCG02 Computer Graphic Systems.pptx
CG02 Computer Graphic Systems.pptx
jyoti_lakhani
 
CG01 introduction.ppsx
CG01 introduction.ppsxCG01 introduction.ppsx
CG01 introduction.ppsx
jyoti_lakhani
 
Doubly linked list
Doubly linked listDoubly linked list
Doubly linked list
jyoti_lakhani
 
Double ended queue
Double ended queueDouble ended queue
Double ended queue
jyoti_lakhani
 
Tree terminology and introduction to binary tree
Tree terminology and introduction to binary treeTree terminology and introduction to binary tree
Tree terminology and introduction to binary tree
jyoti_lakhani
 
Priority queue
Priority queuePriority queue
Priority queue
jyoti_lakhani
 
Ds006 linked list- delete from front
Ds006   linked list- delete from frontDs006   linked list- delete from front
Ds006 linked list- delete from front
jyoti_lakhani
 
Ds06 linked list- insert a node after a given node
Ds06   linked list-  insert a node after a given nodeDs06   linked list-  insert a node after a given node
Ds06 linked list- insert a node after a given node
jyoti_lakhani
 
Ds06 linked list- insert a node at end
Ds06   linked list- insert a node at endDs06   linked list- insert a node at end
Ds06 linked list- insert a node at end
jyoti_lakhani
 
Ds06 linked list- insert a node at beginning
Ds06   linked list- insert a node at beginningDs06   linked list- insert a node at beginning
Ds06 linked list- insert a node at beginning
jyoti_lakhani
 
Ds06 linked list- intro and create a node
Ds06   linked list- intro and create a nodeDs06   linked list- intro and create a node
Ds06 linked list- intro and create a node
jyoti_lakhani
 
Ds04 abstract data types (adt) jyoti lakhani
Ds04 abstract data types (adt) jyoti lakhaniDs04 abstract data types (adt) jyoti lakhani
Ds04 abstract data types (adt) jyoti lakhani
jyoti_lakhani
 
Ds03 part i algorithms by jyoti lakhani
Ds03 part i algorithms   by jyoti lakhaniDs03 part i algorithms   by jyoti lakhani
Ds03 part i algorithms by jyoti lakhani
jyoti_lakhani
 
Ds03 algorithms jyoti lakhani
Ds03 algorithms jyoti lakhaniDs03 algorithms jyoti lakhani
Ds03 algorithms jyoti lakhani
jyoti_lakhani
 
Ds02 flow chart and pseudo code
Ds02 flow chart and pseudo codeDs02 flow chart and pseudo code
Ds02 flow chart and pseudo code
jyoti_lakhani
 
Ds01 data structure introduction - by jyoti lakhani
Ds01 data structure  introduction - by jyoti lakhaniDs01 data structure  introduction - by jyoti lakhani
Ds01 data structure introduction - by jyoti lakhani
jyoti_lakhani
 
CG02 Computer Graphic Systems.ppsx
CG02 Computer Graphic Systems.ppsxCG02 Computer Graphic Systems.ppsx
CG02 Computer Graphic Systems.ppsx
jyoti_lakhani
 
CG04 Color Models.ppsx
CG04 Color Models.ppsxCG04 Color Models.ppsx
CG04 Color Models.ppsx
jyoti_lakhani
 
CG03 Random Raster Scan displays and Color CRTs.ppsx
CG03 Random Raster Scan displays and Color CRTs.ppsxCG03 Random Raster Scan displays and Color CRTs.ppsx
CG03 Random Raster Scan displays and Color CRTs.ppsx
jyoti_lakhani
 
CG02 Computer Graphic Systems.pptx
CG02 Computer Graphic Systems.pptxCG02 Computer Graphic Systems.pptx
CG02 Computer Graphic Systems.pptx
jyoti_lakhani
 
CG01 introduction.ppsx
CG01 introduction.ppsxCG01 introduction.ppsx
CG01 introduction.ppsx
jyoti_lakhani
 
Tree terminology and introduction to binary tree
Tree terminology and introduction to binary treeTree terminology and introduction to binary tree
Tree terminology and introduction to binary tree
jyoti_lakhani
 
Ds006 linked list- delete from front
Ds006   linked list- delete from frontDs006   linked list- delete from front
Ds006 linked list- delete from front
jyoti_lakhani
 
Ds06 linked list- insert a node after a given node
Ds06   linked list-  insert a node after a given nodeDs06   linked list-  insert a node after a given node
Ds06 linked list- insert a node after a given node
jyoti_lakhani
 
Ds06 linked list- insert a node at end
Ds06   linked list- insert a node at endDs06   linked list- insert a node at end
Ds06 linked list- insert a node at end
jyoti_lakhani
 
Ds06 linked list- insert a node at beginning
Ds06   linked list- insert a node at beginningDs06   linked list- insert a node at beginning
Ds06 linked list- insert a node at beginning
jyoti_lakhani
 
Ds06 linked list- intro and create a node
Ds06   linked list- intro and create a nodeDs06   linked list- intro and create a node
Ds06 linked list- intro and create a node
jyoti_lakhani
 
Ds04 abstract data types (adt) jyoti lakhani
Ds04 abstract data types (adt) jyoti lakhaniDs04 abstract data types (adt) jyoti lakhani
Ds04 abstract data types (adt) jyoti lakhani
jyoti_lakhani
 
Ds03 part i algorithms by jyoti lakhani
Ds03 part i algorithms   by jyoti lakhaniDs03 part i algorithms   by jyoti lakhani
Ds03 part i algorithms by jyoti lakhani
jyoti_lakhani
 
Ds03 algorithms jyoti lakhani
Ds03 algorithms jyoti lakhaniDs03 algorithms jyoti lakhani
Ds03 algorithms jyoti lakhani
jyoti_lakhani
 
Ds02 flow chart and pseudo code
Ds02 flow chart and pseudo codeDs02 flow chart and pseudo code
Ds02 flow chart and pseudo code
jyoti_lakhani
 
Ds01 data structure introduction - by jyoti lakhani
Ds01 data structure  introduction - by jyoti lakhaniDs01 data structure  introduction - by jyoti lakhani
Ds01 data structure introduction - by jyoti lakhani
jyoti_lakhani
 

Recently uploaded (20)

Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptxSmart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Seasia Infotech
 
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
BookNet Canada
 
AI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of DocumentsAI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of Documents
UiPathCommunity
 
Agentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community MeetupAgentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community Meetup
Manoj Batra (1600 + Connections)
 
UiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer OpportunitiesUiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer Opportunities
DianaGray10
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
Lorenzo Miniero
 
Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...
BookNet Canada
 
Financial Services Technology Summit 2025
Financial Services Technology Summit 2025Financial Services Technology Summit 2025
Financial Services Technology Summit 2025
Ray Bugg
 
Mastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B LandscapeMastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B Landscape
marketing943205
 
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Safe Software
 
Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
IT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information TechnologyIT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information Technology
SHEHABALYAMANI
 
How to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabberHow to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabber
eGrabber
 
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz
 
The Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdfThe Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdf
Precisely
 
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à GenèveUiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPathCommunity
 
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptxReimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
John Moore
 
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptxSmart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Seasia Infotech
 
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
BookNet Canada
 
AI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of DocumentsAI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of Documents
UiPathCommunity
 
UiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer OpportunitiesUiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer Opportunities
DianaGray10
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
Lorenzo Miniero
 
Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...
BookNet Canada
 
Financial Services Technology Summit 2025
Financial Services Technology Summit 2025Financial Services Technology Summit 2025
Financial Services Technology Summit 2025
Ray Bugg
 
Mastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B LandscapeMastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B Landscape
marketing943205
 
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Safe Software
 
Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
IT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information TechnologyIT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information Technology
SHEHABALYAMANI
 
How to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabberHow to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabber
eGrabber
 
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz
 
The Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdfThe Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdf
Precisely
 
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à GenèveUiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPathCommunity
 
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptxReimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
John Moore
 

1 java programming- introduction

  • 2. What is Java • A general purpose Programming Language • Most Famous Object Oriented Programming Language. • Suited for the web and networked services, applications, platform independent desktops, robotics, embedded devices.
  • 3. Java No Longer a Programming Language but a Platform
  • 4. History of Java • Developed by James Gosling, Mike Sheridan, Patrick Naughton et. al; • When working on green project; • The goal of this project was to control microprocessor embedded in electronic devices. • To perform this task, a platform independent, reliable, and compact language was needed
  • 5. History of Java • Gosling was given task to identify the proper programming language for the project. • Gosling decided to develop a new language to avoid the problems of current programming languages(C++ especially) • The new language developed for this purpose is called “Oak”
  • 6. History of Java It consist of – • Oak Programming Language • An Operating System • An User Interface • A Hardware
  • 7. Java Versions • JDK 1.0 1996 • JDK 1.1 1997 • JDk 1.2 1998 (Java 2) • JDK 1.3 2000 (Java 2) • JDK 1.4 2002 (Java 2) • JDK 5.0 2004 (J2SE 5.0) • JDK 6.0 2006 (Java SE 6) • JDK 7.0 2010
  • 8. With the advancement of Java and its widespread popularity, multiple configurations were built to suite various types of platforms. Ex: J2EE for Enterprise Applications J2ME for Mobile Applications.
  • 9. • Sun Microsystems has renamed the new J2 versions as Java SE, Java EE and Java ME respectively. • Java is guaranteed to be Write Once, Run Anywhere.
  • 11. Object Oriented • Java, everything is an Object. • Java can be easily extended since it is based on the Object model.
  • 12. Platform independent • Unlike many other programming languages including C and C++, when Java is compiled, it is not compiled into platform specific machine, rather into platform independent byte code. This byte code is distributed over the web and interpreted by virtual Machine (JVM) on whichever platform it is being run.
  • 13. Simple • Java is designed to be easy to learn. If you understand the basic concept of OOP Java would be easy to master.
  • 14. Secure • With Java's secure feature it enables to develop virus-free, tamper-free systems. Authentication techniques are based on public-key encryption.
  • 15. Architectural-neutral • Java compiler generates an architecture- neutral object file format which makes the compiled code to be executable on many processors, with the presence of Java runtime system.
  • 16. Portable • Being architectural-neutral and having no implementation dependent aspects of the specification makes Java portable. • Compiler in Java is written in ANSI C
  • 17. Robust • Java makes an effort to eliminate error prone situations by emphasizing mainly on compile time error checking and runtime checking.
  • 18. Multithreaded • With Java's multithreaded feature it is possible to write programs that can do many tasks simultaneously. This design feature allows developers to construct smoothly running interactive applications.
  • 19. Interpreted • Java byte code is translated on the fly to native machine instructions and is not stored anywhere. The development process is more rapid and analytical since the linking is an incremental and light weight process.
  • 20. High Performance • With the use of Just-In-Time compilers, Java enables high performance
  • 21. Distributed • Java is designed for the distributed environment of the internet
  • 22. Dynamic • Java is considered to be more dynamic than C or C++ since it is designed to adapt to an evolving environment. Java programs can carry extensive amount of run-time information that can be used to verify and resolve accesses to objects on run-time.
  • 23. Java Environment Java Programming Language JDK JSL Java Programming Environment
  • 24. Java Environment (Java Development Environment) A set of Programming Tools (Java Standard Library) (A collection of Classes and Methods) It is also called Java API
  • 25. Java Development Kit (JDK) • A Software Package • Sun Microsystems made it available free on the website • Includes all basic components of Java Environment
  • 27. Java Development Kit File Structure(C:jdk) jdk include bin lib jre demo Src.zip
  • 28. • A collection of utilities that help u to develop, execute, debug and document java programs • Include- – javac.exe – java.exe – javadoc.exe – appletviewer.exe Java Development Kit bin
  • 29. • Contains files that support native code programming • integrate java with other programming languages. • Include- – jawet.h – jni.h Java Development Kit include
  • 30. Un T • Root directory of Java Run Time Environment • Includes – JVM(Java Virtual Machine) – runtime class libraries – java application launcher Java Development Kit jre
  • 31. • Includes additional class libraries and support files required by the development tools – htmlconvertor – jconsole Java Development Kit lib
  • 32. • Consist of sample programs with source code Java Development Kit demo
  • 33. • Compressed files contain source code for java API classes(that are included in JDK) • We can unpack these files. • The source code in these files helps developers to learn and use the java programming language Java Development Kit src.zip
  • 35. • A command line tool that reads java source code files and compiles it into executable byte code classes. Hello.java Hello.class javac [Options] [File Name] Example- Javac Hello.java Syntax
  • 36. • Java programs are compiled to byte code and not in native code. • Hence it can not be run on the machine directly. • Java Runtime Interpreter implements Java Virtual Machine(JVM) and runs java applications.
  • 37. • It is used to run java .class file by doing following two things- – Starting Java Runtime Environment(JRE) – Loading the specified class – Invoking the main() method
  • 38. Hello.class java [ Options ] [ Class Name ] [ Arguments ] Example- Java Hello Syntax OUTPUT
  • 39. • A command line tool • Used to run applet without the need of a web browser
  • 40. • Command line tool helps • Used to find out and fixes bugs in java programs jdb [Options] [Class Name] [Arguments]
  • 41. • A command line tool • Reads java bytecode class files • Print human readable version of API defined by those classes.
  • 42. • A command line tool • Produces two c files – C Header file – C stub file • These C files are used to implement native methods
  • 43. • The header file contains the declaration for the C implementation function and structure definition • Stub file provide the glue that binds the java method invocations and object references to the C code • The header file name is appended with .h • The stub file name is appended with .c
  • 44. • A command line tool • Used to generate documentation in the form of HTML pages
  • 45. txt • Text Editor .java • Java Source Code Javac • Java Compiler .class • Java Class File Java • Java Interpreter Java • Java Program Output javadoc HTML Files javah Header and Stub Files jdb
  • 47. • A Component of Java System • It interprets and executes the instructions in our class files.
  • 48. Figure 1: Memory configuration by the JVM. ea Class Files Execution Engine Native Method Interface Native Method Libraries
  • 49. • Each instance of the JVM has one method area, one heap, and one or more stacks - one for each thread • When JVM loads a class file, it puts its information in the method area • As the program runs, all objects instantiated are stored in the heap • The stack area is used to store activation records as a program runs
  • 50. Stack Frame Stack Frame Stack Frame Stack Frame Stack Frame Stack Frame Object Object Object Object Object Object Class Data Class Data Class Data Class Data Class Data Class Data Method Area Heap Stack Area Thread 1 Thread 2
  • 51. • The class loader performs three main functions of JVM, namely: • The linking process consists of three sub-tasks, namely,
  • 53. • Loading means reading the class file for a type, parsing it to get its information, and storing the information in the method area. • For each type it loads, the JVM must store the following information in the method area: – The fully qualified name of the type – The fully qualified name of the type's direct superclass or if the type is an interface, a list of its direct super interfaces . – Whether the type is a class or an interface – The type's modifiers ( public, abstract, final, etc) – Constant pool for the type: constants and symbolic references. – Field info : name, type and modifiers of variables (not constants) – Method info: name, return type, number & types of parameters, modifiers, bytecodes, size of stack frame and exception table.
  • 54. • The end of the loading process is the creation of an instance of java.lang.Class for the loaded type. • The purpose is to give access to some of the information captured in the method area for the type, to the programmer. • Some of the methods of the class java.lang.Class are: • Note that for any loaded type T, only one instance of java.lang.Class is created even if T is used several times in an application. • To use the above methods, we need to first call the getClass() method on any instance of T to get the reference to the Class instance for T. public String getName() public Class getSupClass() public boolean isInterface() public Class[] getInterfaces() public Method[] getMethods() public Fields[] getFields() public Constructor[] getConstructors()
  • 55. Instances of Class objects created in the heap at runtime
  • 56. import java.lang.reflect.Method; // Required! //you must import your Circle class public class TestClassClass{ public static void main(String[] args) { String name = new String(“Ahmed”); Class nameClassInfo = name.getClass(); System.out.println("Class name is : “ + nameClassInfo.getName()); System.out.println("Parent is : “ + nameClassInfo.getSuperclass()); Method[] methods = nameClassInfo.getMethods(); System.out.println("nMethods are: "); for(int i = 0; i < methods.length; i++) System.out.println(methods[i]); } }
  • 58. • The next process handled by the class loader is Linking. This involves three sub- processes: Verification, Preparation and Resolution • Verification is the process of ensuring that binary representation of a class is structurally correct • The JVM has to make sure that a file it is asked to load was generated by a valid compiler and it is well formed • Class B may be a valid sub-class of A at the time A and B were compiled, but class A may have been changed and re-compiled • Example of some of the things that are checked at verification are: – Every method is provided with a structurally correct signature – Every instruction obeys the type discipline of the Java language – Every branch instruction branches to the start not middle of another instruction
  • 59. • In this phase, the JVM allocates memory for the class (i.e static) variables and sets them to default initial values. • Note that class variables are not initialized to their proper initial values until the initialization phase - no java code is executed until initialization. • The default values for the various types are shown below:
  • 60. • Resolution is the process of replacing symbolic names for types, fields and methods used by a loaded type with their actual references. • Symbolic references are resolved into a direct references by searching through the method area to locate the referenced entity. • For the class below, at the loading phase, the class loader would have loaded the classes: TestClassClass, String, System and Object. • The names of these classes would have been stored in the constant pool for TestClassClass. • In this phase, the names are replaced with their actual references. public class TestClassClass{ public static void main(String[] args){ String name = new String(“Ahmed”); Class nameClassInfo = name.getClass(); System.out.println("Parent is: “ + nameClassInfo.getSuperclass()); } }
  • 61. • This is the process of setting class variables to their proper initial values - initial values desired by the programmer. • Initialization of a class consists of two steps: – Initializing its direct superclass (if any and if not already initialized) – Executing its own initialization statements • The above imply that, the first class that gets initialized is Object. • Note that static final variables are not treated as class variables but as constants and are assigned their values at compilation. class Example1 { static double rate = 3.5; static int size = 3*(int)(Math.random()*5); ... } class Example2 { static final int angle = 35; static final int length = angle * 2; ... }
  • 62. • After a class is loaded, linked, and initialized, it is ready for use. Its static fields and static methods can be used and it can be instantiated. • When a new class instance is created, memory is allocated for all its instance variables in the heap. • Memory is also allocated recursively for all the instance variables declared in its super class and all classes up is inheritance hierarchy. • All instance variables in the new object and those of its superclasses are then initialized to their default values. • The constructor invoked in the instantiation is then processed according to the rules shown on the next page. • Finally, the reference to the newly created object is returned as the result.
  • 63. Rules for processing a constructor: 1. Assign the arguments for the constructor to its parameter variables. 2. If this constructor begins with an explicit invocation of another constructor in the same class (using this), then evaluate the arguments and process that constructor invocation recursively. 3. If this constructor is for a class other than Object, then it will begin with an explicit or implicit invocation of a superclass constructor (using super). Evaluate the arguments and process that superclass constructor invocation recursively. 4. Initialize the instance variables for this class with their proper values. 5. Execute the rest of the body of this constructor.
  • 64. class GrandFather { int grandy = 70; public GrandFather(int grandy) { this.grandy = grandy; System.out.println("Grandy: "+grandy); } } class Father extends GrandFather { int father = 40; public Father(int grandy, int father) { super(grandy); this.father = father; System.out.println("Grandy: "+grandy+" Father: "+father); } } class Son extends Father { int son = 10; public Son(int grandy, int father, int son) { super(grandy, father); this.son = son; System.out.println("Grandy: "+grandy+" Father: "+father+" Son: "+son); } } public class Instantiation { public static void main(String[] args) { Son s = new Son(65, 35, 5); } }
  翻译: