您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
Java和c语言有什么不一样?C语言可以编写Unix系统,Java能替代c吗?
语言,面向对象,内存Java和c语言有什么不一样?C语言可以编写Unix系统,Java能替代c吗?
发布时间:2019-02-08加入收藏来源:互联网点击:
Java和c语言有什么不一样?C语言可以编写Unix系统,Java能替代c吗?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
Java和C语言有什么区别?在回答这个问题前我们得先了解这两门语言各自有什么特点和优势。
Java是一门面向对象语言,主要特点如下
跨平台性,Java虚拟机提供了一个字节码到底层硬件平台及操作系统的屏障,使得Java语言具备跨平台性。简单性,Java摒弃了C++里难以理解的多继承、指针等概念,使得它更加严谨、简洁。面向对象安全性,Java语言具有许多的安全特性。多线程C语言是一门面向过程的计算机编程语言,主要特点如下
简洁紧凑、灵活方便结构式语言
语法限制不太严格,程序设计自由度大
C语言能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作
生成目标代码质量高,程序执行效率高
两者的部分区别
C语言可以直接操作内存,Java不能直接操作。C语言可以封装动态库DLL,Java不行。Java跨平台性相对于C语言高。C语言有指针,Java没有指针。Java拥有垃圾回收机制可自动管理内存,而C语言中必须由程序贝释放内存资源。在Java中引入了package的概念,使面向对象和面向组件开发更加方便,而在C语言中没有package概念,需要其他方式来实现。Java是否可以取代c吗?
答案是不能。一方面,C语言具有高效率以及对底层硬件的直接操作的优势。而Java相比于C语言其优势在于跨平台性,但是运行效率相对于C语言较低,而且无法直接对硬件操作。另一方面,两者主要应用的场景领域不同,Java适合企业级开发,而C适合如操作系统,虚拟机,设备驱动程序开发的领域。
所以C是不会被Java所替代的。希望我的回答能给你带来帮助。
回答于 2019-09-11 08:43:50
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接口函数都有一个前缀,例如MYSQL的mysql_init(), mysql_real_connect(), mysql_real_query()等函数名称前面的mysql_。
给你找的资料。
ava和c语言两者的区别如下:
1、C语言是面向过程的语言,执行效率高;Java是面向对象的语言,执行效率比C语言低;
2、C语言的安全性不如Java,C语言没有Java的垃圾回收机制,申请的空间要手动释放。Java的通用性好,可以跨平台直接移植,只要有安装Java虚拟机(JVM)就可以了。
3、在速度上,C语言编写的程序要优于Java
4、C语言注重的是算法,但是Java却不一样,想用的时候导包就可以了。C语言的算法很重要,但是Java中的算法没有C语言那么复杂。
5、Java采用Unicode字符集,C语言通常采用的是ASCII字符集,A—65,a—97。
6、C语言的变量可以不进行初始化,但Java的变量要进行初始化。
回答于 2019-09-11 08:43:50
Java语言和C语言的区别还是相对比较明显的,从语言自身的定位来看,Java语言属于面向对象语言的代表,在构建复杂业务逻辑方面具有一定的优势,而C语言则是面向过程编程语言的代表。
总的来说,Java和C之间的不同,可以通过以下几个方面来进行描述:
第一:应用场景不同。Java语言属于“全场景”编程语言之一,可以应用于Web开发、Android开发、大数据开发等场景,而C语言的应用场景则相对比较集中,主要应用于操作系统开发和嵌入式开发领域。由于Java语言的应用场景更多,所以目前IT行业内Java开发的岗位也相对更多一些。
第二:技术体系不同。Java是面向对象编程语言,虽然也借鉴了C语言的很多写法,但是在技术体系的设计上更注重可移植性、安全性和可扩展性,所以Java语言更契合互联网的应用环境,这也是Java在互联网时代得到快速发展的一个重要原因。由于Java语言极强的扩展性能,所以Java语言可以在互联网时代、移动互联网时代和大数据时代都能够找到自己的位置。
上一篇:雪松能嫁接黑松吗?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |