SlideShare une entreprise Scribd logo
1  sur  19
How is Java different from other languages
• Less than you think:
– Java is an imperative language (like C++, Ada, C, Pascal)
– Java is interpreted (like LISP, APL)
– Java is garbage-collected (like LISP, Eiffel, Modula-3)
– Java can be compiled (like LISP)
– Java is object-oriented (like C++, Ada, Eiffel)
• A succesful hybrid for a specific-application domain
• A reasonable general-purpose language for non-real-
time applications
• Work in progress: language evolving rapidly
Original design goals (white paper 1993)
• Simple
• Object-oriented (inheritance, polymorphism)
• Distributed
• Interpreted
• multithreaded
• Robust
• Secure
• Architecture-neutral
• a language with threads, objects, exceptions and
garbage-collection can’t really be simple!
Portability
• Critical concern: write once-run everywhere
• Consequences:
– Portable interpreter
– definition through virtual machine: the JVM
– run-time representation has high-level semantics
– supports dynamic loading
– (+) high-level representation can be queried at run-time to
provide reflection
– (-) Dynamic features make it hard to fully compile, safety
requires numerous run-time checks
Contrast with conventional systems languages
(C, C++, Ada)
• Conventional languages are fully compiled:
– run-time structure is machine language
– minimal run-time type information
– language provides low-level tools for accessing storage
– safety requires fewer run-time checks because compiler
– (least for Ada and somewhat for C++) can verify correctness
statically.
– Languages require static binding, run-time image cannot be
easily modified
– Different compilers may create portability problems
Serious omissions
• No parameterized classes (C++ templates, Ada
generics)
• Can simulate generic programming with untyped
style: casting Object down into specific class.
– Forces code duplication, or run-time conversions
• No operator overloading (syntactic annoyance)
• No enumerations (using final constants is clumsy)
A new construct: interfaces
• Allow otherwise unrelated classes to satisfy a given
requirement
• Orthogonal to inheritance
– inheritance: an A is-a B (has the attributes of a B,
and possibly others)
– interface: an A can-do X (and other unrelated
actions)
– better model for multiple inheritance
• More costly at run-time (minor consideration)
Interface Comparable
public interface Comparable {
public int CompareTo (Object x) throws
ClassCastException;
// returns -1 if this < x,
// 0 if this = x,
// 1 if this > x
};
// Implementation has to cast x to the proper class.
// Any class that may appear in a container should implement
Comparable
Threads and their interface
class Doodler extends Thread {
// override the basic method of a thread
public void run( ) {
... // scribble something
}
} …
Doodler gary = new Doodler ( );
gary.start( ); // calls the run method
The runnable interface allows any object to
have dynamic behavior
class Simple_Gizmo { …}
class Active_Gizmo extends Simple_Gizmo implements
Runnable {
public void run ( ) {…}
}
// a thread can be constructed from anything that runs:
Thread thing1 = new Thread (new Active_Gizmo ( ));
Thread thing2 = new Thread (new Active_Gizmo ( ));
thing1.start( ); thing2.start ( );
Interfaces and event-driven programming
• A high-level model of event-handling:
– graphic objects generate events
• mouse click, menu selection, window close...
– an object can be designated as a handler
• a listener, in Java terminology
– an event can be broadcast to several handlers
• several listeners can be attached to a source of events
– a handler must implement an interface
• actionPerformed, keyPressed, mouseExited..
Built-in interfaces for event handlers
public interface MouseListener
{
void mousePressed (MouseEvent event);
void mouseREleased (MouseEvent event);
void mouseClicked (Mouseevent event);
void mouseEntered (Mouseevent event);
void mouseExited (MouseEvent event);
}
Typically, handler only needs to process a few of the above, and
supply dummy methods for the others
Adapters: a coding convenience
class mouseAdapter implements mouseListener
{
public void mousePressed (MouseEvent event) { } ;
public void mouseREleased (MouseEvent event) { };
public void mouseClicked (Mouseevent event) { };
public void mouseEntered (Mouseevent event) { };
public void mouseExited (MouseEvent event) { };
};
class MouseClickListener extends Mouseadapter {
public void mouseClicked (MouseEvent event {…};
// only the method of interest needs to be supplied
}
Events and listeners
class Calm_Down extends Jframe {
private Jbutton help := new Jbutton (“HELP!!!”);
// indicate that the current frame handles button clicks
help.addActionListener (this);
// if the button is clicked the frame executes the following:
public void actionPerformed (ActionEvent e) {
if (e.getSource () == help) {
System.out.println
(“can’t be that bad. What’s the problem?”);
}
}
}
Event handlers and nested classes
• Inner classes make it possible to add local handlers to any
component
class reactive_panel extends Jpanel { // a swing component
JButton b1;
Public reactive_panel (Container c) {
b1 = new JButton (“flash”);
add (b1);
MyListener ml = new Mylistener ( ) ;
b1.addActionListener (ml);
private class MyListener implements ActionListener {
public void actionPerformed (ActionEvent e) { …}
}
Introspection, reflection, and typeless
programming
public void DoSomething (Object thing) {
// what can be do with a generic object?
if (thing instanceof gizmo) {
// we know the methods in class Gizmo
….
• Instanceof requires an accessible run-time descriptor in the
object.
• Reflection is a general programming model that relies on run-
time representations of aspects of the computation that are
usually not available to the programmer.
• More common in Smalltalk and LISP.
Reflection and metaprogramming
• Given an object at run-time, it is possible to obtain:
– its class
– its fields (data members) as strings
– the classes of its fields
– the methods of its class, as strings
– the types of the methods
• It is then possible to construct calls to these methods
• This is possible because the JVM provides a high-
level representation of a class, with embedded
strings that allow almost complete disassembly.
Reflection classes
• java.lang.Class
– Class.getMethods () returns array of method objects
– Class.getConstructor (Class[ ] parameterTypes)
• returns the constructor with those parameters
• java.lang.reflect.Array
– Array.NewInstance (Class componentType, int length)
• java.lang.reflect.Field
• java.lang.reflect.Method
• All of the above require the existence of run-time
objects that describe methods and classes
Reflection and Beans
• The beans technology requires run-time examination
of foreign objects, in order to build dynamically a
usable interface for them.
• Class Introspector builds a method dictionary based
on simple naming conventions:
public boolean isCoffeeBean ( ); // is... predicate
public int getRoast ( ); // get... retrieval
public void setRoast (int darkness) ; // set… assignment
An endless supply of libraries
• The power of the language is in the large set of
libraries in existence. The language is successful if
programmers find libraries confortable:
• JFC and the Swing package
• Pluggable look and Feel
• Graphics
• Files and Streams
• Networking
• Enterprise libraries: CORBA, RMI, Serialization,
JDBC

Contenu connexe

Tendances

Clojure - An Introduction for Lisp Programmers
Clojure - An Introduction for Lisp ProgrammersClojure - An Introduction for Lisp Programmers
Clojure - An Introduction for Lisp Programmers
elliando dias
 
flatMap Oslo presentation slides
flatMap Oslo presentation slidesflatMap Oslo presentation slides
flatMap Oslo presentation slides
Martin Odersky
 

Tendances (17)

From DOT to Dotty
From DOT to DottyFrom DOT to Dotty
From DOT to Dotty
 
20160520 what youneedtoknowaboutlambdas
20160520 what youneedtoknowaboutlambdas20160520 what youneedtoknowaboutlambdas
20160520 what youneedtoknowaboutlambdas
 
Scala, Play 2.0 & Cloud Foundry
Scala, Play 2.0 & Cloud FoundryScala, Play 2.0 & Cloud Foundry
Scala, Play 2.0 & Cloud Foundry
 
Core java complete ppt(note)
Core java  complete  ppt(note)Core java  complete  ppt(note)
Core java complete ppt(note)
 
Scala Intro
Scala IntroScala Intro
Scala Intro
 
2CPP04 - Objects and Classes
2CPP04 - Objects and Classes2CPP04 - Objects and Classes
2CPP04 - Objects and Classes
 
Scala - The Simple Parts, SFScala presentation
Scala - The Simple Parts, SFScala presentationScala - The Simple Parts, SFScala presentation
Scala - The Simple Parts, SFScala presentation
 
Clojure - An Introduction for Lisp Programmers
Clojure - An Introduction for Lisp ProgrammersClojure - An Introduction for Lisp Programmers
Clojure - An Introduction for Lisp Programmers
 
Scala basic
Scala basicScala basic
Scala basic
 
Practical type mining in Scala
Practical type mining in ScalaPractical type mining in Scala
Practical type mining in Scala
 
Core java
Core javaCore java
Core java
 
Functional Programming In Practice
Functional Programming In PracticeFunctional Programming In Practice
Functional Programming In Practice
 
flatMap Oslo presentation slides
flatMap Oslo presentation slidesflatMap Oslo presentation slides
flatMap Oslo presentation slides
 
Clojure talk at Münster JUG
Clojure talk at Münster JUGClojure talk at Münster JUG
Clojure talk at Münster JUG
 
C++ overview
C++ overviewC++ overview
C++ overview
 
Implementing Higher-Kinded Types in Dotty
Implementing Higher-Kinded Types in DottyImplementing Higher-Kinded Types in Dotty
Implementing Higher-Kinded Types in Dotty
 
camel-scala.pdf
camel-scala.pdfcamel-scala.pdf
camel-scala.pdf
 

En vedette

Application Paper - Digital Universe
Application Paper - Digital UniverseApplication Paper - Digital Universe
Application Paper - Digital Universe
Fatema Tuz Zohra
 
대신리포트_모닝미팅_140624
대신리포트_모닝미팅_140624대신리포트_모닝미팅_140624
대신리포트_모닝미팅_140624
DaishinSecurities
 
Plantilla presentaciones educa digital regional 2014...
Plantilla presentaciones educa digital regional 2014...Plantilla presentaciones educa digital regional 2014...
Plantilla presentaciones educa digital regional 2014...
claullini
 
Cuidados com os dentes 1
Cuidados com os dentes 1Cuidados com os dentes 1
Cuidados com os dentes 1
Barbaraqsms
 

En vedette (20)

Recurso electronico, virus y antivirus
Recurso electronico, virus y antivirusRecurso electronico, virus y antivirus
Recurso electronico, virus y antivirus
 
300.49 usage, security and maintenance of the gso cellular telephone
300.49 usage, security and maintenance of the gso cellular telephone300.49 usage, security and maintenance of the gso cellular telephone
300.49 usage, security and maintenance of the gso cellular telephone
 
Donde estan mis valores 10 1
Donde estan mis valores 10 1Donde estan mis valores 10 1
Donde estan mis valores 10 1
 
Rubrica pid julian
Rubrica pid   julianRubrica pid   julian
Rubrica pid julian
 
Multiboot
MultibootMultiboot
Multiboot
 
Orange
OrangeOrange
Orange
 
Application Paper - Digital Universe
Application Paper - Digital UniverseApplication Paper - Digital Universe
Application Paper - Digital Universe
 
Tic
TicTic
Tic
 
Drivermax driud 9
Drivermax driud 9Drivermax driud 9
Drivermax driud 9
 
Magtertexto
MagtertextoMagtertexto
Magtertexto
 
Dependency Finder Tutorial
Dependency Finder TutorialDependency Finder Tutorial
Dependency Finder Tutorial
 
Pert -cpm
Pert  -cpmPert  -cpm
Pert -cpm
 
Rap pres susan pintar
Rap pres susan pintarRap pres susan pintar
Rap pres susan pintar
 
대신리포트_모닝미팅_140624
대신리포트_모닝미팅_140624대신리포트_모닝미팅_140624
대신리포트_모닝미팅_140624
 
Panóptico desejo
Panóptico desejoPanóptico desejo
Panóptico desejo
 
Emergencia salud 1
Emergencia salud 1Emergencia salud 1
Emergencia salud 1
 
Каталог LR 2013
Каталог LR 2013Каталог LR 2013
Каталог LR 2013
 
Plantilla presentaciones educa digital regional 2014...
Plantilla presentaciones educa digital regional 2014...Plantilla presentaciones educa digital regional 2014...
Plantilla presentaciones educa digital regional 2014...
 
Solá y suspensión de la ley cerrojo
Solá y suspensión de la ley cerrojoSolá y suspensión de la ley cerrojo
Solá y suspensión de la ley cerrojo
 
Cuidados com os dentes 1
Cuidados com os dentes 1Cuidados com os dentes 1
Cuidados com os dentes 1
 

Similaire à Basic info on java intro

Jslab rssh: JS as language platform
Jslab rssh:  JS as language platformJslab rssh:  JS as language platform
Jslab rssh: JS as language platform
Ruslan Shevchenko
 
Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov
Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov
Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov
Nayden Gochev
 
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtug
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtugVk.amberfog.com gtug part1_introduction2_javaandroid_gtug
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtug
ketan_patel25
 
scalaliftoff2009.pdf
scalaliftoff2009.pdfscalaliftoff2009.pdf
scalaliftoff2009.pdf
Hiroshi Ono
 
scalaliftoff2009.pdf
scalaliftoff2009.pdfscalaliftoff2009.pdf
scalaliftoff2009.pdf
Hiroshi Ono
 

Similaire à Basic info on java intro (20)

Java-Intro.pptx
Java-Intro.pptxJava-Intro.pptx
Java-Intro.pptx
 
Short intro to scala and the play framework
Short intro to scala and the play frameworkShort intro to scala and the play framework
Short intro to scala and the play framework
 
Aggregate Programming in Scala
Aggregate Programming in ScalaAggregate Programming in Scala
Aggregate Programming in Scala
 
Functional Programming In Jdk8
Functional Programming In Jdk8 Functional Programming In Jdk8
Functional Programming In Jdk8
 
oop unit1.pptx
oop unit1.pptxoop unit1.pptx
oop unit1.pptx
 
CS8392 OOP
CS8392 OOPCS8392 OOP
CS8392 OOP
 
Scala Introduction
Scala IntroductionScala Introduction
Scala Introduction
 
Beginning Java for .NET developers
Beginning Java for .NET developersBeginning Java for .NET developers
Beginning Java for .NET developers
 
Java1 in mumbai
Java1 in mumbaiJava1 in mumbai
Java1 in mumbai
 
Java For beginners and CSIT and IT students
Java  For beginners and CSIT and IT studentsJava  For beginners and CSIT and IT students
Java For beginners and CSIT and IT students
 
JSLab.Руслан Шевченко."JavaScript как платформа компиляции"
JSLab.Руслан Шевченко."JavaScript как платформа компиляции"JSLab.Руслан Шевченко."JavaScript как платформа компиляции"
JSLab.Руслан Шевченко."JavaScript как платформа компиляции"
 
Jslab rssh: JS as language platform
Jslab rssh:  JS as language platformJslab rssh:  JS as language platform
Jslab rssh: JS as language platform
 
Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov
Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov
Lecture from javaday.bg by Nayden Gochev/ Ivan Ivanov and Mitia Alexandrov
 
basic_java.ppt
basic_java.pptbasic_java.ppt
basic_java.ppt
 
C# for Java Developers
C# for Java DevelopersC# for Java Developers
C# for Java Developers
 
Developer’s viewpoint on swift programming language
Developer’s viewpoint on swift programming languageDeveloper’s viewpoint on swift programming language
Developer’s viewpoint on swift programming language
 
Multi-threading in the modern era: Vertx Akka and Quasar
Multi-threading in the modern era: Vertx Akka and QuasarMulti-threading in the modern era: Vertx Akka and Quasar
Multi-threading in the modern era: Vertx Akka and Quasar
 
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtug
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtugVk.amberfog.com gtug part1_introduction2_javaandroid_gtug
Vk.amberfog.com gtug part1_introduction2_javaandroid_gtug
 
scalaliftoff2009.pdf
scalaliftoff2009.pdfscalaliftoff2009.pdf
scalaliftoff2009.pdf
 
scalaliftoff2009.pdf
scalaliftoff2009.pdfscalaliftoff2009.pdf
scalaliftoff2009.pdf
 

Plus de kabirmahlotra (6)

Top 10 sales trends for 2015 hbr
Top 10 sales trends for 2015   hbrTop 10 sales trends for 2015   hbr
Top 10 sales trends for 2015 hbr
 
Some presentation
Some presentationSome presentation
Some presentation
 
Pert -cpm
Pert  -cpmPert  -cpm
Pert -cpm
 
Culture9 info
Culture9 infoCulture9 info
Culture9 info
 
Chapter 1 introduction
Chapter 1 introductionChapter 1 introduction
Chapter 1 introduction
 
Basic info on java intro
Basic info on java introBasic info on java intro
Basic info on java intro
 

Dernier

Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Dernier (20)

(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Intro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdfIntro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdf
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 

Basic info on java intro

  • 1. How is Java different from other languages • Less than you think: – Java is an imperative language (like C++, Ada, C, Pascal) – Java is interpreted (like LISP, APL) – Java is garbage-collected (like LISP, Eiffel, Modula-3) – Java can be compiled (like LISP) – Java is object-oriented (like C++, Ada, Eiffel) • A succesful hybrid for a specific-application domain • A reasonable general-purpose language for non-real- time applications • Work in progress: language evolving rapidly
  • 2. Original design goals (white paper 1993) • Simple • Object-oriented (inheritance, polymorphism) • Distributed • Interpreted • multithreaded • Robust • Secure • Architecture-neutral • a language with threads, objects, exceptions and garbage-collection can’t really be simple!
  • 3. Portability • Critical concern: write once-run everywhere • Consequences: – Portable interpreter – definition through virtual machine: the JVM – run-time representation has high-level semantics – supports dynamic loading – (+) high-level representation can be queried at run-time to provide reflection – (-) Dynamic features make it hard to fully compile, safety requires numerous run-time checks
  • 4. Contrast with conventional systems languages (C, C++, Ada) • Conventional languages are fully compiled: – run-time structure is machine language – minimal run-time type information – language provides low-level tools for accessing storage – safety requires fewer run-time checks because compiler – (least for Ada and somewhat for C++) can verify correctness statically. – Languages require static binding, run-time image cannot be easily modified – Different compilers may create portability problems
  • 5. Serious omissions • No parameterized classes (C++ templates, Ada generics) • Can simulate generic programming with untyped style: casting Object down into specific class. – Forces code duplication, or run-time conversions • No operator overloading (syntactic annoyance) • No enumerations (using final constants is clumsy)
  • 6. A new construct: interfaces • Allow otherwise unrelated classes to satisfy a given requirement • Orthogonal to inheritance – inheritance: an A is-a B (has the attributes of a B, and possibly others) – interface: an A can-do X (and other unrelated actions) – better model for multiple inheritance • More costly at run-time (minor consideration)
  • 7. Interface Comparable public interface Comparable { public int CompareTo (Object x) throws ClassCastException; // returns -1 if this < x, // 0 if this = x, // 1 if this > x }; // Implementation has to cast x to the proper class. // Any class that may appear in a container should implement Comparable
  • 8. Threads and their interface class Doodler extends Thread { // override the basic method of a thread public void run( ) { ... // scribble something } } … Doodler gary = new Doodler ( ); gary.start( ); // calls the run method
  • 9. The runnable interface allows any object to have dynamic behavior class Simple_Gizmo { …} class Active_Gizmo extends Simple_Gizmo implements Runnable { public void run ( ) {…} } // a thread can be constructed from anything that runs: Thread thing1 = new Thread (new Active_Gizmo ( )); Thread thing2 = new Thread (new Active_Gizmo ( )); thing1.start( ); thing2.start ( );
  • 10. Interfaces and event-driven programming • A high-level model of event-handling: – graphic objects generate events • mouse click, menu selection, window close... – an object can be designated as a handler • a listener, in Java terminology – an event can be broadcast to several handlers • several listeners can be attached to a source of events – a handler must implement an interface • actionPerformed, keyPressed, mouseExited..
  • 11. Built-in interfaces for event handlers public interface MouseListener { void mousePressed (MouseEvent event); void mouseREleased (MouseEvent event); void mouseClicked (Mouseevent event); void mouseEntered (Mouseevent event); void mouseExited (MouseEvent event); } Typically, handler only needs to process a few of the above, and supply dummy methods for the others
  • 12. Adapters: a coding convenience class mouseAdapter implements mouseListener { public void mousePressed (MouseEvent event) { } ; public void mouseREleased (MouseEvent event) { }; public void mouseClicked (Mouseevent event) { }; public void mouseEntered (Mouseevent event) { }; public void mouseExited (MouseEvent event) { }; }; class MouseClickListener extends Mouseadapter { public void mouseClicked (MouseEvent event {…}; // only the method of interest needs to be supplied }
  • 13. Events and listeners class Calm_Down extends Jframe { private Jbutton help := new Jbutton (“HELP!!!”); // indicate that the current frame handles button clicks help.addActionListener (this); // if the button is clicked the frame executes the following: public void actionPerformed (ActionEvent e) { if (e.getSource () == help) { System.out.println (“can’t be that bad. What’s the problem?”); } } }
  • 14. Event handlers and nested classes • Inner classes make it possible to add local handlers to any component class reactive_panel extends Jpanel { // a swing component JButton b1; Public reactive_panel (Container c) { b1 = new JButton (“flash”); add (b1); MyListener ml = new Mylistener ( ) ; b1.addActionListener (ml); private class MyListener implements ActionListener { public void actionPerformed (ActionEvent e) { …} }
  • 15. Introspection, reflection, and typeless programming public void DoSomething (Object thing) { // what can be do with a generic object? if (thing instanceof gizmo) { // we know the methods in class Gizmo …. • Instanceof requires an accessible run-time descriptor in the object. • Reflection is a general programming model that relies on run- time representations of aspects of the computation that are usually not available to the programmer. • More common in Smalltalk and LISP.
  • 16. Reflection and metaprogramming • Given an object at run-time, it is possible to obtain: – its class – its fields (data members) as strings – the classes of its fields – the methods of its class, as strings – the types of the methods • It is then possible to construct calls to these methods • This is possible because the JVM provides a high- level representation of a class, with embedded strings that allow almost complete disassembly.
  • 17. Reflection classes • java.lang.Class – Class.getMethods () returns array of method objects – Class.getConstructor (Class[ ] parameterTypes) • returns the constructor with those parameters • java.lang.reflect.Array – Array.NewInstance (Class componentType, int length) • java.lang.reflect.Field • java.lang.reflect.Method • All of the above require the existence of run-time objects that describe methods and classes
  • 18. Reflection and Beans • The beans technology requires run-time examination of foreign objects, in order to build dynamically a usable interface for them. • Class Introspector builds a method dictionary based on simple naming conventions: public boolean isCoffeeBean ( ); // is... predicate public int getRoast ( ); // get... retrieval public void setRoast (int darkness) ; // set… assignment
  • 19. An endless supply of libraries • The power of the language is in the large set of libraries in existence. The language is successful if programmers find libraries confortable: • JFC and the Swing package • Pluggable look and Feel • Graphics • Files and Streams • Networking • Enterprise libraries: CORBA, RMI, Serialization, JDBC