1、 Java没有预处理指令。(如C中的#define , #include , #ifdef等)。C中的常量定义在Java中用static final来取代。
 
2、Java中没有C中的全局变量。
 
3、Java中的主类型的size是确定的,而C中主类型的size跟平台相关。
 
4、Java中没有了指针,它使用了类似的句柄来取代指针,但是Java中不允许对句柄进行加减,没有取地址操作符之类的东东。
 
5、Java有垃圾收集机制,不需要自己释放空间。
 
6、Java没有goto语句。Java在C提供的控制语句基础上增加了异常处理和标签break和continue语句。这些可以替代goto的作用。
 
7、C要求一个方法或块中使用的所有局部变量的定义在该方法或块的最开始处定义,而Java允许这些定义在方法或块的任意地方出现。
 
8、Java不要求在调用一个函数以前已经定义了该函数,可以在调用点后面定义。而C有这个要求。
 
9、Java不支持C中的strut 和 union类型。Java支持方法重载。
 
10、Java不支持C中的enum关键字。
 
11、Java不支持C中的bitfields能力。
 
12、Java不支持C的typedef。
 
13、Java不支持C的方法指针。
 
14、Java不支持C的可变参数表
 
来源: 疯狂软件教育