| − | The Java programming language is based on [[Object Oriented programming]] principles, coupled with [[garbage collection]]. This means, unlike [[C]] and other lower level programming languages the developer is able to create programs without worrying about pointers, references and memory. Instead the Java [[Virtual Machine]] is able to manage objects that are in use, periodically deleting objects that are no longer referenced (and therefore no longer required by the program). This memory management system, as well as memory management systems in general, make programs that require dynamic memory allocation much more convenient to write. The tradeoff of this is that performance of the program will generally decrease, which is why languages like [[C]] and [[C++]] are used in applications that require high performance, such as [[video games]]. | + | The Java programming language is based on [[Object Oriented programming]] principles, coupled with [[garbage collection]]. This means, unlike [[C]] and other lower level programming languages the developer is able to create programs without worrying about pointers, references and memory. Instead the Java [[Virtual Machine]] is able to manage objects that are in use, periodically deleting objects that are no longer referenced (and therefore no longer required by the program). |