The Java language
Syntactically similar to C, in most places
Simplified greatly; i.e., no pointers, forward declarations, etc.
No global variables or functions
Uses Unicode characters rather than just ASCII
Strictly object-oriented, with syntax vaguely like C++,
No multiple inheritance -- interfaces instead
All methods are virtual by default; dynamic lookup
Runtime garbage collection
Thus Java is more like Smalltalk or Objective C than C++.