Java Overview - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Java Overview

Description:

Java Overview Prepared By:Piyush Patel Lect. In computer Dept. NSIT,Jetalpur – PowerPoint PPT presentation

Number of Views:259
Avg rating:3.0/5.0
Slides: 34
Provided by: TonyJo2
Category:

less

Transcript and Presenter's Notes

Title: Java Overview


1
Java Overview
Prepared ByPiyush Patel
Lect. In computer Dept.
NSIT,Jetalpur
2
What will this talk cover?
  • Will discuss
  • History of Language
  • What is Java
  • Language
  • Libraries
  • What is it good for
  • Why you should (perhaps) use it
  • How does it compare with other languages,
    particularly C, C
  • Future of Language
  • Lawsuits etc.
  • Conclusion
  • Not a tutorial on how to program in Java
  • There are a number of example programs, but
    intent is to give a feel for the language rather
    than go into too many details.
  • If there is sufficient interest it may be
    possible to arrange tutorial-like session(s) at a
    future date.
  • Appendix (left over slides)
  • Gives a brief introduction to language syntax and
    features.

3
What is Java?
  • History
  • Originally designed (1991) as a small language
    for consumer electronics (cable boxes, toasters
    etc.)
  • Eventually someone wrote HotJava Browser, which
    could run Java Applets
  • At height of internet craze, adopted by Netscape,
    Microsoft, Sun etc. as Web Programming Language.
  • More than just a Web Tool
  • Java is a fully functional, platform independent,
    programming language
  • Powerful set of machine independent libraries,
    including windowing (GUI) libraries.
  • Past Year
  • Sun has released several new versions of language
    libraries
  • gt1,000,000 copies of Java Development kit
    downloaded
  • Java available for MAC, Win 95/NT, HP, SUN, SGI,
    Digital Unix, Linux, Amiga, OS/2, BEOS, VMS, and
    even AIX
  • Microsoft lt---Sues---gt Sun
  • Next Year
  • Should see many real Java applications emerge

4
How does Java work?
  • Java source code is compiled into machine
    independent bytecodes
  • The bytecodes can be run directly by an
    interpreter
  • The bytecodes can be converted to machine code
    and executed (Just in Time (JIT) compilation).
  • An optimizing interpreter can dynamically
    identify program hotspots and create code
    optimized for the specific machine/environment.
  • Optimizing interpreter coming soon from SUN.

5
Java Buzzwords
  • Simple
  • well, simpler than C
  • Object Orientated
  • more so than C
  • Distributed
  • Built in support for Internet protocols, URLs,
    HTTP etc.
  • Support for distributed objects, RMI, CORBA etc.
  • Robust
  • Difficult to create memory leaks, go beyond the
    end of an array, corrupt stack or code
  • Secure
  • Bytecode verifier, padded cell
  • Architecture Neural, Portable
  • Runs on PC, MAC, Unix, VMS
  • Interpreted
  • Compiler converts code into machine independent
    bytecodes
  • High Performance
  • With JIT compiler still several times slower than
    native C
  • Coming soon! Optimizing interpreter from Sun,
    faster (?!?) than C
  • Multithreaded
  • Language has direct support for multithreading
    (c.f. subprocesses)
  • Dynamic
  • Libraries can change without recompiling programs
    that use them

6
Java Language Features
  • Pure Object Oriented Language
  • Can only write classes
  • Syntax very similar to C/C, but without many of
    the rarely used, overly complex features of C
  • No history
  • No operator overloading
  • No multiple inheritance
  • No Pointers
  • Supports
  • Inheritance
  • Interfaces
  • Nested Classes
  • Automatic Garbage Collection
  • Built in support for
  • Threads
  • Exception handling
  • Object serialization
  • Networking
  • Reflection

