Java和C的区别

2024-11-29 03:23:11
推荐回答(4个)
回答1:

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()函数释放空间。

回答2:

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之间的区别还有很多很多。

回答3:

天呀, 前面都在说些什么呀?
1, c, 和java都是可以跨平台的, c基于编译技术, java基于虚拟机, 两个语言跨平台的机制不同.
2, java对于语言做了很多精简, 比如去除了基本数据类型的指针, 去除了函数指针, 去除了对象(复合数据类型)的传值. 但是, 由此, 他的很多解决方案就不如c语言直观了, 比如匿名类只是为了处理mvc.
3, java虽然是精简去的, 但是由于上面的原因, 他其实比c还要复杂.
4, 但是从framework的角度说, java就比c强很多了, java由于限制多, 导致问题和陷阱也少.
5, 因此, java其实比c要简单一些.
吼吼, 不知这么说你是否理解, 建议你, 两种语言都用用, 如果只能选择一种, 建议你选择c, 这个是基础, 什么oo, 都是浮云.

回答4:

Java主要采用纯面向对象的思想,而C是面向过程的,C++是半面向对象的。