文档库 最新最全的文档下载
当前位置:文档库 › java与C的区别

java与C的区别

java与C的区别
java与C的区别

JA V A和C语言都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多态)。而由于C语言为了照顾大量的C语言使用者,而兼容了C语言,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JA V A则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了C语言的固有缺陷。JA V A和C语言的相似之处多于不同之处,但两种语言几处主要的不同使得Java更容易学习,并且编程环境更为简单。

我在这里不能完全列出不同之处,仅列出比较显著的区别:

1、指针

JA V A语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了C语言语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说JA V A没有指针,虚拟机内部还是使用了指针,只是外人不得使用而已。这有利于JA V A程序的安全。

2、多重继承

C语言支持多重继承,这是C语言的一个特征,它允许多父类派生一个类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。Java不支持多重继承,但允许一个类继承多个接口(extends implement),实现了C语言多重继承的功能,又避免了c 中的多重继承实现方式带来的诸多不便。

3、数据类型及类

JA V A是完全面向对象的语言,所有函数和变量部必须是类的一部分。除了基本数据类型之外,其余的都作为类对象,包括数组。对象将数据和方法结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。而C语言允许将函数和变量定义为全局的。此外,JA V A中取消了C语言中的结构和联合,消除了不必要的麻烦。

4、自动内存管理

JA V A程序中所有的对象都是用new操作符建立在内存堆栈上,这个操作符类似于C语言的new操作符。下面的语句由一个建立了一个类Read的对象,然后调用该对象的work方法:Read r=new Read();r.work();语句Read r=new Read();在堆栈结构上建立了一个Read 的实例。Java自动进行无用内存回收操作,不需要程序员进行删除。而c 中必须由程序员释放内存资源,增加了程序设计者的负担。JA V A中当一个对象不被再用到时,无用内存回收器将给它加上标签以示删除。Java里无用内存回收程序是以线程方式在后台运行的,利用空闲时间工作。

5、操作符重载

JA V A不支持操作符重载。操作符重载被认为是C语言的突出特征,在JA V A中虽然类大体上可以实现这样的功能,但操作符重载的方便性仍然丢失了不少。JA V A语言不支持操作符重载是为了保持JA V A语言尽可能简单。

6、预处理功能

JA V A不支持预处理功能。C语言在编译过程中都有一个预编译阶段,即众所周知的预处理器。预处理器为开发人员提供了方便,但增加丁编译的复杂性。JA V A虚拟机没有预处理器,但它提供的引入语句(import)与C语言预处理器的功能类似。

7、JA V A不支持缺省函数参数,而C语言支持

在C语言中,代码组织在函数中,函数可以访问程序的全局变量。C语言增加了类,提供了类算法,该算法是与类相连的函数,C语言类方法与Java类方法十分相似,然而,由于C 语言仍然支持C语言,所以不能阻止C语言开发人员使用函数,结果函数和方法混合使用使得程序比较混乱。JA V A没有函数,作为一个比C语言,更纯的面向对象的语言,JA V A

强迫开发人员把所有例行程序包括在类中,事实上,用方法实现例行程序可激励开发人员更好地组织编码。

8、字符串

C语言不支持字符串变量,在C语言程序中使用null终止符代表字符串的结束,在JA V A中字符串是用类对象(String和StringBuffer)来实现的,这些类对象是Java语言的核心,用类对象实现字符串有以下几个优点:

(1)在整个系统中建立字符串和访问字符串元素的方法是一致的;

(2)字符串类是作为Java语言的一部分定义的,而不是作为外加的延伸部分;

(3)JA V A字符串执行运行时检空,可帮助排除一些运行时发生的错误;

(4)可对字符串用“十”进行连接操作。

9、“goto“语句

“可怕”的goto语句是C语言的“遗物”,它是该语言技术上的合法部分,引用goto语句引起了程序结构的混乱,不易理解,goto语句子要用于无条件转移子程序和多结构分支技术。鉴于以广理由,JA V A不提供goto语句,它虽然指定goto作为关键字,但不支持它的使用,使程序简洁易读。

l0、类型转换

在C语言中有时出现数据类型的隐含转换,这就涉及了自动强制类转换问题。例如,在C 语言中可将一浮点值赋予整型变量,并去掉其尾数。Java不支持C语言中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。

11、异常

