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