c语言和java有哪些区别呢? - 爱问答

(爱问答)

c语言和java有哪些区别呢?

c语言java有什么区别?

相同的地方:
1、语法类似:
由于java可以算是从C++发展而来的,因此java与c语言的语法比较类似
2、编程的熟练程度就是对语言程序库的掌握程度:
从某种程度上来说,编程语言都是由语法和相应的程序库所构成,java有自身的类库,c语言则有标准库。所谓的编程,就是使用与语法来调用和组合程序库中的函数。
不同的地方:
1、内存管理
在java中,基本不用考虑内存的问题,如果想用一个对象,new一个就可以,这个过程的背后则是JRE为对象分类的一定内存,当JRE发现你不再使用这个对象的时候,他就会自动回收内存,也就是说你只管借东西,不用管归还,因为与有人当你的跟班,在你不使用的时候就把东西归还了,不过这个过程还是有的,只不过是JRE作的而已。
但是C则不同,如果你想用,你可以用malloc之类的方法申请内存,当你使用完了,因为没有跟班的,你需要自己把这块内存归还回去,也就是调用free方法来完成这个任务。由于需要显式的归还内存,因此当一个函数需要将一块内存返回给调用者的时候,问题就比较复杂了,不如面向对象和具有内存回收功能的java那么直观了。对于这个问题,在c语言中,有几种解决方案:
(1) 在调用者中先分配好内存,作为参数传入到被调用的函数中
(2) 在被调用的函数中分配,使用完后在调用者中释放
(3) 在被调用函数中使用static变量,可以将该变量返回
2、面向对象
java的面向对象的特点很明显,而C则是一个地道的结构化语言。 java中有一个字符串类String, 通过调用 String.length()就可以知道字符串的长度,但是在c语言中,则需要调用函数strlen(str)来得到字符串(字符数组)的长度。由于C不是面向对象的语言,也就没有this的概念,因此当使用一个与某个“东西”相关的函数时,就需要不厌其烦的将代表这个“东西”的变量作为参数传递进去。
3、名称空间
java通过包(package)来实现名称空间,在c语言中,所有的函数都处于同一名称空间,也就是没有名称空间,因此就会很多程序提供的api接口函数都有一个前缀,例如mysqlmysql_init(), mysql_real_connect(), mysql_real_query()等函数名称前面的mysql_。

单文件的编译时间java比c语言快;

c语言可以直接操作内存,java不能直接操作;

c语言可以封装动态库,java不行;

c语言的代码不容易跨平台,java的代码容易跨平台;

c语言有指针,java没有指针;

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

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

c语言做单独功能,可以增加效率,java适用做web应用开发;unix是c语言编写的,java也是c语言编写的;

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

相关标签:javac语言

下一篇:如何排练PPT中间的内容

上一篇:java中如何更新

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?