Java的语法和C语言大致上是一样的,不论是陈述式 (statement)、条件流程控制 (if)、循环 (for) 等等。也许你会有疑问,C语言加上面向对象的机制那不就是C++了吗?那Java和C++有什么样的差别?简单的说呢,Java改进了些C++中的一些缺点,并且增加了一些新的优点,让Java变的更简单、更容易学习,并且设计出来的程序威力更强大且更健壮 (robust)。那些东西是C++中有而Java中没有,又有那些东西是Java特殊的设计,而C++中所没有的呢?我们就来简单的比较一下。
在Java中拿掉了C语言中大家对他又爱又恨的指标 (pointer),指标使用得当的话,对于程序的能力有很大的帮助,但是使用不当的话,当机可以说是家常便饭。因此为了系统安全、程序的坚固性起见,在Java中没有指标。另外Java中也没有了C语言中程序常用的预先处理器 (preprocessor),像是#define、#ifdef、常数宏指令等,当然也少了#include指令,因此也没有了标头档 (.h)。再来对于C++来说,Java也不支持多重继承的观念,原因是不让对象和对象之间的关系变得复杂。
而在Java中新增加的部份像是内存垃圾回收 (Garbage Collection)、例外处理 (Exception)、新的修饰词 (abstract、synchronized、native、final) 等。所新增的部份,几乎全都是为了整个系统和程序本身的安全性而考虑的。
除了上述这几个比较大的改变之外,还有一些小的修正,像是Java不论在何种平台上,基本数据型态的大小是不变的等。笔者会在后面的章节中,陆续的介绍Java这些新增功能的使用方法。