Language Elements


  • ANSI C control structures

  • Arrays and strings are objects

  • No handle to real or virtual memory addresses. No C/C++ style pointer arithmetic

  • Memory reclaimed via garbage collector

  • Support for exceptions. The Java run-time exports errors as exceptions

  • Support for creating and managing threads

  • Built-in concurrency control API in Object


Detailed Description:

"In addition, there are no pointers in Java. There are no handles to objects that allow us to get to memory in any way whatsoever, and there is definitely no pointer arithmetic. This is a security issue. In the past, one could define a program that would allocate a piece of memory and then, because the memory was not initialized to a given value, could run around and look at it and take information out of it if necessary. In addition, pointers were free to roam throughout anybody�s memory pointing to anything in it. That's not the case in Java. All information is properly defaulted to values so that it does not have the preexisting value that was left over in memory, and there is no pointer arithmetic."