Java和C的区别

如题所述

Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++、C#支持面向对象。

另外一个不同是,Java跨平台,既不同的操作系统都可以通过JVM来解释Java程序,而C、C++、C#则是与平台相关的,有些指令只在某些操作系统中才能执行。具体原因是,Java是解释型语言,所有代码都会翻译成统一的、与系统无关的bytecode,然后放到JVM上运行;而C是编译式语言,代码要先通过编译器转换成与系统相关的中间代码,然后才能运行。

再一个不同是,Java不支持系统调用,既无法与操作系统进行交互,这是由它跨平台的特点决定的,而C则可以调用系统中的指令,如fork()。这也就是为什么Java中只有线程(Thread)概念而没有进程(Process)概念,而C两者均有。

再者,Java无法对内存进行控制,而C则可以通过指针对内存进行人为分配。
还有一点,Java有Gabbage Collection机制,可以自动回收不再使用的空间,而C则要用free()函数释放空间。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-12-01
Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++、C#支持面向对象。

另外一个不同是,Java跨平台,既不同的操作系统都可以通过JVM来解释Java程序,而C、C++、C#则是与平台相关的,有些指令只在某些操作系统中才能执行。具体原因是,Java是解释型语言,所有代码都会翻译成统一的、与系统无关的bytecode,然后放到JVM上运行;而C是编译式语言,代码要先通过编译器转换成与系统相关的中间代码,然后才能运行。

再一个不同是,Java不支持系统调用,既无法与操作系统进行交互,这是由它跨平台的特点决定的,而C则可以调用系统中的指令,如fork()。这也就是为什么Java中只有线程(Thread)概念而没有进程(Process)概念,而C两者均有。

再者,Java无法对内存进行控制,而C则可以通过指针对内存进行人为分配。
还有一点,Java有Gabbage Collection机制,可以自动回收不再使用的空间,而C则要用free()函数释放空间。

总的来说,Java比较容易上手,学得快,但对于了解编程语言来说帮助不如C大。
当然Java和C之间的区别还有很多很多。本回答被提问者和网友采纳
第2个回答  2017-11-11
天呀, 前面都在说些什么呀?
1, c, 和java都是可以跨平台的, c基于编译技术, java基于虚拟机, 两个语言跨平台的机制不同.
2, java对于语言做了很多精简, 比如去除了基本数据类型的指针, 去除了函数指针, 去除了对象(复合数据类型)的传值. 但是, 由此, 他的很多解决方案就不如c语言直观了, 比如匿名类只是为了处理mvc.
3, java虽然是精简去的, 但是由于上面的原因, 他其实比c还要复杂.
4, 但是从framework的角度说, java就比c强很多了, java由于限制多, 导致问题和陷阱也少.
5, 因此, java其实比c要简单一些.
吼吼, 不知这么说你是否理解, 建议你, 两种语言都用用, 如果只能选择一种, 建议你选择c, 这个是基础, 什么oo, 都是浮云.
第3个回答  2018-02-02
Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++、C#支持面向对象。

另外一个不同是,Java跨平台,既不同的操作系统都可以通过JVM来解释Java程序,而C、C++、C#则是与平台相关的,有些指令只在某些操作系统中才能执行。具体原因是,Java是解释型语言,所有代码都会翻译成统一的、与系统无关的bytecode,然后放到JVM上运行;而C是编译式语言,代码要先通过编译器转换成与系统相关的中间代码,然后才能运行。

再一个不同是,Java不支持系统调用,既无法与操作系统进行交互,这是由它跨平台的特点决定的,而C则可以调用系统中的指令,如fork()。这也就是为什么Java中只有线程(Thread)概念而没有进程(Process)概念,而C两者均有。

再者,Java无法对内存进行控制,而C则可以通过指针对内存进行人为分配。
还有一点,Java有Gabbage Collection机制,可以自动回收不再使用的空间,而C则要用free()函数释放空间。

总的来说,Java比较容易上手,学得快,但对于了解编程语言来说帮助不如C大。
当然Java和C之间的区别还有很多很多。
第4个回答  2011-04-21
Java主要采用纯面向对象的思想,而C是面向过程的,C++是半面向对象的。

