不知道从什么时候起喜欢JAVA的,从JDK1.4到现在1.6,从最基本的main()开始到现在从事J2EE的开发,从ASP做WEB程序到现在用JAVA独立开发软件,回头看一下,光阴已走,路还是这条路。
朋友偶尔问我C语言方面的东西,自己从来没有系统学过,有些问题一知半解,到最近几天拿着高中买的数据结构<C语言版>看,似乎爱上了C,程序贵在相通,万变不离其宗,上手很快。趁现在坐在客厅里吹风,有本本在,随手在网上找些资料整理一下JAVA和C的区别,但又很矛盾,如果单从语言来比较是没有什么太多意义的,一个类似寄生虫一样的东西,一个是生下来就可以跑的家伙,但我今天的BLOG还是要写,以此充数吧!至少也是我的心得。
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关键字(SE5.0就支持了)。
11. Java不支持C中的bitfields能力。
12. Java不支持C的typedef。
13. Java不支持C的方法指针。
14. Java支持可变参数表。
15,java有 Reflection ,c 没有
16,java有Annotations,c没有
17,java有generics,c没有
16,java有interface,c没有
posted on 2007-07-29 13:58
EricWong 阅读(883)
评论(7) 编辑 收藏 所属分类:
Java