Java和C++虽然同属C系的高级程序设计语言,也同样都支持面向对象的程序设计。然而,除了两者的语法相似以及部分概念相同之外,两者的差别还是很大的。早期学C++的程序员多半还是面向过程的程序设计方式,直到后来由台湾著名讲师候捷老师撰写的《深入浅出MFC》等权威著作的鞭策,才让C++的面向对象程序设计有了更多的发展。然而在Java中,你会发现与操作系统打交道的底层实现不需要你去关心了。比如,让许多C++程序员头疼的内存管理。在Java中你永远都不必担心内存会泄漏,因为使用Java编程你永远都是在和Java虚拟机(即:JVM)打交道,而并非你的操作系统。你编写的各种Java代码将会被JVM编译成二进制的中间代码,这样的中间代码实现了平台无关性(即不必关心所运行的操作系统环境),也使得Java的“一次编写,到处运行”成为可能。各种操作系统的Java虚拟机实现都是由SUN公司负责,由于存在中间的虚拟环境,Java虚拟机只需要负责将二进制的中间代码二次及时编译为本地系统(即你所运行的操作系统)的机器码即可。你学过C++就应该知道C++编译出来的文件是机器码,与特定操作系统紧密相关。排除C++的底层实现优势,Java里面有许多C++所不具备的特性,比如:可以利用Java反射机制动态创建类实例、动态执行方法并获取返回值等等。如果你设计模式学得好,写代码够OO,那么Java将是你的最佳选择。要知道,在C++的大型企业应用中,后期的项目维护是相当大难度的工作,然而如果使用Java做这些事情,只要你的面向对象思想建立得足够好,你就能写出相当灵活、相当容易维护的程序来。说得有点过头了,不过请记住语言只是一个工具而已,关键技术还是对现实世界的抽象过程,你把现实世界模拟得足够好,你也就掌握了面向对象程序设计的精粹! |