常州网络公司联系方式,什么是seo标题优化,房产信息网长沙,湖北专业的网瘾戒除学校如何教育Java和C的区别有很多#xff0c;主要集中在如下几个方面#xff1a; 运行机制 Java#xff1a; 编写#xff1a;是指在Java开发环境#xff08;Eclipse、Sublime等#xff09;中进行程序代码的输入#xff0c;最终形成后缀名为.java的Java源文件。 编译#xff1a;是指… Java和C的区别有很多主要集中在如下几个方面 ·运行机制 Java 编写是指在Java开发环境Eclipse、Sublime等中进行程序代码的输入最终形成后缀名为.java的Java源文件。 编译是指使用Java编译器javac对源文件进行错误排查、编译生成后缀名为.class的字节码文件。这种字节码是平台无关的不能直接执行只能够用Java解释器来解释执行。 运行是指使用Java解释器JVM将字节码文件翻译成特定平台的机器代码执行并获得结果。 Java程序运行机制如图1所示通常情况下使用Java解释器运行字节码文件的详细过程如图2所示真正将字节码翻译成机器码的是JIT即时编译器JustIn Time。所以说Java既是一种解释型语言又是一种编译型语言但这里的编译同通常所说的将源程序编译成可执行的二进制代码不一样。 图1 图2 C 编写在C/C开发环境中进行程序代码的输入生成.h、.cpp源文件。 编译编译过程主要分为4个过程。 1编译预处理预编译程序完成的工作可以说成是对源程序的“替换”工作。经过这个过程生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件.i。 2编译、优化阶段通过词法分析、语法分析在确认所有的指令都符合语法规则之后将其翻译成等价的中间代码或汇编代码.s。 3汇编过程把汇编语言代码翻译成目标机器指令的过程。对于被翻译系统处理的每一个C语言源程序都将最终经过这一处理而得到相应的目标文件。目标文件中所存放的也就是与源程序等效的目标的机器语言代码.o。 4链接程序 将有关的目标文件彼此相连接也即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来使得所有的这些目标文件成为一个能够诶操作系统装入执行的统一整体.exe。 运行直接在操作系统上执行二进制代码获得结果。 C是一种编译型语言。 ·跨平台 Java跨平台基于JVM一次编写编译到处运行。 C不跨平台需要针对特定平台修改部分代码然后重新编译。 ·其他显著区别 指针Java没有指针这里指编程者无法通过指针来直接访问内存虚拟机内部还是使用了指针C有。 内存分配Java对内存的分配是动态的用new关键字分配存储空间内存回收由垃圾回收机制进行管理程序员不必关注C使用malloc和free分别分配和释放内存C使用new和delete释放内存程序员需要主动释放内存。 多重继承Java不支持多重继承C支持多重继承。 数据类型及类Java除了基本数据类型之外其余都是类的对象。Java函数和变量都是类的一部分不允许定义类外的全局变量和函数。Java取消了C中的结构体。C允许将变量和函数定义为全局的。 操作符重载Java不支持操作符重载C支持操作符重载。 字符串Java支持字符串变量String和StringBuffer来实现C不支持字符串变量。 类型转换Java不支持隐式类型转换必须使用强制类型转换C支持。 参考资料 Java和C区别http://blog.chinaunix.net/uid-12707183-id-2918815.html C语言与Java语言的区别有哪些http://www.zhihu.com/question/22928284