C语言是底层的语言,java可以看作是在C上面封装起来的一种语言!

解决方案 »

  1.   

    应用层次不一样
    C比较底层,可以直接操作系统api
    java封装层次较高,优势在于大量的类库至于具体需要做什么东西,要看你的需求来定
    毕竟汇编能做到的事情,C也一样做不到不是吗
      

  2.   

    ,java因为要有jvm才行,因为java用都是在jvm里运行的,也就是说你得先有个jvm
    c 能做的java也是可以做到的,就拿塞班系统来说,有很多应用是c开发的,用过的的就知道,
    同一个程序有c的,也有java的,但是c高效是肯定的
      

  3.   

    程序执行效率要看代码整体结构,一套写的很烂的C代码也一样可以效率远低于java
    主要看人,而不是工具
      

  4.   

    java层次比较高,类库丰富,程序基本上只和类库打交道,而类库的实现离不开具体的native层,这一般由c/c++来实现.
    通过c语言可以直接调用操作系统提供的接口,编译器直接将c语言编译成对应cpu的指令码程序,而java语言是编译成字节码由虚拟机解释为指令码加以执行,因此c语言的效率比java高
      

  5.   

    C是一种赚钱的艺术,java是一种花钱的艺术。
    java就是一系列的工具集,被架空了,看起来脱离了底层。离底层越远,当然运行速度越慢,因为所有的操作最终都是在底层实现的。
    也正是因为java脱离底层较远,所以java不必把重心放在底层设计上,我们可以更多的去关心设计模式等,统筹全局。
      

  6.   

    我只知道c是面向过程的语言,而java是面向对象的语言。俺是菜鸟
      

  7.   


    程序执行运行是要考虑效率的,看看Android现在很火,它的程序一般是java开发的,但是我感觉用Android的很多人都在反应:android耗电太厉害了,这很可能跟程序的运行效率有关吧
      

  8.   


    很多人都是学java在编程这条路上是走不长的,只有C/C++才是永恒的
      

  9.   

    java的内存管理机制限制了它的性能,所以用java来开发操作系统,这种极其要求高效率的软件,至少目前是不太可能的,不过随着技术的发展,java虚拟机技术的不断改进,相信java的内存管理限制会逐渐减少或消失。
    C的执行效率高这是肯定的,但是对于快速开发大型软件系统,开发效率肯定是不能与java比的
      

  10.   

    有一个java开源的项目,是用几乎是纯java代码和极少量的汇编代码编写的操作系统--jnode,这个系统很慢,我想有一部分原因是虚拟机是他们自己实现的而没有采用使用商用的虚拟机,垃圾回收的算法也都不是很好,所以会慢一些,但是最主要的原因还是java的内存管理机制造成的
      

  11.   

       系统底层的是由C写的,C是面向过程,而java是在面向过程基础上将其封装。成为面向对象,实际底层的实现依然是C语言的思想。
       至于不能开发底层的原因,java是跨平台的是基于JVM的,只能操作JVM,在有JVM操作系统底层去实现,而C或者C#不用通过jvm可以直接和系统底层打交道,但是只能在Windoes下。所以高级语言的利与弊就在于此。没有完美的只有更好的,本人支持java,较其他语言,更加…呵呵.
      

  12.   

        java是在面向过程语言的基础上,封装,优化而来的,底层实现依然是c的方法。
         对于java不能开发底层的,主要由于,java是依赖于JVM的,JVM是在java与系统之间的交换器吧(不准确),java程序的一切实现依赖于JVM,由JVM去和系统打交道,所以,java是和JVM直接交流的,与底层的交互,具体要看JVM。
         C语言之所以可以和系统打交道,是由于系统是C写的,不必要想JVM这样的中间件,它可以直接调用系统的方法(不安全),但是不能跨平台,有局限性。
         java的效率高低问题,java运行效率没有C高,因为多了中间的JVM,但是,在开发软件的时间效率上有着优越的优势,相对而言,软件开发的时间效率更加现实,运行效率不会有很大区别。 
       
        java虽然没有C那样强悍,但是安全,跨平台,他的强大功能足以满足现实世界的问题。 
      

  13.   

    首先java是一门高级语言   更归近于与人的思想   C的效率高  汇编的效率更高  原因就是这些语言接近于机器语言
      

  14.   

    编译器相关的吧,Java是解释性语言
      

  15.   


    通过看马士兵的视频,我对java的内存管理机制有一定的了解,但是我不知道还有什么样的内存管理机制,比如C的内存管理机制是怎样的?能否讲解一下?还有不同的内存管理机制之间对应用程序的效率都有什么影响?
      

  16.   

    两个语言的定位不同,所以功能也不同,
    Java也是用C编的,
    我更倾向于C语言。
      

  17.   

    java中所有与硬件打交道的操作都被封装起来了,你没办法直接操作硬件。
      

  18.   

    感谢大家的参与,虽然还有些疑问,但是通过此贴,我对C和java有了进一步的了解!谢了!
      

  19.   

    现在将操作系统比作一条河,各语言比作一个要跳进河里洗澡的人(规定:不准穿着外套洗澡),而机器语言就像是只穿了小裤衩(可以直接跳进河里洗澡),汇编语言就好比是穿着一层外套的人(需将外套脱了才能进河里洗澡),C/C++则相当于穿了两层外套(要想进河洗澡需将两件外套都脱掉),而java则是穿了三层外套的人。这只是个人目前的不全面的理解,不知是否有道理!
      

  20.   

    java是运行在java虚拟机里,java虚拟机也就是所谓的JVM(JavaVirtualMachin),JVM也是一个专门处理java程序的运行在特定操作系统上的微型操作系统,每次执行java代码都需要把代码转成java字节码,然后由JVM调用底层的API,执行java字节码,这中间多了一层转换,就让java效率不如C,不过随着硬件的逐步强大,这些效率差别正在逐步缩小
      

  21.   

    java和c++可比性要高一些。
    java和c++都是面向对象的编程语言,其中java是完全面向对象的编程语言,所有代码必须封装成类,c++既可面向对象,又可面向过程。
    c++和java运行方式不一样,c++是完全编译型语言,编写的代码通过编译器编译链接形成可执行的机器代码,直接由cpu执行,java先由java的编译器编译成java字节码,字节码jvm解释执行。由执行方式即可看出,c++编译的可执行程序,效率比java高。
    c++可通过指针和io读写直接控制硬件和内存,java只能在jvm中运行,操作硬件只能使用代理。
    c++通过指针来操纵内存,java通过jvm管理内存,由于c++灵活而不进行超限检查,容易造成内存泄漏,java的jvm垃圾回收机制一般不会造成泄漏,但在资源管理上如果不注意释放同样会造成资源被锁定。
    c++由于完全编译,不同的硬件和操作系统使c++的类库无法做到统一封装,使得编程对硬件和操作系统的依赖较大,java类库可进行统一封装,对硬件和操作系统的依赖主要由jvm来完成,少了指针操作的java比c++容易学习,程序开发的效率java要高。