120 likes | 136 Views
Explore Java's 3 pillars of OO, history, strengths in architecture, security features, comparison with C++, weaknesses, tools and APIs, job prospects, and future potential in building server applications and portable object components.
E N D
Java: An Overview John R Durrett Texas Tech University
Vocabulary of OOP • Class - “Cookie cutter” • Object - “Cookie” • 3 Pillars of OO Wisdom • #1 Encapsulation Object Oriented Programming
# 2 Polymorphism • # 3 Inheritance Object Oriented Programming
The 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
Strengths • Architecturally neutral • “comterpreted” • standardized APIs • Multiple execution paths • Managed memory system • Easy • single inheritance • memory management • dynamic linking • no pointers Java
Security • 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++ • 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
Weaknesses • 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 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
Is it safe to bet your 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 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 Java: Fad or Fundamental?