c语言和java的区别:

1、语法不同;

2、单文件的编译时间java比C语言快;

3、C语言可以直接操作内存,java不能直接操作;

4、C语言可以封装动态库,java不行;

5、C语言的代码不容易跨平台,java的代码容易跨平台;

6、C语言有指针,java没有指针;

7、C语言可以直接操作串口,java需要第三方jar包支持;

8、C语言的线程更加灵活,java的线程都已经封装好了;

9、C语言做单独功能,可以增加效率,java适用做web应用开发;

10、unix是C语言编写的,java也是C语言编写的;

11、JAVA做web开发的时候,已经有很多成型的框架技术,C语言很少,且需要处理底层内容,对应不熟悉计算机原理的开发者难度很大;

12、JAVA的开源包太多了,C语言也有但是偏少,而且面向某个业务应用领域的框架没java多;

java的优势:

首先,Java是针对于对象的机制,运算符“new”为每个对象分配内存空间,实际内存会随程序的运行而发生改变。在运行的同时每个Java系统会对内存进行扫描,会对整个系统资源进行“采集”。这个时候一部分的垃圾文件就会被删除或者暂时回收。这样就使得整个系统资源就使用的更加充分合理,程序员对于这点就不需要担心系统内存方面的一些管理要求,在编写程序的时候也就变得更加的简洁明了。而c语言则是通过malloc()和free()这两数据库函数来分别实现对于的内存的分配和内存的合理运用。

其次,C语言更多通过子函数调用,Java通过类和类引用,同时拥有非常多的接口。Java面向对象特征主要表现为封装,继承和多变,C语言支持“运算符的重载”,这个是数据抽象和泛型编辑的一大宝典。Java本身为了降低复杂性而不支持这种多变机制,对于Java可以支持方法重载和重写。

另外,Java比C语言多了一些修饰“Public、Private、Protected”都是一些比较常用的修饰符,而C语言没有这类的修饰语言,换句话的意思就是C语言还缺乏一定的安全性。

再者,Java不使用指针,但是指针是C语言的精髓,然而Java中更多的是对数据每一位的操作,比如substring等。

总结来讲,Java与C语言相比,Java具有简单、面向对象、分布式、健壮、可移植、解释性、安全、多线程、垃圾回收等等特点。而对于C语言则是一个比较宏观的领域,因此Java可以说是C语言的基础上开设,即C语是基石,Java在时下的运用和使用方面就比较全面。