JA V A中的异常机制用于捕获例外事件,增强系统容错能力try{//可能产生例外的代码}catch(exceptionType name){ //处理} 其中exceptionType表示异常类型。而C 则没有如此方便。

1.Java没有预处理指令(如C中的#define,#include,#ifdef等)。C中的常量定义在Java中用staticfinal 来取代。

2.Java中没有C中的全局变量。

3.Java中的主类型的size是确定的,而C中主类型的size跟平台相关。

4.Java中没有了指针,它使用了类似的句柄来取代指针,但是Java中不允许对句柄进行加减,没有取地址操作符之类的东东。

5.Java有垃圾收集机制,不需要自己释放空间。

6.Java没有goto语句。Java在C提供的控制语句基础上增加了异常处理和标签break和continue语句。这些可以替代goto的作用。

7.C要求一个方法或块中使用的所有局部变量的定义在该方法或块的最开始处定义,而Java允许这些定义在方法或块的任意地方出现。

8.Java不要求在调用一个函数以前已经定义了该函数,可以在调用点后面定义。而C有这个要求。

9.Java不支持C中的strut和union类型。Java支持方法重载。

10.Java不支持C中的enum关键字。

11.Java不支持C中的bitfields能力。

12.Java不支持C的typedef。

13.Java不支持C的方法指针。

14.Java不支持C的可变参数表。

电大_Java语言和WWW技术判断题

电大_Java语言和WWW技术判断题 1.调用System.gc()方法不能保证JVM立即进行垃圾收集,而只能是建议。T 2.类加载器加载程序运行所需要的所有类,它通过区分本机文件系统的类和网络系统导入的类增加安全性。T 3.Java数组的长度只在构造(创建)数组时指定,而在声明数组时不能指定。T 4.main()方法前的public修饰符、static修饰符均是必须的。F 5.局部变量在定义该变量的方法被调用时被创建,而在该方法退出后被撤销,其生存期和定义该变量的方法的生存期相同。T 6.数组元素没有进行显式赋值,系统根据数组声明的数据类型自动进行默认初始化。T 7.一个源文件可以不包含任何代码定义,即是一个空文件,编译时不会产生错误。T 8.一个源文件中,如果没有public类,则源文件名不必与源文件中其它类名一致。T 9.源文件命名可以依照Java语言标识符定义规定。F 10.垃圾收集的过程在Java程序的生存期中是自动的,不需要分配和释放内存,也避免了内存泄漏。T 11.类加载器加载程序运行所需要的所有类,由网络系统导入的指定类总是先被加载。F 12.Java中所有参数的传递都采用值传递方式,即当传递一个参数到方法中时方法获得的是传递参数的副本。T 13.成员变量和局部变量由于其所属对象生命周期不同,生存周期也不同。T 14.如果在一个源文件中存在两个或两个以上public类定义,则会产生运行错误。F 15.一个源文件可以包含多个类。F 16.一个源文件只能包含一个public类。T 17.用来指定数组长度的数据类型只能是int类型。F 18.在源文件中,如果存在一个public类定义,则源文件名必须与public类名一致。F 19.friendly关键字是Java语言友元类的访问控制修饰符。F 20.private修饰的顶层类(非内部类)可以被同一个包中的其他类所访问。F 21.任何变量在使用前都必须显式初始化。F 22.在Java语言中,属性前不加任何访问控制修饰符则表示只允许同一包中的类访问。T 23.包声明语句(package)必须放置在包引入语句(import)之前。T 24.当一个类没有显式定义构造方法时,Java系统总是为其创建一个默认的无参的构造方法。T 25.一个源文件中有class(类声明)、package(包声明)和import(包引入)3中顶层元素,同时出现时必须按照import、package和class的顺序出现。F 26.一个源文件中最多只能包含一个包引入语句(import)。如果源文件没有显式声明引入包,则系统默认引入https://www.wendangku.net/doc/8418976696.html,ng包。F 27.在同一个类的不同构造方法中调用该类的其它构造方法需要使用this(…)的形式,this(…)不能在构造方法的第一行调用。F 28.重写的方法的访问权限不能比被重写的方法的访问权限高。F 29.maxElements是一个成员变量,声明为:“public static final intmaxElements=100;”。T 30.类变量在该类被加载时被创建,不能用new Xxxx()创建,所有该类的实例对象共享类变量,其生存期是类的生存期。T 31.实例变量在使用new Xxxx()创建该类的实例时被创建,而其生存期和该类的实例对象的生存期相同。 T 32.在一个抽象类中不能定义构造方法。F

4、c语言和c++和Python-和Java优缺点(B)

C语言 虽说C语言在内存管理方面存在严重的缺陷,不过它还是在某些应用领域里称王称霸。对于那些要求最高的效率,良好的实时性,或者与操作系统内核紧密关联的程序来说,C仍然是很好的选择。 C良好的可移植性也为它加了分。不过现在很多其他的语言可移植性越来越好,C在这方面的优势可能会逐渐丧失。 现有的很多程序可以产生非常棒的C代码,比如语法分析器、GUI Builder等,这时候C语言也是有吸引力的,因为你所需要编写的代码只是整个程序的一小部分。 再有,我们当然应该认识到,C语言对于程序员来说具有无可替代的价值。就我这里讨论的每一种语言而论,只要你发掘的足够深,到最后你会看到它们的内核都是用纯正的、可移植的C写成的。 到了今天这个时候,我们最好把C看成是UNIX虚拟机上的高级汇编语言。 就算是其他的高级语言完全可以满足你的工作需要,抽出时间来学习C语言也仍然有益,它能帮助你在硬件体系的层次上思考问题。 即使到了今天,最好的C语言教程仍然是1988年出版的K&R第二版The C Programming Language. 总结:C最出色的地方在于其高效和贴近机器,最糟糕的地方在它的内存管理存在严重的缺陷。

C++语言 C++最初发布于1980年代中期,当时面向对象语言被认为是解决软件复杂性问题的银弹。C++的面向对象特性看相去使其全面超越了C,支持者认为C++将迅速把上一代语言挤到陈列馆里去。 但是历史并非如此。究其原因,至少有一部分归咎于C++本身。为了与C兼容,C++被迫作出了很多重大的设计妥协,结果导致语言过分华丽,过分复杂。为了与C兼容,C++并没有采用自动内存管理的策略,从而丧失了修正C最严重问题的机会。 另外一部分原因,恐怕要算到面向对象身上。看起来OO(字母)并没有很好的达成人们当年的预期。我就这个问题调研过,我发现使用OO方法导致组件之间出现很厚的粘合层,并且带来了严重的可维护性问题。今天让我们来看看开放源码社区,你会发现C++的应用还是集中在GUI,游戏和多媒体工具包这些方面,在其他地方很少用到。要知道,面向对象也只是在这些领域被证明非常成功,而开放源码社区的选择,很大程度上体现了程序员的自由意志,而不是公司管理层的胡乱指挥。 也许C++实现OO的方法有问题。有证据表明C++程序在整个生命周期的开销高于相应的C,Fortran和Ada程序。不过,究竟这是否应该归咎与C++的OO实现上,还不清楚。

C语言词法分析程序java版

附录:核心代码清单 C语言词法分析代码算法实习--------------------------------------------------------By NLLWRQ 功能类: package conversion; import java.io.*; public class Work{ public String filename; public int flage=1; public int error[]={0,0,0,0,0}; public int error1[]={0,0,0,0,0,0}; StringBuffer buffer=new StringBuffer(); private String Keychar[]={"int","char","long","float","double","short","unsigned","struct","union","enum","auto","ext ern", "static","register","typedef","void","if","else","switch","case","default","do","while","for","break", "continue","return","goto","define","include","undef","ifdef","endif","line","sizeof","asm","fortran","ad a","pascal"}; private String Keyfile[]={"stdio","windows","stdlib","ctype","math","time","string"}; public Work(String filename){ this.filename=filename; } boolean isKeyfile(String ch){ for(int i=0;i

JAVA语言与WWW技术复习题

2016-2017年第二学期JAVA语言与WWW技术复习 题 一、填空题 1.Java的三大体系分别是___ Java EE _ __、____ Java SE__、___ Java ME __。 2.Java中的变量可分为两种数据类型,分别是___基本数据类型_和_引用数据类型__ ___。 3.在非静态成员方法中,可以使用关键字__ This _ ___访问类的其它非静态成员。 4.被static关键字修饰的成员变量被称为_静态变量__,它可以被该类所有的实例对象共 享。 5.编译Java程序需要使用__ javac _ ___命令。 6.Java中的程序代码都必须在一个类中定义,类使用___ class___关键字来定义。 7.若int []a={12,45,34,46,23}; ,则a[2]= __34_ ___。 8.面向对象的三大特征是__封装、__继承__和多态_。 9.定义在类中的变量被称为___成员变量_,定义在方法中的变量被称为__局部变量_。 10.异常的捕获通常由try、catch两部分组成,___try___代码块用来存放可能发生异常,__ catch __代码块用来处理产生的异常。 11.String类中用于返回字符串字符个数的方法是___ length() __。 12.JDK中提供了一系列可以存储任意对象的类,统称为_集合_ __。 13.在Java中,能实现线程间通信的流是_管道流___。 14.System.out是__PrintStream__类的对象,称为标准输出流,调用System类的_ setOut(PrintStream out)__方法可以实现标准输出流的重定向。 15.在程序开发中,要想将一个包中的类导入到当前程序中,可以使用_ import __关键字。 16.System类中所提供的属性和方法都是_ 静态___的,想要引用这些属性和方 法,直接使用System类调用即可。 17.Collection有两个子接口分别是List和Set,List集合的特点是有序、可重 复,Set集合的特点是无序、不可重复。 18.InputStreamReader类是用于将_字节流___转换为_字符流___。 19.在Java中,byte类型数据占___1___个字节,short类型数据占__2____个字节,int类型数 据占___4___个字节,long类型数据占__8____个字节。 20.当一个对象被当成垃圾从存中释放时,它的_ finalize()_____方法会被自动调用。 二、选择题

JAVA语言与WWW技术形考作业参考答案

《JA V A语言与WWW技术》形考作业参考答案 注:本答案仅供参考,如有错误敬请指正 作业一 一、选择题 1、D 2、B 3、B 4、B 5、C 6、B 7、D 8、A 9、D 10、D 11、C 12、B 13、A 14、D 15、B 16、A 17、ABE 18、CDE 19、D 20、B 二、简答题 1、JA V A是由SUN Microsystem公司推出的。其特点如下: A、语法简单,功能强大 B、分布式与安全性 C、与平台无关 D、解释运行,高效率 E、多线程,可并行执行 F、动态执行 G、丰富的API文档和类库 2、 JA V A虚拟机即JVM:是在一台真正的机器上用软件方式实现的一台假想机,是编译后的JA V A程序和硬件系统之间的接口,可以将其看作一个虚拟的处理器,编译后的JA V A程序由JVM解释执行,而不是由CPU。 JVM的具体实现包括:指令集、寄存器组、类文件格式、栈、垃圾收集堆、内存区等几部分。 3、 JVM是运行JA V A程序必不可少的机制,编译后的JA V A程序指令并不直接在硬件系统的CPU上执行,而是由JVM执行,JVM是编译后的JA V A程序和硬件系统之间的接口,程序员可把JVM看作一个虚拟的处理器,它不仅解释执行编译后的JA V A指令,而且还进行安全检查,它是JA V A程序能在多平台之间进行无缝移植的可靠保证,也是JA V A程序的安全检查引擎,JVM使用的代码是存在编译生成的.class文件中。 4、 (略) 5、 (略) 6、 抽象:是指通过抽取具体事物的本质特征来描述事物的一种思想 封装:是将数据及对数据类型的操作捆绑在一起成为类,形成一个不可分割的整体,并尽可能对外隐藏它的细节,只呈现少量接口的技术。 继承:是指在一个类中将另一个已有类中的数据和方法保留供自己用,再加上自己特殊的数据和方法而形成一个新类的技术。 多态:是指在一个类或多个类中让多个方法使用同一名字的技术,如方法的重载和覆盖等。7、 面向对象的程序设计方法:把问题看成是相互作用的事物集合,用属性来描述事物,把它的操作定义为方法,其中把事物称为对象,把属性称为数据,对象就是数据加方法。

C语言,C++语言,C#语言和Java语言有什么区别

C语言,C++语言,C#语言和Java语言有什么区别 简单地说,它们不是一种语言,语法有差别,编程时具体用到的类库或者函数库也不一样。 虽然它们不是一种语言,不过它们却也有所联系。广泛地说,C可以看作其他三种语言的源语言,因为其他三种语言几乎都是从C而来的,无论从数据类型还是控制语句看,其他三种语言都有从C得来的迹象。 其中C++则一般看作是对C语言的扩展。因为C语言没有面向对象的语法结构,而当时业界又迫切需要面向对象的编程特性,所以贝尔实验室的开发者就为C添加了面向对象的结构。现在C++已经不只是C的扩展了,它已经完全可以被看作一种新的编程语言。虽然C的特性以及库函数仍然被C++支持,不过C++拥有自己的独立的类库体系,功能相当强大。 Java语言是一种完全的面向对象语言,虽然它的底层(运行时库)是用C语言开发的,可是并不依赖于C。因为Java的运行是在运行时库的支持下进行的,所以运行效率比起可以更接近底层的C/C++来说效率会有所影响,不过Java的类库采用很好的设计理念设计,非常好用,也非常实用,已经成为业界的一种标准开发语言。它的跨平台的特性尤其让很多开发者欢迎,你只需要开发一次就能在所有安装了Java运行时库的系统上运行。Java发展了十几年了,可以

应用领域非常之广泛,Web开发有JSP,J2EE,桌面领域现在有JavaFX。 C#是微软开发的一种编程语言,语法类似Java,几乎就是从Java的翻版。运行原理和Java也类似,也是通过运行时库的支持运行。不过支持的平台还很有限。JAVA几乎被所有平台支持,而C#目前只被Windows和Linux支持,Windows下的支持当然是由微软自己开发的,而Linux下的支持则有MONO支持。实际上,MONO也是把C#应用转化为JAVA应用而已,所以本质上,C#仍然只是被微软自己的操作系统支持。应用平台受到限制,是它最大的缺点。 C/C++的优点在于与底层比较接近,可以控制的粒度更加精细,是开发系统级应用的最佳选择。关于缺点,我想正是源于其优点,因为它们能控制的编程元素粒度精细,所以编程比较困难,烦琐,容易出错。 Java和C#都比较高级,可以看作高级语言的高级语言,优点是开发容易,但运行效率不如更为底层的C/C++。 具体选择使用的时候,可以根据实际的项目需要选择。运行效率要求高的,底层控制要求高的用C/C++,否则可以选择Java或C#;跨平台的要求高的可以用Java。

电大Java语言与WWW技术形成性考核程序题

电大Java语言与WWW技术形成性考核程序题 一、写出下列程序完成的功能 1、public class Sum { public static void main(String args[]) { int sum =0; for ( int i=1;i<=100;i++) sum+=i; System.out.println("sum="+sum); } } 上面这段程序所完成的功能是:求 1至100之间的整数的和,并在屏幕上显示出来。 2、 import java.io.*; public class Class1 { public static void main(String args[]){ inti,Max,Min; int a[ ]={ 12,67,8,98,23,56,124,55,99,100 }; Max=Min=a[0]; for (i=1;iMax)Max=a [i]; } System.out.println(Max+" "Min); System.out.println(); } } 上面这段程序所完成的功能是:在数组中查找并输出最大值和最小值,并输出显示。 3、import java.io.*; public class Class1{ public static void main(String args[] ) { Fact N=new Fact(4); System.out.println(N.fact() ); } } class Fact{ int n; Fact(intnn){n=nn;} int fact(){

JAVA语言和C语言的区别

JAVA语言和C语言的区别 12521330张露 在大一刚开始,我们便接触了C语言这门课程,刚开始接触这类语言感觉非常的陌生,后来在学习了一段时间以后才发现语言是一门看眼我们逻辑思维以及对固定关语法应用的一门课程。随着年级的增高,我们有学习了汇编语言、机器语言等,这学期,我们终于接触到了JAVA语言,平时总是听说这类语言,这次终于学习了这门语言感觉和C语没太大区别,主要是在语法上有些许的不同。 首先,JAVA采用面向对象的机制,采用运算符new为每个对象分配内存空间,而且,实际内存还会随程序运行情况而改变.程序运行中,每个,Java系统自动对内存进行扫描,对长期不用的空间作为”垃圾”进行收集,使得系统资源得到更充分地利用.按照这种机制,程序员不必关注内存管理问题,这使Java程序的编写变得简单明了,并且避免了了由于内存管理方面的差错而导致系统出问题.而C语言通过malloc()和free()这两个库函数来分别实现分配内在和释放内存空间的。 C语言中更多是运用子函数的调用,java则是类和类之间的引用,而且很多的是接口。 其次,Java面向对象的特征主要有封装,继承,多态。类的继承关系是单一的、非多重的,一个子类只有一个父类,子类的父类又只有一个父类。C语言支持“运算符的重载”,这是它的一个很重要的多态特征,是数据抽象和泛型编程的利器。它允许直接对对象进行四则运算,正像基本数据类型那样Java不支持这种多态机制,也是为降低复杂性。Jvav可以支持方法重载和重写,所谓重载就是一个类具备多个相同属性行为;重写就是在继承关系中父类的行为在不同的子类上有不同的实现。在Java中比C语言多了一些修饰符,如访问修饰符Public(公共的)、Private(私有的)、Protected(受保护的)、默认。Java有super关键字,指代父类对象,通常被用于调用父类的构造方法或一般方法C 语言则没有super关键字,两者都有this,指代当前对象。在Java中,除了static、final、private是静态绑定以外,所有方法一律按动态绑定处理。Java 中可以将类组织起来用Package打包,而C语言没有。Java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。 在Java中比C多了一些修饰符,如Public、Private、Protected这些访问修饰符,可以控制变量的使用范围。两者都有this来指代当前对象。在c语言中没有这种修饰符,也就是说在安全性方面不如java,java对变量的保护做得非常好。 Java不再使用指针,指针是C和C++中最灵活,也最容易产生错误的数据类型.由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个C++中的私有成员,从而破坏安全性.而Java对指针进行完全地控制,程序员不能直接进行任何指针操作。可以说指针是c语言的精髓,然而java中更多的是对数据每一位的操作,比如substring等。 从专业的角度来说,Java课程对于软件设计而言是十分必要的,Java的定义是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台。Java

C语言,C++语言,Java语言有什么区别

C语言,C++语言,Java语言有什么区别 C不只能考级!! UNIX,WINDOWS漏洞,单片机。。很多地方都用到了C!! C语言是高级语言的基础,学习计算机语言可以先学C,但如果以后不用C直接学C++也行,但入门稍微困难点。 C是面向过程编程的,这样往往会导致所谓的单一程序,既所有的功能只能包含在几个(通常是一个)代码模块中。 而C++是面向对象编程(OOP)的,他杜绝了C面向过程的缺陷.OOP常常要使用许多代码模块,每个模块都有特定的功能,而且是孤立的。OOP提供了非常强大的多样性,大大增强了代码的重用机会! C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。 当然,C语言也有自身的不足,比如:C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数族下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。 总之,C语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,有时一个使用的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言。 C++:面向对象的语言.是一门独立的语言;他并不依赖C语言.是编程语言中最复杂的一门.而VC是用微软Visual C++编译器编译的语言,与标准c++有一些细微的不同. Java程序中的每个变量要么是基本数据类型(boolean, char, byte, short, int, long, float, double),要么是对对象的引用 C++有许多种基本类型,额外还有struct, union, enum, 数组和指针,C++指针可以指向对象,也可以不指向对象 Java没有枚举、联合类型,因为Java认为没有必要。将可有可无的语言元素去掉是Java对C/C++做出的一大改变,因此,普遍认为Java较C++更轻便,更精简 Java采用Unicode字符集,C++通常用ASCII字符集。但ASCII是Unicode的子集,对于习惯于ASCII的程序员感觉不到区别

Java和C语言的对比

C语言和java的对比学习 前言 这里说写的都是我的学习笔记,然后这里的是很简单的对比学习,全部都是自己所理解的东西,而且都是很基础的,很简明的辅助自己理解学习而已。C语言不会涉及到指针以及比指针更难更深层次的内容;Java也不会涉及到面向对象以及比面向对象更深层次更难的内容。 2015年12月20日

运行机制 C语言: 源代码>编译>汇编>机器码>可运行程序 Java 源代码(*.java)>编译>字节码(*.class)>解释>程序运行 相当于:把”鱼(源代码)”买回来>用”刀(编译器)”宰鱼>处理好的”鱼(字节码)”>用锅(JVM,解释/运行环境:java虚拟机)把鱼煮熟>可以吃的鱼(可运行程序) PS:Java程序分为两种类型,一种是Application程序,也就是一般的桌面程序.还有一种就是Applet程序,主要是应用(嵌入)到网页编程上的.

开发环境搭建(简单入门) C语言 VC++ 6.0(直接安装直接用) Java Eclipse EE 1.下载安装JDK(Java 开发工具包 = java development kit) 2.下载eclipse(Mars, J2SE = java 2 standard edition 标准版,J2EE=企业 版,下载是下载EE版本的,EE版本可以做网页程序) 3.配置环境变量 JAVA_HOME: C:\Program Files\Java\jdk1.8.0_45 CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 或者CLASSPATH: %JAVA_HOME%\lib\rt.jar;.; PATH: %JAVA_HOME%\bin

C语言与java关键字对比表

C语言Java关键字对比表 JAVA关键字C语言关键字相同关键字java特有C语言特有abstract auto break abstract auto assert break case assert const boolean case char boolean extern break char continue byte goto byte const default catch register case continue do class signed catch default double extends sizeof char do else final struct class double enum finally typedef continue else float implements unsigned default enum for import union do extern if instanceof double float int interface else for long native enum goto return new extends if short package final int static private finally long switch protected float register void public for return volatile strictfp if short while super implements signed synchronized import sizeof this instanceof static throw int struct throws interface switch transient long typedef try native unsigned new union package void private volatile protected while public return strictfp short static super switch synchronized this throw throws transient try void volatile while

写给Java程序员的C语言速成教程

写给Java程序员的C语言速成教程 徐婉珍2017.3.2 Java语言与C语言有千丝万楼的关系,Java语言中的许多基础语法都参照了C语言,因此有很多相似之处,例如:每条语句以分号结尾,变量定义、if语句、switch-case语句、for循环、while循环、do-while循环语句几乎都是一样的,下面请从C语言与Java语言的几点不同之处入手,帮助大家迅速掌握C语言的入门基础。 一、主函数 C语言不是面向对象的语言,它没有类和对象的概念。 与Java中的方法对应,C语言中称之为函数,程序运行的入口函数为main 函数,格式可书写如下: int main(){ //函数体 } 二、输入与输出 首先应在程序文件的第一行(在main函数之前)书写下面的指令,以导入相应的头文件: #include 作用相当于Java中的import语句,但在C语言中,这是一条编译指令,所以注意后面没有分号。 头文件中包含了所需要使用的库函数的原型。使用输入输出函数时需要包含的头文件是stdio.h。 ●输入语句: example1: int a; scanf("%d",&a); //注意变量名的前面要加上取地址的符号& example2: float price; scanf("%f",&price); 从上面的例子可以看出,scanf语句的第一个参数%后面跟着的字符表示所应输入的数据的的类型。 ●输出语句: example1: printf("《%s》这本书的价格是%4.2f,库存量为%d","他来了",29.5,10);

该语句输出下面的结果: 《他来了》这本书的价格是29.5,库存量为10 example2: 输出换行符应使用转义字符'\n' printf("白日依山尽,\n黄河入海流。\n欲穷千里目,\n更上一层楼。\n"); 该语句输出下面的结果: 白日依山尽, 黄河入海流。 欲穷千里目, 更上一层楼。 建议练习:输入两个整数,输出这两个整数之和。 三、布尔值 在C语言中,使用整型变量代表Java中的boolean,非0值即为真值,整数0值代表假。 example1: int n=5; while(n) {printf("%d ",n);n=n-1;} 该段代码将输出下面的结果: 5 4 3 2 1 四、数组 C语言的数组与Java语言非常相似,但又有所不同。 ●定义数组: int a[5]; //定义长度为5的数组,不同于Java的: int a[]=new int[5]; int b[]={1,2,3}; 说明一个变量为数组类型时,中括号[]必须写在数组名称的后面,而Java中可以写在数组名后面,也可以写在前面。 ●遍历数组,输出每一个元素的值: int i; for(i=0;i

培训学Java和C语言哪个更好

培训学Java和C语言哪个更好? 对于很多初学者来讲,不太清楚Java和C语言的区别,为了让那个大家更清晰的了解,近日千锋小编特意给大家归纳了一些两者的大致区别,希望能够给大家带来一定的帮助作用,也欢迎大家进行详细补充和归纳。 首先,Java是针对于对象的机制,运算符“new”为每个对象分配内存空间,实际内存会随程序的运行而发生改变。在运行的同时每个Java系统会对内存进行扫描,会对整个系统资源进行“采集”。这个时候一部分的垃圾文件就会被删除或者暂时回收。这样就使得整个系统资源就使用的更加充分合理,程序员对于这点就不需要担心系统内存方面的一些管理要求,在编写程序的时候也就变得更加的简洁明了。而c语言则是通过malloc()和free()这两数据库函数来分别实现对于的内存的分配和内存的合理运用。 其次,C语言更多通过子函数调用,Java通过类和类引用,同时拥有非常多的接口。Java面向对象特征主要表现为封装,继承和多变,C语言支持“运算符的重载”,这个是数据抽象和泛型编辑的一大宝典。Java本身为了降低复杂性而

不支持这种多变机制,对于Java可以支持方法重载和重写。 另外,Java比C语言多了一些修饰“Public、Private、Protected”都是一些比较常用的修饰符,而C语言没有这类的修饰语言,换句话的意思就是C 语言还缺乏一定的安全性。 再者,Java不使用指针,但是指针是C语言的精髓,然而Java中更多的是对数据每一位的操作,比如substring等。 总结来讲,Java与C语言相比,Java具有简单、面向对象、分布式、健壮、可移植、解释性、安全、多线程、垃圾回收等等特点。而对于C语言则是一个比较宏观的领域,因此Java可以说是C语言的基础上开设,即C语是基石,Java 在时下的运用和使用方面就比较全面。 如果你对Java有更多的兴趣或者想要学习Java的相关技术知识,可移步到千锋官网进行详细咨询了解相关内容。

电大 Java语言和WWW技术 实验报告一

《Java语言和WWW技术》课程 实验报告一 实验题1 [实验要求] ?安装JDK和Docs文档 ?设置系统环境变量 ?安装JCreator [运行结果] [实验结论与收获] 实验题2 [实验要求] ?调试Java Application程序 ?记录调试过程、步骤、结果 [实验程序] public class HelloWorld { public static void main(String args[]){ System.out.println("Hello World!"); } } [运行结果] [实验结论与收获] 实验题3 [实验要求] ?调试Java Applet程序 ?记录调试过程、步骤、结果 [实验程序] import java.awt.Graphics; import java.applet.Applet; public class HelloWorldApplet extends Applet { String t ; public void init () { t = "Hello World";

} public void paint(Graphics g) { g.drawString (t , 25, 25) ; } } [运行结果] [实验结论与收获] 实验题4 [实验要求] ?运算符程序的调试和运行 ?记录运行结果 ?对运行结果进行分析 [实验程序] public class Ex2_1{ public static void main(String args[]){ int a=234; int b; boolean c; b=0; c=(a==234)||(b++==1); System.out.println("b="+b+" c="+c); b=0; c=(a==234)|(b++==1); System.out.println("b="+b+" c="+c); b=0; c=(a!=234)||(b++==1); System.out.println("b="+b+" c="+c); b=0; c=(a!=234)|(b++==1); System.out.println("b="+b+" c="+c); } } [运行结果] [实验结论与收获] 实验题5

C语言与Java的区别

C语言与Java的区别 一、概览 1、从编程思想来看 C语言为面向过程语言 Java 为面向对象语言 2、从对地址的可操作性上来看 C语言可以直接对硬件操作 Java 不能直接对硬件操作 小结:在硬件安全性上考虑,Java更安全,不容易引发硬件崩溃 3、从效率上来看 C语言效率非常高,在所有编程语言中名列前茅 Java 执行效率一般,计算效率还不错,总体上来讲效率马马虎虎 4、从可移植性上来看 C语言硬件依赖极高,一旦硬件环境改变,程序运行不能的可能性很高 java 硬件依赖几乎为零,只要机器装有相匹配的虚拟机,任何机器上编写的代码都可以通用 二、语言区别 1、语言背景: C语言是在单机时代应用非常广泛,它融合了高级语言的简单易用和汇编语言的执行效率。 Java是在研究电子消费产品开发平台和互联网应用的基础上实现的,它的许多语言特性也是从c语言那里沿用和发展,并且使面向对象更加自然和完善(如安全性和代码的移动性)。 2、语言跨平台: C语言不可以跨平台。 因为Java可以跨平台,在windows 和unix 等系统上都可以很好的运行。 3、指针管理: 指针是c语言最大的优点,它可以使用户几乎可以访问计算机的所有内存资源和其他部分资源(就是指那里打那里)。同时也是c语言程序最难掌握和调试的问题,并且给系统的安全性和稳定性带来很大的困难。 java中没有指针的概念,尽管也有数组和对象的引用的概念,但它的管理全部交给系统管理,这样限制了用户的资源的访问,但是也给java系统带来安全性和稳定性。JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说JAVA没有指针,

JAVA语言与WWW技术复习题.doc

2016-2017 年第二学期 JAVA语言与 WWW技术复习题 一、填空题 1. Java 的三大体系分别是___ Java EE _ __ 、____ Java SE __ 、___ Java ME __ 。 2. Java 中的变量可分为两种数据类型,分别是___基本数据类型_ 和 _引用数据类型__ ___。 3. 在非静态成员方法中,可以使用关键字__ This ____访问类的其它非静态成员。 4.被static 关键字修饰的成员变量被称为 _静态变量 __,它可以被该类所有的实例对象共享。 5. 编译 Java 程序需要使用__ javac ____命令。 6. Java 中的程序代码都必须在一个类中定义,类使用___ class___关键字来定义。 7. 若int []a={12,45,34,46,23};,则a[2]= __34____。 8. 面向对象的三大特征是__封装、__继承__和多态_。 9.定义在类中的变量被称为 ___成员变量 _ ,定义在方法中的变量被称为 __局部变量 _。 10. 异常的捕获通常由try 、 catch 两部分组成,___ try ___ 代码块用来存放可能发生异 常, __ catch __代码块用来处理产生的异常。 11. String类中用于返回字符串字符个数的方法是___ length()__ 。 12. JDK中提供了一系列可以存储任意对象的类,统称为_ 集合 ___。 13. 在Java 中,能实现线程间通信的流是_管道流___。 14. 是 __ PrintStream setOut(PrintStream out) __类的对象,称为标准输出流,调用 __ 方法可以实现标准输出流的重定向。 System 类的 _ 15. 在程序开发中,要想将一个包中的类导入到当前程序中,可以使用_ import__关键 字。

为什么说C语言比Java更难入门

c语言相比较java,c#,php,python等之类的语言显得有点过时的感觉。但是c语言本身附属的影响力以及历史地位都是值得初学者以c语言作为初级的入门语言,选择c语言作为入门语言几种理由。 (1).对于想从事嵌入式底层开发以及对开源操作系统特别是linux感兴趣的小伙伴,学好c语言是必须具备的功课,底层操作系统实现语言基于c语言或者汇编,绝大部分还是c语言。对于有志于了解整个计算机系统架构或者做架构师的小伙伴,c语言是必须要深刻掌握的语言。 (2).c语言作为存在历史这么长久的语言,基于c语言的架构体系留存在各个大公司,所以基于这点来说工作机会还是相当多的,而且现在大家经常使用的掌上游戏机,自动拖地机器人,冰箱,空调里面的芯片的驱动以及应用程序绝大部分还是c语言来实现,哪能轻易就说c语言就这么不行了,所以学好c语言就业的前景还是一片光明。 (3).如果具备了c语言基础再去学习更加高级的语言,对于高级语言系列的编程绝对是个利好。因为有了对底层语言实现上面的了解,特别是对指针的了解,对于上层语言编写大型的程序或者定位工程的性能或者内存问题,会有比较深刻的认识。算是对知识层次一个很好的补充。

(4).最早的开源代码很多都是基于c语言实现,后来别的语言的开源社区也慢慢的丰富起来了,有了c语言基础也可以火热的加入到开源社区里面,加入开源社区可以学习标准的代码规范,了解最前沿的技术发展方向,也可以利用开源项目,提升自身的项目经验,为找工作或者提升代码修养提供一个很不错的基础。 C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。它延续了Java的编程思想,启发了C++等一系列新生语言的诞生,因此学习C语言是理解其他编程语言的很好的桥梁。

C语言和JAVA语言基础语法对照

C语言和JAVA语言基础语法对照 1、标识符 C语言中标识符由英文字母和下划线开头,后面可以跟英文字母、下划线、数字等字符组成的字符序列。 JAVA语言中标识符由英文字母、下划线、货币符号(如¥、$等)开头,后面可以跟英文字母、下划线、货币符号、数字等字符组成的字符序列。 2、基本数据类型 C语言中常用的基本数据类型有: int(4字节)、float(4字节)、double(8字节)、char(1字节)、long (4字节)等。 JAVA语言中常任的基本数据类型有: int(4字节)、float(4字节)、double(8字节)、char(2字节)、long (8字节)、byte(1字节)、boolean等,且JAVA不支持指针、结构体。 3、常量的定义 C语言中,如: #defingPI 3.14(预处理命令) JAVA语言中,如: finalintPI= 3.14;(语句) 4、xx类型

布尔类型数据用boolean定义,如booleanb=true;布尔类型数据只有true和flase二个值,经常用于流程控制。 5、字符类型 一个字符用一个16位的Unicode码表示。JAVA的字符类型数据与整形不同,不能用作整数。 但是可以把整形数据与字符型数据放在一起运算,字符型会自动转换成整形,从整形向字符型转换时需要强制类型转换。 6、浮点类型 一个浮点数隐含为double类型,在一个浮点数后面加字母F或f,表示float类型,如 3.14是double型, 3.14f是float型。 7、运算符 (1)取余运算符a%b C语言xxa,b都必须是整形数据。 JAVA语言中a,b可以是整形数据,也可以是浮点数据。 (2)“+”运算符 JAVA对“+”运算作了扩展,可作为字符串的连接运算符,如”ab”+”cd”得到”abcd”。 (3)在JAVA语言中,关系运算和逻辑运算的结果是true和flase,而不是1和0。 8、数组 (1)一维数组

《Java语言与WWW技术》形成性考核第二次作业.

《Java语言与WWW技术》形成性考核第二次作业 一、选择题 1、下列()说法是错误的。 A.Java语言只允许单一继承 B.Java语言允许实现多个接口 C.Java语言不允许同时继承一个类并实现一个接口 D.Java语言的单一继承使得代码更加可靠 2、下述()说法是正确的。 A、实例变量是类的成员变量 B、实例变量是用static关键字声明的 C、方法变量在方法执行时创建 D、方法变量在使用之前可以不用初始化 3、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。 A. static void method () B. public void method () C. final void method () D. abstract void method () 4.下列关于修饰符混用的说法,错误的是()。 A.abstract不能与final并列修饰同一个类 B.abstract类中不可以有private的成员 C.abstract方法必须在abstract类中 D.static方法中能处理非static的属性 5. 接口的实现所用的关键字是()。 A.interface B.implements C.extends D.throws 6、下面的类定义中,()成员变量或者成员方法是可以被同一包内的其他非子类所引用的。 package org; public class myClass { private int x; private double y; public boolean var; private int getX( ){ } protected double getY( ) { } public boolean getVar ( ){ } } A. x , y B. var、getVar( ) C. getX ( ) D. getY ( ) 7、.以下的类(接口)定义中正确的是()。 A. public class a { private int x; public getX( ){ return x;

相关文档
相关文档 最新文档