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接口函数都有一个前缀,例如MYSQL的mysql_init(), mysql_real_connect(), mysql_real_query()等函数名称前面的mysql_。

4、在运行方式上
C:原始的C是面向过程的.就是按行执行.
JAVA:绝对的面向对象.就像按模块执行.
(补充:当然,在C++,及C#上,C也有向面向对象模式转换)

5、在语句结构上
C:在中国应该算是编程语言的颠峰应用.C就像个完全服从的军人.你让他做什么他就做什么.你完全控制他,但你必须全程了解他之后才能控制好他.

C里面特有指针,地址等.以及数组存储方式与JAVA不一样.

JAVA:人性化的面向对象编程语言.他把万物都可以看成一个基本的对象,然后再复制,改写他们.
JAVA给认为有点像工厂,你在工厂里面先分别做好一个个小零件,然后再用电线把他们连起来.组装成可用的东西.

6、用途上
C:纯C一般用在嵌入式上.编写最底层的程序.因为他的语言与硬件的连接最容易.
C++:应用软件,WEB程序都可以.
JAVA:J2EE,J2SM,J2ME.什么都可以

c 嵌入式底层软件 操作系统 各类函数库引擎库软件核心代码 服务器端底层工具
c++ 图形图像 游戏客户端 游戏服务端桌面软件各类高性能客户端软件近底层软件
java嵌入式移动设备应用软件开发 web网页后台逻辑开发部分桌面程序

C,JAVA其实都可用在各种领域的.

语法不同:
单文件的编译时间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语言很少,且需要处理底层内容,对应不熟悉计算机原理的开发者难度很大;
JAVA的开源包太多了,C语言也有但是偏少,而且面向某个业务应用领域的框架没java多;
 
JAVA和C还有一个最大的区别,那就是跨平台。

通过JAVA虚拟机的解析,可以使在Windows或UNIX上面写的程序在其他系统下也能运行,而C语言是绝对不行的。但是C语言在和硬件打交道的时候,速度是最快的。C比较基础,java比较流行。但是2者没有上下之分,一个是编程语言的鼻祖,一个是目前流行的跨平台语言.擅长的领域不同,在不同的场合用不同的语言。但是,如何运用好这门语言,也就是对程序员的一个考验。鱼和熊掌的问题,取舍最终还是只能看你自己。

C、C++、C#其实也是三种不同的语言

C++是C的增强版,增加了一些新的特性,如面向对象 C#跟 C/C++ 完全不同,是微软开发的语言,用于.net

只是语法有点像C/C++  要说区别,首先就得说联系, C是爷爷,C++是爸爸, C#是c的外孙。这形象说明了三者的关系。

从时间先后上说,他们之间最早出现的是C,然后是c++,最后是c#。c++是为了解决软件危机而引入面向对象

c#为了实现平台统一和java争夺市场下的产物。

目前软件开发有两种主流的开发方法(对应的语言):

1、结构化开发方法:C、Basic、Pascal;

2、面向对象开发方法:C++、Java、C#、Ruby

一、 Java封装了很多类和接口,而这些是C语言没有的。其实为了提高开发效率,java就应运而生了,这些功能在C语言也可以实现,但是要自己写更多的代码。但也因此,同样的程序用java写的一般跑得比C语言 的慢很多。

二、 C语言是面向过程的语言,而Java是面向对象的语言。Java相对于c语言而言,去掉了指针等容易出错的功能。在Java语言白皮书中,Java被描述为“是一种简单、面向对象、分布式、解释、健壮、安全、结构中立、可移植、高效能、多线程、动态的语言

三、 C语言单机代应用非广泛融合高级语言简单易用汇编语言执行效率Java研究电消费产品发平台互联网应用基础实现许的语言特性c语言沿用发展并且使面向象更加自完善(安全性代码移性)。

四、 Java的程序是由一个一个类组成的,一个Java应用程序至少包含一个类,极端的,一个类可以是一个空类,不包含任何属性定义和方法声明。

五、 至少一个类中应该包含public static void main(String[] args)这样的方法声明,否则程序不可能被运行。

六、 Java跨平台,既不同的操作系统都可以通过JVM(java虚拟机)来解释Java程序,而则是与平台相关的,有些指令只在某些操作系统中才能执行。Java是解释型语言,所有代码都会翻译成统一的、与系统无关的bytecode,然后放到JVM上运行;而C是编译式语言,代码要先通过编译器转换成与系统相关的中间代码,然后才能运行。

七、 Public表示该类可被其它的类访问,class表示Java的一个类,static表示main()方法是一个可以直接使用的方法,void表明main()方法执行它所包含的语句后不返回给调用者任何信息。这一点是重要的,因为Java编程语言要进行谨慎的类型检查,包括检查的调用方法确实返回了这些方法所声明的返回值类型。String[]是一个string数组的声明,用来接受外界传递给main()方法的参数。

八、 Java程序多用于网络。C语言的安全性不如Java,C语言没有Java的垃圾回收机制,申请的空间要手动释放。Java的通用性好,可以跨平台直接移植,只要有安装Java虚拟机(JVM)就可以了。在速度上,C语言编写的程序要优于Java,因为Java必须运行在虚拟机的环境中,但是因为虚拟机,Java获得的平台无关性,而C语言的程序有可能需要重新修改编译才能实现平台的移植,另一方面,C语言比Java语言更“底层”,因此可以用C编写例如硬件的驱动,而Java却不行。

九、 Java的命名规则是标识符可从一个字母、下划线(—)或美元符号($)开始,随后可跟除了在Java中作为运算符之外的任何可见字符。标识符是连续的字符串,不能被制表符和空格隔开。标识符不可能是关键字,但是它可包含一个关键字作为它的名字的一部分。Java语言严格区分标识符的大小写,未规定最大长度。

十、 基本Java类型有八种,分别为逻辑型、字符型、字节型、短整型、整型、长整型、单精度、双精度。

十一、 Scanner是一个类,通过调用扫描对象的方法实现输入。Println()方法,ln表示换行。

时间: 2024-11-05 02:36:40

C语言与java的区别的相关文章

scala语言与java的区别 (1)

scala支持关联映射,如可以用(key -> value)表示一个键值对 scala中的所有类型都是对象,包括基本数据类型 scala中的case语句用来判断接收的消息,比java中的switch...case...更专注 receive{    case msg => action()    } scala行动类实现了线程之上的并发抽象,通过发送消息相互通信,每个行动类都自动维护一个消息队列,并且实现发送消息和接收消息的基本操作. receriver ! msg scala是静态类型的,也

scala语言与java的区别 (2)

scala中的所有操作符都是方法的调用,例如:1+2,等效于(1).+(2) 0 to 5,等效于(0).to(5),x(1)="scala",等效于(x).update(1,"scala"),x(1)等效于(x).apply(1) scala通过定义伴生对象,分离静态成员,类似于java中的static关键字 scala Array数组中所有对象都具有相同类型,实例化后数组长度不能再改变,但是数组元素值可以改变 List数组中的元素值则不可改变,List有&quo

如何在Java平台上使用脚本语言做Java开发

如何在Java平台上使用脚本语言做Java开发     最近开始流行区分Java平台和Java语言,但很多Java开发者还是不能确定如何在 Java应用程序开发中结合脚本.本篇文章,Gregor Roth给出了在Java平台上使用脚本的方法.通过这篇文章,你可以了解怎样在你的Java应用程序中使用脚本,是否你要通过使用Groovy和 Jython把不同的Java应用程序模块粘合在一起,或者写一个你自己的基于JRuby的应用程序,适用于Java平台. 作为一个Java开发者,你可能已经注意到了,J

php和java的区别

php和java的区别 前几天有个大学的同学给我来电话,他是在培训java的,然后我们就讨论了一下关于php和java的优劣区别(我们的是初学者,所以下面发表的内容可能不会很精准到位,望体谅): 我们大学的时候都接触过以下php和java这两门课程,当时我们php是用Dreamweaver8,java使用Eclipse来编写的,作为零基础的我,当时就觉得php这门语言相对于java要来的简单一点:php是弱类语言,不用特定去声明,但是java就是强类语言,很多地方都一定要去声明,那这么说来步骤就

JavaScript与Java的区别

关于java和javascript的关系,我曾在一个论坛上看过这样一句话,java和javascript的关系,就好比雷锋和雷峰塔的关系,实在是经典! 因为名字的关系,总是有人误以为Javascript是Java的一个子集,或者必然会存在一些关系.但非常让大家失望,这两种编程语言除了名字开头相同之外,没有其它内在的关系! 什么是Javascript? 我在上一篇Javascript简介中已经介绍了什么是Javascript,它是运行在浏览器中的一种脚本语言,在web页面中,Javascript可

groovy与java语法区别

groovy与java语法区别 Groovy试图对Java开发人员尽可能地兼容.在设计Groovy时,遵循最不意外的原则,尤其是对于那些来自Java背景的开发人员. 这里我们列出了Java和Groovy之间的所有主要区别. 1.额外的关键字 Groovy中比Java多一些关键字,不要将它们用于变量名称等. as def in trait 2.数组初始化 在Groovy中,{...}块保留用于闭包.这意味着您无法使用以下语法创建数组字面量: // java初始化 int[] array = { 1

J2EE,JSP,Java的区别

J2EE,JSP,Java的区别 JSP 就是用来做动态页面的,可以归属到J2EE系列中. Java 这个词的概括可能更广一些,因为Java 包含 3个领域,分别是:J2SE:图形界面开发  J2EE: 企业级开发  J2ME:嵌入式开发 java包含三大分支: J2SE --java standard edition--标准版本,完成桌面应用程序的开发,是其它两者的基础:一般是位于客户端的应用; J2EE --java Enterprise Editon --一般为服务器端程序的应用,开发企业

03_Android NDK中C语言调用Java代码,javah的使用,javap的使用以及生成签名,Android.mk的编写,C代码的编写

?? 1  案例场景,通过C语言回调Java的代码,案例的最终界面: 2  案例的代码结构如下: 3 编写DataProvider的代码: package com.example.ndkcallback; public class DataProvider { //C调用java空方法 public void helloFromJava(){ System.out.println("哈哈哈  我被调用了"); } //C调用java中的带两个int参数的方法 public int Ad

java版本区别

java版本区别 点我,点我,Eclipse几个版本号的区别(part1) 点我,点我,Eclipse几个版本号的区别(part2) 点我,点我,Eclipse几个版本号的区别(part3)