For more information see Sun's Java site.
Java is a programming language, very Similar to C++.
HotJava is a Web browser.
What's their relationship?
While Java can be used to write stand-alone programs (applications), it can
also be used to write "applets" which are embedded in HTML documents. These
applets "live on the web" and tag along with the HTML documents to be
executed on the client machine.
"The Java Language: A White Paper" for details. Also see
"Trail Map: Java/HotJava Programmer's Guide" (draft))
Simple, Object-Oriented, Distributed, Interpreted, Robust, Secure,
Architecture Neutral, Portable, High-Performance, Multithreaded, Dynamic
Simple: it's C++--!
Minus: operator overloading (but does have method overloading),
multiple inheritance, some auto coercions.
Plus: garbage collection
Small: 40K for interpreter and class support; +175K for
standard libraries and thread support
OO a la C++
Dynamic method resolution borrowed from Objective C
SI class hierarchy, MI interface hierarchy (Objective C)
Large library for TCPP/IP protocols (HTTP, FTP...)
URLs as easy as file opens
Bytecode is "executed" on any machine
Compile-time info embedded in bytecode stream
No pointers ("true arrays")
Java does the memory managment
Authentication (public-key encryption)
Bytecode system (like P-code)
One source/all platforms
No implementation-dependent aspects in the spec (int=2's complement 32 bit integer, always)
Library includes GUI
Portable boundary ~= POSIX
Bytecode can be translated to machine (specific) code
Bytecode-to-machine code is comparable to C++ or C
Hoare monitor and condition variable paradigm
Late dynamic binding means apps don't have to relink with changed libraries
Interfaces a la Objective C
"The HotJava Browser: A White Paper" for details. Also see
"HotJava User's Guide")
Why is HotJava Different from a conventional browser?
Like OODBs are supposed to be
Dynamic protocols allow for proprietary protocols using HotJava
Freedom to innovate