Java中对内存的分配是动态的,它采用面向对象的机制,采用运算符new为每个对象分配内存空间,而且,实际内存还会随程序运行情况而改变。
程序运行中 Java系统自动对内存进行扫描,对长期不用的空间作为”垃圾”进行收集,使得系统资源更充分地利用.按照这种机制,程序员不必关注内存管理问题,这使Java程序的编写变得简单明了,并且避免了由于内存管理方面的差错而导致系统出问题。
而C语言通过库函数来分别实现分配和释放内存空间,C++语言中则通过运算符来分配和释放内存。
在C和C++这种机制中,程序员得非常仔细地处理内存的使用问题。
Java不在所有类之外定义全局变量,而是在某个类中定义一种公用静态的变量来完成全局变量的功能。
Java不用goto语句,而是用try-catch-finally异常处理语句来代替goto语句处理出错的功能。
Java不支持头文件,而C语言和C++语言中都用头文件来声明类的原型、全局变量、库函数等,这种采用头文件的结构使得系统的运行维护相当繁杂。
Java不支持宏定义。Java只能使用关键字final来定义常量。
Java对每种数据类型都分配固定长度。比如,在Java中,int类型总是32位的,而在C语言和C++语言中,对于不同的平台,同一个数据类型分配不同的字节数,这使得C语言造成不可移植性,而Java则具有跨平台性(平台无关性)。