随笔-208  评论-469  文章-30  trackbacks-0
不知道从什么时候起喜欢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

评论:
# re: 随手整理Java与C的不同点及心得 2007-07-29 14:52 | pass86
不要和C比较,引文这样不公平,C是面向过程的程序设计语言。要和C++比较.  回复  更多评论
  
# re: 随手整理Java与C的不同点及心得 2007-07-29 16:33 | dennis
蛮多有误的地方

java怎么没有全局变量?我们常常定义Globel类来存储系统的全局性参数

java虽然goto是保留字,但是其实通过break label机制也实现类似goto的效果

java已经支持enum关键字

java已经支持可变参数列表

  回复  更多评论
  
# re: 随手整理Java与C的不同点及心得 2007-07-29 16:34 | dennis
C语言通过一些库的支持也是有一定程度的Reflection的  回复  更多评论
  
# re: 随手整理Java与C的不同点及心得 2007-07-29 17:45 | bcims
@dennis
感谢dennis,enum在SE5.0就支持了,可变参数列表同样也支持,goto的话我上面已经讲清了,全局变量的话,您是从C方面讲的。  回复  更多评论
  
# re: 随手整理Java与C的不同点及心得[未登录] 2007-07-29 20:41 | roger
一个是面向对象的,一个是面向过程的。两种完全不一样的东西,拿来比较是很无聊的事情,就像比较男人和女人之间的区别一样,没意思。  回复  更多评论
  
# re: 随手整理Java与C的不同点及心得 2007-07-29 20:45 | dreamstone
java和c没有可比性啊,应该和java比的是c++或者c#
c本身不是面向对象语言,和c比的应该是pascal basic这类东西。
  回复  更多评论
  
# re: 随手整理Java与C的不同点及心得 2007-07-30 08:42 | Unmi
java和c没有可比性  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: