1. C语言和java的区别
首先从概念上说,Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性。c语言是一门面向过程、抽象化的通用程序设计语言。Java的面向对象的特性使得用它编程比用C语言要简单很多。而且Java脱胎于C语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,所以Java相对C语言来说更简单易用。
其次从适合人群上来说,名企在招聘Java技术人才时一般会要求大专以上学历,所以想找Java类工作,学历是个槛;而C语言行业对于学历并不那么看重,C语言开发工程师学历要求中大专学历占比较高。
第三从就业机会上来说,Java由于具有跨平台性、安全性、健壮性等特性,广泛应用于企业级应用开发、网页开发、游戏开发等领域,就业面相对较广,而C语言退守到系统级别语言,成为软件工业的基础,地位稳定,广泛应用于底层开发,嵌入式、VR/AR、网络安全等领域都需要用到C语言。
最后从薪资待遇来看,从职友集数据可知,Java开发类人才的平均薪资在一万以上,C语言工程师的平均薪资在8千到一万之间。Java开发类的工资较高些。
2. c语言和java的区别
C语言是面向过程的语言,java是面向对象的编程语言,当然C#等也是面向对象的!
C语言开始确实比较容易上手,只要是让你熟悉
选择
循环
和顺序
(if
for)
等,到最后你还是要改变思想到面向对象上,其实先学哪个后学哪个不重要,主要看你用多少心,
c语言初学的话可以用TC2.0
TC3.0
或者
winTC
,如果学java的话建议使用记事本练习基础,推荐使用EmEditor
最好有英文基础
因为java的开发工具基本都是英文的,当然,也可以汉化,不过基本没人用,我
英文一点不好一样用英文的。
下面说一下发展前景,c有几个方向
C
C++
C#
其中C是最难的,也是最赚钱的主要从事底层开发,比如驱动....c++主要用于大型桌面客户端
比如网络游戏。。。。
c#
也用字桌面应用程序
和
web程序中
asp.net就是用c#
的
我知道的是这些
但是请注意ASP.NET的开发工具是收费的
java也分几个方向
java因为有移植性好的优势
所以
被用在很多地方,比如手机软件,
javaSE可以做简单的java程序
javaME是用来开发手机应用程序
比如手机游戏,
javaEE是用来做WEB程序的
一些大型网站
java和C的最大区别
我觉得就是java是开源的(免费)
c是收费的(不开源)
java的所有核心代码你都是可以看到的,而C的
比如C#底层的代码你根本就不可能看到。
当然
不能说
java
和
C
哪个好一些,因为他们各有优缺点!!!
这个就要每个人在使用的过程中自己来评论了!当然我比较倾向于java
3. Java和c语言的区别
java和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的变量要进行初始化。
4. Java和C语言有什么区别
从概念上看,C语言是一门面向过程、抽象化的通用程序设计语言;Java是一门面向对象编程语言,而Java语言是从C语言衍生而来,它吸收了C++语言的各种优点,并且摒弃了C++里难以理解的多继承、指针等概念。从概念可以看出C语言相当于Java的基础语言,学完C再学Java会更容易。
从应用领域上,C语言和Java的应用领域几乎没有重合。因为随着这几年Java、web、PHP等语言的出现,它们凭借比C更简洁的、更安全的性能快速崛起,抢占了大量的市场。目前因为Java有完善的框架,在多线程、高并发方面有着较好的稳定性,所以Java主要应用于企业级应用开发、大型系统开发等领域。而C语言由于编程的复杂性,退守到了系统级别语言,而且因为想要系统级软件可以发挥出机器的功能,它的底层核心就需要用C/C++来编写,所以C语言主要应用于软件工业。
5. c和java的编译过程到底本质区别在哪里为什么c就不能用java的机制一次编程处处运行
C编译出来的是可以直接有CPU执行的命令代码,系统可以直接发送给CPU执行。可以理解为自行车的后轮,他直接和地面上转动,让车走。
java 编译出来的是字节码,是供JVM试用的代码,而jvm去调用cpu执行。可以理解为自行车的脚踏。通过脚踏让链条转,然后让轮子转,使车运动!
大家最初的原理和目的以一样,才会这样。
6. java和c的编译方式有什么区别
我的第一次判断失误,请教了一位高手,理论解释如下:
编译器的问题,java的编译器在遇到i++和i- -的时候会重新为变量运算分配一块内存空间,以存放原始的值,而在完成了赋值运算之后,将这块内存释放掉,而C语言中的i=i++就只是完成i++的内容,所以结论会不同。
原理也可以这么说:
Java中:
int temp=i;//重新分配变量内存
i=i+1;
i=temp;
C中:
i=i;//i还是i
i++;
楼主,是不是考虑加点分,答案得来不容易啊 :-)
7. JAVA语言和C语言有什么区别
C语言和 Java的主要区别:面向过程/面向对象、编译型/混合型、不同的应用场景。只要阅读二者的入门资料就清楚了。时间足够的话,先学C再学Java;时间不够直接上 Java。一个合格的程序员当然是要会C语言的,不过真正必须用到C语言的领域主要是嵌入式开发和操作系统等偏底层的开发。题主所提到的开发场景(Web开发、移动开发)并不是C语言的强项。而选择 Java 的话,首先要把这门编程语言的基础打牢,了解面向对象编程的基本思想。然后选择 Java 的其中一个应用领域继续深入学习,比如 Web 后台或者安卓开发。Web开发,即题主所说的“做网站”。网站开发分前端和后台,这两个方向精通其一即可。简单粗暴地理解,前端是呈现给用户的网页界面以及交互操作,运行在用户的浏览器上;而后台负责存取和处理数据,运行在服务器上。前端和 Java 没有多大关系,需要学习的是 HTML、CSS 和 JavaScript。学完 JavaScript 基础之后,再上手一种前端框架,Vue、React、Angular 都可。后台的话,编程语言可选 PHP 或者 Java。选择 Java 的话,就必须掌握一种主流的 Ja
8. Java和C的区别
Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++、C#支持面向对象。
另外一个不同是,Java跨平台,既不同的操作系统都可以通过JVM来解释Java程序,而C、C++、C#则是与平台相关的,有些指令只在某些操作系统中才能执行。具体原因是,Java是解释型语言,所有代码都会翻译成统一的、与系统无关的bytecode,然后放到JVM上运行;而C是编译式语言,代码要先通过编译器转换成与系统相关的中间代码,然后才能运行。
再一个不同是,Java不支持系统调用,既无法与操作系统进行交互,这是由它跨平台的特点决定的,而C则可以调用系统中的指令,如fork()。这也就是为什么Java中只有线程(Thread)概念而没有进程(Process)概念,而C两者均有。
再者,Java无法对内存进行控制,而C则可以通过指针对内存进行人为分配。
还有一点,Java有Gabbage Collection机制,可以自动回收不再使用的空间,而C则要用free()函数释放空间。
9. java和c两种编程语言的区别
Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++、C#支持面向对象。
另外一个不同是,Java跨平台,既不同的操作系统都可以通过JVM来解释Java程序,而C、C++、C#则是与平台相关的,有些指令只在某些操作系统中才能执行。具体原因是,Java是解释型语言,所有代码都会翻译成统一的、与系统无关的bytecode,然后放到JVM上运行;而C是编译式语言,代码要先通过编译器转换成与系统相关的中间代码,然后才能运行。
再一个不同是,Java不支持系统调用,既无法与操作系统进行交互,这是由它跨平台的特点决定的,而C则可以调用系统中的指令,如fork()。这也就是为什么Java中只有线程(Thread)概念而没有进程(Process)概念,而C两者均有。
再者,Java无法对内存进行控制,而C则可以通过指针对内存进行人为分配。
还有一点,Java有Gabbage Collection机制,可以自动回收不再使用的空间,而C则要用free()函数释放空间。
总的来说,Java比较容易上手,学得快,但对于了解编程语言来说帮助不如C大。
当然Java和C之间的区别还有很多很多
10. c/c++编译过程和Java编译过程之间的区别
Java编译原理
1、Java编译过程与c/c++编译过程不同
Java编译程序将java源程序编译成jvm可执行代码--java字节码.
c/c++编译过程:
当C编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行而生成的。因此在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。
Java编译过程:
Java编译器却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将些符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,然后再通过查表来确定一个方法所在的地址,这样就有效地保证了java的可移植性和安全性。
2、jvm工作原理
运行jvm字符码的工作是由解释器来完成的。解释执行过程分三步进行:代码的装入、代码的校验、和代码的执行。
装入代码的工作由“类装载器classloader”完成。类装载器负责装入运行一个程序需要的所有代码,这也包括程序代码中的类所继承的类和被调
用的类。当类装载器装入一个类时,该类被放在自己的名字空间中。除了通过符号引用自己名字空间以外的类,类之间没有其他办法可以影响其他类。在本台计算机的所有类都在同一地址空间中,而所有从外部引进的类,都有一个自己独立的名字空间。这使得本地类通过共享相同的名字空间获得较高的运行效率,同时又保证它们与从外部引进的类不会相互影响。
当装入了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。解释器为符号引用与特定的地址空间建立对应关系及查询表。通过在这一阶段确定代码的内布局,java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码的非法访问。
随后,被装入的代码由字节码校验器进行检查。校验器可以发现操作数栈益处、非法数据类型转化等多种错误。通过校验后,代码便开始执行了。
java字节码的执行有两种方式:
1)即时编译方式:解释器先将字节编译成机器码,然后再执行该机器码。
2)解释执行方式:解释器通过每次解释并执行一小段代码来完成java字节码程序的所有操作。