c语言和java有什么区别?
1、设计思路不同:C语言是面向过程的语言,执行效率高;Java是面向对象的语言,执行效率比C语言低;2、通用性不同:C语言不能跨平台;java可以跨平台直接移植,只要有安装Java虚拟机(JVM)就可以了;3、语法不同:(1)、基本数据类型不同:c语言是int short long char float double 还有一些特殊类型...

c语言和JAVA语言有什么区别?
两者的区别:1、面向对象Java的面向对象的指向性很明显,而C则是一个正规的结构化语言。 Java中有一个字符串类String, 通过调用 String.length()就可以了解字符串的长度,但是在C语言中,则需要使用函数strlen(str)来得到字符串(字符数组)的长度。2、名称空间Java通过包(package)来实现名称空间,在...

c语言和Java有什么区别?
java和c语言两者的区别如下:1、C语言是面向过程的语言,执行效率高;Java是面向对象的语言,执行效率比C语言低;2、C语言的安全性不如Java,C语言没有Java的垃圾回收机制,申请的空间要手动释放。Java的通用性好,可以跨平台直接移植,只要有安装Java虚拟机(JVM)就可以了。3、在速度上,C语言编写的...

java和c的异同(java与c语言的异同)
Java和c语言的区别C语言是经典的面向过程的编程语言,编程入门一般都学C语言以了解编程以及锻炼逻辑思维能力,在一些跟硬件比较紧密的编程中也经常用到。\\x0d\\x0a\\x0d\\x0aC++是在C语言的基础上加入了面向对象的概念,成为混合型面向对象语言,功能强大,但难度也大。\\x0d\\x0a\\x0d\\x0aJava是...

c语言和java的区别是什么?
区别如下:1、设计思路不同:C语言是面向过程的语言,执行效率高;Java是面向对象的语言,执行效率比C语言低;2、通用性不同:C语言不能跨平台;java可以跨平台直接移植,只要有安装Java虚拟机(JVM)就可以了;3、语法不同:(1)、基本数据类型不同:c语言是int short long char float double 还有...

C语言和JAVA有什么区别?
1、语法类似:由于Java可以算是从C++发展而来的,因此Java与C语言的语法比较类似 2、编程的熟练程度就是对语言程序库的掌握程度:从某种程度上来说,编程语言都是由语法和相应的程序库所构成,Java有自身的类库,C语言则有标准库。所谓的编程,就是使用与语法来调用和组合程序库中的函数。不同的地方:...

c语言与java语言有哪些区别?
C语言和Java语言是两种不同的编程语言,它们有以下几个方面的区别:1. 应用范围:C语言主要用于系统编程、操作系统、嵌入式系统等方面,而Java语言则广泛应用于Web开发、移动开发、大型企业级应用开发等方面。2. 语法:C语言是一种过程化语言,强调对计算机底层硬件的控制,其语法比较简单;Java语言则是一...

c语言和java的区别
1. 语法差异:C语言和Java的语法结构存在本质区别。C语言具有较为底层的控制能力,而Java提供了更高级的抽象。2. 编译速度:在编译单个文件时,Java通常比C语言快,因为Java拥有更高效的编译器和即时编译(JIT)机制。3. 内存操作:C语言允许直接访问和操作内存,Java则通过内存管理器来处理内存,从而...

java和c语言有什么区别
Java和C语言的区别:一、概述:Java和C语言都是编程语言,但它们在设计理念、应用场景、语法特性等方面存在明显的差异。二、主要区别分析:面向对象与过程化编程的区别:C语言是一种面向过程的编程语言,它关注程序执行的过程,通过函数和过程调用实现功能。而Java是一种面向对象的编程语言,它强调对象的...

c语言和java的区别?
C语言和JAVA的区别1、C语言是经典的面向过程的编程语言,编程入门一般都学C语言以了解编程以及锻炼逻辑思维能力,在一些跟硬件比较紧密的编程中也经常用到。2、指针在Java编程中是没有指针的,在使用Java的过程中,能够很好的避免指针出现错误导致系统崩溃的情况。在C语言中,指针的使用是非常重要的,如果...

相似回答