7
Java Libraries (APIs)
  • The usefulness of Java is greatly enhanced by the
    large range of platform independent libraries
    available
  • AWT - Basic GUI toolkit - delegates to OS
    specific Peers
  • SWING (a.k.a. JFC) Enhanced Peerless GUI
    toolkit (Beta)
  • 2D - Transformations, stroked fonts, pattern
    fill, textures etc. (Beta)
  • JDBC - Standard Interface between Java and SQL
    databases
  • ODMG binding - Standard Interface to Object
    databases
  • RMI CORBA - Remote procedure calls between
    distributed Java applications, and between Java
    and other languages
  • BEANS - Java based components, plug commercial
    components into your applications.
  • Media (audio, video etc.), Share (e.g.
    whiteboards), Animation, Telephony, 3D (developed
    by SUN and SGI), cryptography, server. (Beta)

8
What is Java Good For?
  • Web Applets
  • Database programming
  • SQL databases using JDBC
  • Object databases using ODMG binding
  • Java Servlets
  • Stand Alone Applications
  • GUI based applications
  • Distributed client-server applications
  • Using TCPIP RMI CORBA
  • Graphics applications
  • 2D and 3D
  • Physics Analysis

9
Hello World in Java
10
Java Applets
  • Java Applets are programs designed to run inside
    a web browser.
  • Instead of having a main method they have a
    class derived from Applet whose init method
    is called when the applet is loaded.
  • The applet class provides capabilities for
    loading images, sounds and animations from the
    internet.
  • Applets loaded from the internet are run inside a
    sandbox which restricts what they can do
  • No Access to local filesystem
  • Can only open network connections with the site
    they came from
  • Problems
  • Lack of network/filesystem access can be
    restrictive
  • Complex programs can be large and hence slow to
    download
  • Sun has been introducing new releases far to fast
    for browser manufacturers to keep up.
  • Each browser has subtle differences.
  • Solutions?
  • Java activator from SUN
  • Plug in for netscape/IE to ensure latest SUN
    features always available.
  • Signed applets can be granted more privileges.
  • Can download local copies of large programs

11
Java Applet Example
12
Java SQL Database Access
  • Java provides standard interface to SQL
    databases, JDBC
  • Most database vendors now have implementations of
    JDBC for use with their database
  • Oracle has pure Java JDBC driver (no need to
    install SQLNet, SQLPlus etc. to be able to use
    it).
  • Makes it possible to write database programs
    which are independent of the underlying database.
  • Automatic translation of database types to native
    Java types
  • e.g. Date/time in database is extracted as Java
    Date object, manipulation of dates
    straightforward.

13
Java SQL Database Access
14
Java Object Database Access
  • Using JDBC to connect to databases is fine for
    accessing legacy data in SQL databases.
  • Using SQL and pulling columns out of tables is a
    little inconvenient.
  • Would be better to create a network of related
    objects in Java and
  • stick them all in a database
  • retrieve all or part of the network later
  • This is what object databases are for
  • ODMG (Object Database Management Group) has
    defined a standard binding between Java and OO
    databases.
  • Several OO databases new support the ODMG Java
    binding

15
Java Object Database Access
16
Java Servlets
  • A Java Servlet runs on a web server instead of a
    web browser
  • Performs similar function to CGI scripts under
    Unix
  • Works with many web servers
  • Netscape, Microsoft IIS, Apache, Java Web Server,
    many more...
  • Machine independent
  • Much faster than CGI (no process forking)
  • Gives full power of Java for database access,
    data manipulation etc.

17
Real Applications in Java?
  • So far all examples have been fairly trivial.
  • Is it possible to write real applications in
    Java? Yes! (at least I hope so)

18
Java for Physics Analysis?
  • Java has good mix of power, simplicity, math,
    speed for physics analysis
  • SLD has developed a set of hep.analysis classes
    for Histograming
  • Networking support and mobility of code excellent
    for client server applications.
  • Analysis routine goes to data instead of data
    coming to analysis routine.

19
How to get started with Java
  • Download free Java Developer Kit (JDK) from SUN
    (www.javasoft.com)
  • Available for Windows, Solaris.
  • Contains line mode compilerdebuggermisc. tools
  • Similar kits available for many other platforms
    (from vendors)
  • Solaris/AIX JDK installed for Unix at SLAC in
    /afs/slac/packages/java
  • For more serious work get hold of a Java
    Integrated Development Environment
  • Symantec Café (the oldest and most popular IDE at
    present)
  • Visual J from Microsoft (beware of
    assimilation)
  • Visual Age for Java from IBM
  • Java Workshop from SUN
  • All contain integrated editor/debugger/source
    control
  • None have really good WYSIWYG layout tools (yet).

