Java和C语言的区别,c语言和java语言有什么区别
java与c语言的区别有哪些?
1、Java与C内存分配不同:
java中有五个内存分配区,分别是堆栈区(存放局部变量,使用后会立即恢复)、堆区(存放新的东西、实体和对象,每个对象都有地址值,每个对象的数据都有默认值,使用后垃圾收集器空闲时会恢复)、方法区、局部方法区(与系统相关)、寄存器区(针对【推荐学习:Java课程】
C中有四个内存分配区,分别是堆栈区(存储函数参数、局部变量的值)、堆区(动态内存申请和释放,如果程序员不释放内存,可能在程序结束后被操作系统释放)、全局区(静态区)和代码区。
2、函数
1)对于变量和函数,C需要实现声明和定义,而Java只有定义没有声明;
2)因为C不是面向对象的,所以C中所有的全局变量和函数对Java来说本质上都是静态的。Java是一种面向对象的语言,不允许在类和接口之外声明函数,包括主函数和变量。在C中,往往在一个文件中定义大量的全局变量,这些变量在其他文件中通过引用声明实现共享,而Java不允许使用全局变量或函数;
3)当C中函数返回值的类型与声明的类型不匹配时,函数返回值会在函数返回前自动转换为此类型;但是在Java中面对第二种情况时,就需要添加强制类型转换;
4)C中函数调用参数计算的顺序是未定义的,而Java有从左到右的顺序;
5)如果C中的变量或函数是在另一个文件中定义的,则必须用extern声明。它们在编译单个文件时是不可见的,但仅在链接阶段可见。Java编译器没有这个链接阶段,所有需要的文件都必须在编译时可见;
6)C和Java程序都是从main函数执行的。Main函数一般需要两个参数,argc和argv,argc有命令行参数的个数,argv有实际的命令行参数;Java main必须使用stringargs[]作为方法的参数,用于接收运行系统启动Java应用程序所使用的命令行;
7)可以在C和Java中调用exit函数来终止程序;c可以使用abort函数来退出异常终止的程序,但是Java中没有相应的策略。
3、预处理器及头文件的比较
Java没有预处理器,也没有头文件;c预处理器只接收一些文本,并把它们转换成其他文本。编译器编译预处理过的源程序。在C语言中,头文件通常用于声明原型、全局变量、库函数等。
4、用途上
语言:纯C一般用在嵌入式系统中写最底层的程序,因为它的语言是最容易和硬件连接的。能做的:嵌入式底层软件操作系统,各类函数库,引擎库,软件核心代码,服务器端底层工具。
JAVA:J2EE、J2SM、J2ME无所不能。有,嵌入式移动设备应用软件开发,网页后台逻辑开发和一些桌面程序。
c和JAVA其实可以用在各个领域。
5、在运行方式上:
C:原来的C是面向流程的,就是行执行的。
JAVA:绝对面向对象,它是由模块执行的。
(补充:当然在C和C#上,C也有向面向对象模式的转换)
6、语法不同:
c语言可以直接操作内存,java不行;
c可以封装动态库,java不行;
c代码不容易跨平台,java代码容易跨平台;
c有指针,java没有指针;
c语言可以直接操作串口,java需要第三方jar包的支持;
c的线程更加灵活,java的线程已经封装;
c可用的标识符有数字、大小写字母、下划线,不能以数字开头;除了这三种类型的C之外,还有一个美元符号($)用于表示Java中可用的标识符,它也不能以数字开头。
java和C有什么区别?更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。