Upload
ralph-chase
View
217
Download
0
Embed Size (px)
Citation preview
Java: An OverviewJava: An Overview
John R Durrett
Texas Tech University
Object Oriented Programming
Vocabulary of OOPVocabulary of OOP
Class - “Cookie cutter” Object - “Cookie” 3 Pillars of OO Wisdom
#1 Encapsulation
Object Oriented Programming
# 2 Polymorphism
# 3 Inheritance
Java
The History of JavaThe History of Java
Oak– Green Project– small appliance user interface
To Java in early 1995 Distributed programming Well accepted by developers Acceptance by users is unclear
Java
StrengthsStrengths
Architecturally neutral– “comterpreted”– standardized APIs
Multiple execution paths Managed memory system Easy
– single inheritance– memory management– dynamic linking– no pointers
Java
SecuritySecurity
Program (bytecode) verification No Overflows Variables by name not memory Applets
– no file i/o– limited network connectivity– no external application calls– signed jar files
Applications
Java
Java vs. C++Java vs. C++
No structs or enums Easy to use exceptions No functions, all object oriented No multiple inheritance No operator overloading No direct memory pointers No automatic type conversions No preprocessor Dynamic linking
Java
WeaknessesWeaknesses
Java is slow– cost of interpreted language– cost of multi-threading– JIT compilers, Java chip– Native compilers
Lack of dynamic mobility– Mobility continuum– Object state– Tcl, Telescript
No uniform comm. model lack of standardized JVM
Java
Tools and APIsTools and APIs
First generation tools– JDK, Symantec Café
Second generation– J++, Visual J++– Visual Café 2.0– Visual Age for Java
Third party packages Third party java beans
Java: Fad or Fundamental?
Is it safe to bet your Is it safe to bet your job on java?job on java?
William Blundon
– “The Truth about Java,” Internet World, V7N12, Dec 1996
– Director OMG
Good platform for building Client Software
Easy to use and learn High Quality code
Java: Fad or Fundamental?
Promises for the Promises for the future?future?
Good for Server Applications– database access (jdbc)– I/O– execution speed– three tier distributed systems
Secure Write once & port anywhere Portable object components
– Java Beans