20
More Information
  • Web Sites
  • http//www.javasoft.com
  • Suns home page for Java
  • http//www.javasoft.com/books/Series/Tutorial/inde
    x.html
  • Complete JAVA tutorial, in case you are too poor
    to buy the book
  • http//www.gamelan.com/
  • Huge library of Java applets and applications
  • http//www.javaworld.com
  • http//www.javareport.com
  • JavaWorld/Java Report (magazines)
  • http//café.symantec.com/
  • Café Web Site
  • http//www.microsoft.com/visualj
  • Visual J
  • http//www-sldnt.slac.stanford.edu/jas
  • Java Analysis Studio
  • Books
  • Keep away from books whose focus is too web
    related
  • OReilly
  • Java in a Nutshell
  • Exploring Java
  • Core Java (SunSoft)
  • A little two thick for comfort, but comprehensive
    and down-to-earth
  • Learn Java Now (Microsoft)
  • Comes free with Visual J

21
Conclusion
  • If you are still using
  • Fortran, C, C, Perl, CGI, SQLPlus, Rexx, IDA
    etc.
  • you could save yourself a lot of time and effort
    by switching to

22
Topics to be Covered
  • Java Language Features
  • Variables, Operators, Expressions
  • Statements
  • Classes Objects
  • Inheritance
  • Packages
  • Exceptions
  • Multithreading
  • Data Structures
  • Standard Libraries
  • Plenty of example programs
  • Tutorial rather than real-world programs

23
Types, Variables, Operators, Expressions
  • Primitive Types
  • int, short, long, byte
  • all signed
  • size is machine independent
  • float, double
  • char
  • Stores single UNICODE character
  • boolean
  • Variables and Expressions
  • int a, b
  • double salary 100000
  • float slacRaise 1.00002
  • salary salary slacRaise
  • salary slacRaise
  • salary - parkingFine
  • Operators
  • - / --
  • ! ?
  • ltlt gtgt gtgtgt
  • lt lt gt gt !
  • Strings
  • Java has nice UNICODE string type that supports
    concatenation, substrings, comparison etc.
  • String s Your raise is slacRaise
  • Notes
  • if (a 3) is illegal!
  • No operator overloading
  • No pointers! (But surprisingly you wont miss
    them)

24
Statements
  • Again, very C like
  • if (condition1) block1
  • else if (condition2) block2
  • else block3
  • for (int i0 ilt10 i)
  • block
  • while (condition) block
  • do block while (condition)
  • Unfortunately even the switch statement is just
    like C
  • switch (choice)
  • case 1
  • case 2
  • break
  • case 3
  • break
  • default
  • break

25
Introduction to OO Programming
  • Java is an object oriented programming language,
    so some rudimentary knowledge of OO terminology
    is required
  • Classes (e.g. Employee, Track)
  • Objects
  • specific instances of a class (e.g. Tony
    Johnson, Track 5)
  • In Java all functions are contained within
    classes
  • For largely historical reasons functions are
    often called methods or member functions
  • Inheritance (aka subclassing)
  • e.g. Associate Director, Drift Chamber Track
  • Encapsulation
  • Variables/Functions can be declared
  • private
  • only functions within same class or superclass
    can access them (c.f. C protected)
  • public
  • any function can access them
  • Java also implements
  • static
  • Applies to class not object
  • final
  • Cannot be overridden by subclass

26
Classes
  • class Employee
  • public Employee (String n, double s)
  • name n
  • salary s
  • public Employee (String n)
  • name n
  • salary 0
  • public void raiseSalary(double byPercent)
  • salary 1 byPercent / 100
  • public double getSalary()
  • return salary

27
Objects
  • Objects represent instances of classes
  • Employee javaExpert new Employee(Joe,100000)
  • javaExpert.RaiseSalary(10) // Raise salary by
    10
  • system.out.println(Salary is
    javaExpert.GetSalary())
  • Note that Java uses the keyword new for creation
    of new objects.
  • Unlike C there is no delete keyword for the
    deletion of objects.
  • Java handles deletion of objects (and recovery of
    the memory they occupy) automatically as soon as
    there are no longer any references to them.
  • This makes writing code much easier, it is
    impossible to create a memory leak in Java..
  • The process of keeping track of when objects are
    unreferenced and deleting them is called garbage
    collection. It does impose some processing
    overhead which slows down Java programs compared
    to equivalent programs in C or C.
  • Appl_1 Example EmployeeTest Example

28
Inheritance
  • class Manager Extends Employee
  • public Manager (String n, double s, Employee
    e)
  • name n
  • salary s
  • secretary e
  • public String GetSecretary()
  • return secretary
  • public void RaiseSalary(double byPercent)
  • double bonus 10
  • super.RaiseSalary(byPercent bonus)
  • private Employee secretary

29
Interfaces
  • Interfaces in Java are a replacement for the
    concept of multiple inheritance in C.
  • Suppose we want to sort managers by the number of
    employees they have.
  • Interfaces
  • Objects can implement any number of interfaces
  • Can have hierarchies of interfaces
  • Interfaces cannot have methods
  • Cleaner but not quite as powerful as multiple
    inheritance
  • Only way to implement callbacks in Java
  • Enumeration Interface
  • Can loop over all elements of any class that
    implements the enumeration interface
  • Enumeration e thing.elements()
  • while (e.hasMoreElements())
  • Thing t e.getNextElement()
  • In C both Employee and Sortable can be classes
  • In Java one (probably sortable) must be an
    interface
  • Employee Sort Example

30
Arrays, Collections etc.
  • C
  • If you build it they will come
  • Standard Template Library
  • Java has powerful built in objects
  • String
  • Arrays
  • Arbitrary size but cannot be resized
  • Vectors
  • Full dynamic sizing
  • Bit Sets
  • Arbitrary size array of bits
  • HashTables HashSets
  • Quick way to look up object in large collection
  • Built in objects continued
  • Property Sets
  • Useful for storing program parameters
  • Linked Lists
  • Queues
  • Stacks
  • Multi-Dimensional Arrays
  • Full featured Collections coming in JDK 1.2
  • Sieve Example (Benchmark)
  • C 1.53 seconds
  • Java 59.93 seconds
  • Visual Basic 65.69 seconds
  • Microsoft JIT compiler ?3 seconds

31
Threads
  • Threads are similar to fork or spawn but
  • Threads run in same address space, not separate
    process
  • Very efficient
  • Very dangerous
  • All modern operating systems have support for
    threads
  • Java has built-in support for threads
  • Just derive a class from thread
  • Issue the start() method on the object
  • Bouncing Ball Example
  • Java Threads support
  • Priorities
  • Interrupts
  • Thread groups
  • Synchronization
  • synchronized keyword can be applied to classes or
    methods
  • Timers

32
Java AWT Package
  • AWT allows development of platform independent
    GUI programs
  • Java takes a Lowest Common Denominator approach
  • Supports only one mouse button
  • Doesnt look as nice as native windows/MAC
    applications
  • Available graphical layout tools are quite
    limited.
  • Moderate set of graphic objects
  • Buttons, Labels, Text Input, Menus,
  • Scroll Bars, Dialogs, Radio Buttons
  • Mapped onto native GUI objects on each platform.
  • Layouts are used to compensate for the fact
    that GUI objects may have different sizes on
    different platforms
  • Limited set of layouts are provided
  • Flow Layout
  • Border Layout
  • Card Layout
  • Grid (Bag) Layout
  • User defined layouts needed for most real
    programs
  • HelloWorld Example

33
Java for Physics?
Experiment Extensions (Event Display)
  • import physics.hep.
  • class MyAnalysis extends Analysis
  • public void init()
  • h new Hist(Energy)
  • public void Evanal(Event e)
  • Enumeration x e.getTracks()
  • while (x.hasMoreElements())
  • Track t x.getNextElement()
  • h.Add(t.getEnergy())
  • private Histogram h

Network
Write a Comment
User Comments (0)
About PowerShow.com