admin 管理员组

文章数量: 1184232


2024年3月12日发(作者:单片机显示header是什么意思)

2O10年6月 电 脑 学 习 第3期 

Java语言与C++语言的比较 

申林 贾美娟 

摘 要:Java语言是一门很优秀的语t.具有面向对象、与平台无关、安全 稳定和多鲅桓等优^特性。是目前软件中极为健壮 

的互皇程语言。Java已成为网络时代最蔓要的语言之一。与C++语芎比较.Java是一种更纯粹的面向对氛程序设计语t。 

关键词:Java 面向对象 c++ 编程语言 

中图分类号:ⅡI312 文献标识码: A 文章编号:1002-2422(2010)o3一o088一O3 

Comparative Study on Java Language and C++Language 

Shen Lin Jia Meijuan 

Java is a very soed language,which is object-oriented,platform-independent,8eeu stable,multi-threading and other 

excellent features.The softw ̄des!gn is very robust programming language.Java has be ̄x)nlo the nlost important lan— 

guagea in network age.Compared with C++language。Java is a more pure object-orientde programming language. 

Keyword: 

Java Object.orientde C++Programming language 

1 Java语言的特点 

(5)多态的支持 

(1)简单性 

Java是一种非常注重对象形态转换的语言,所以在编 

Java继承了C/C++的语法,丢弃了其中不常用又容易 

译时期就会做形态转换检查,在执行时期,Java也会做一些 

引起混淆的功能,特别是非面向对象的内容,取消了C语言 

形态上的检查。 

的结构、指针、#define语句、多重继承、全局变量和函数、 

(6)垃圾收集和异常处理 

GOTO语句、操作符重载和自动类型转换等等。 

由于Java垃圾收集器会做自动的垃圾收集,这里的垃 

(2)面向对象 

圾指一些不会被再使用的对象,所以程序设计者不需费心, 

Java是一种纯面向对象的语言,具有封装、继承和多态 

内存会被自动地管理,Java本身提供了许多面向对象的异 

的特性,无全局变量或函数,可以被用于面向对象这种现代 

常(Exception)处理,所以程序在执行时期所发生的错误, 

软件工程。 

都可以由程序自己来处理。 

(3)分布式 

(7)安全性 

Java包括一个支持HTrP和FI'P等基于TCP/IP协议 

Java设计时对系统的安全,特别是网络安全做了周密 

的子库。因此,Java应用程序可凭借URL打开并访问网络 

的考虑。通过字节码验证、内存调用方式、资源使用权限等 

上的对象,象本地一样。 

进行多层次的安全管理。Java被认为是在任何系统上最安 

(4)解释型 

全的应用程序之一。 

Java写成的源代码需要被编译成高阶的字节码,其与 

2 Java的技术平台 

机器架构无关。然后,这种字节码在任何Java的运行环境 

Java不仅仅是一种语言,更重要是一种区别于传统系 

中由Java虚拟机解释执行,保证了Java与平台无关性和可 

统,遵循“网络就是计算机”信条的平台技术。Java平台将 

移植性。解释执行与及时编译技术的完美结合,提供了相当 

面向对象系统扩展成包括程序和数据的网络计算机,而这 

高的运算性能。 

个平台的核心就是Java虚拟机。Java虚拟机的概念和实现 

【l】周恒,张雨,王国辉.Visual FoxPro数据库开发关键技术与实 

首先,编辑项目信息。项目信息用于指定编译后的可执 

例应用【M】.北京:人民邮电出版社,2004(1). 

行文件的图标显示及作者信息等。在项目管理器中右击鼠 

【2】陈林,陈艳华,魏珉,等.Visual FoxPro数据库开发实例精粹 

标即可进行相应的设置。 

[M】.北京:电子工业出版社,2005—03. 

然后,单击项目管理器中的“连编”按纽,选定其中 

[3】黎盂雄,马继军.管理信息系统及经典案例【M】.徐州:中国矿业 

“连编可执行文件”单击“确定”按纽。 

大学出版社,2oo5. 

最后,建立一个程序发布目录,将已编译系统可执行文 

[4】求是科技.Visula FoxPro信息管理系统开发实例导航【M】.北 

件以及程序所使用的数据库索引表等文件复制到该目录中。 

京:人民邮电出版社,2005-02. 

[5】单启成.新编Visual FoxPro教程[M】.苏州:苏州大学出版社, 

参考文献 

2O03—O2. 

收稿日期:2010-04-26 

・申林大庆师范学院计算机科学与信息技术学院本科生(黑龙江,大庆163712)。 

・88・ 

使Java平台成为万能开发平台,实现了Java程序“编写一 

问题。Java有个finafize()方法是每一个类的成员,在某种 

次,到处运行”。Java虚拟机是一种抽象化的计算机,可以 程度上类似于C++的“破坏器”。但finalize()是由垃圾收 

在其上面执行Java的字节码。其本身的设计原则是“小而 集器调用的,而且只负责释放“资源”,如打开的文件、套接 

简单”,目的是为了尽可能在所有机器上都能安装。这样的 字、端口、URL等。如需在一个特定的地点做某件事情,必须 

精简原则,使得其能够在现有的各种平台上都可以顺利执 创建一个特殊的方法,并调用它,不能依赖finalize()方法。 

行,适合各种网络的环境。Java的技术平台的工作原理:第 由Java不支持破坏器的概念,针对类内的基础类以及成员 

步Java用一个编译器将源程序代码(.java)转换成可执 

对象,Java采用垃圾收集器自动清除,所有对象都会被当作 

行程序(.class),Java编译器生成的是独立于处理器结构 “垃圾”收集掉。自动垃圾收集意味着在Java中出现内存漏 

的字节代码。第二步字节代码用~个Java虚拟机来执行, 

洞的情况会少得多,但也并非完全不可能。若调用一个用于 

JVM是理想化的Java处理芯片,通常是在软件上实现而不 

分配存储空间的固有方法,垃圾收集器就不能对其进行跟 

是在硬件上实现。 踪监视。而在另一方面,C++中的所有对象必须用finalize 

3 Java语言和C++语言的比较 

()方法破坏,然而,内存漏洞和资源漏洞多是由于编写不 

C++和Java都属于杂合语言,允许采用多种编程风格。 

当的finaliez()造成的,或是由于在已分配的一个块尾释放 

c++是一种杂合语言,支持与C语言的向后兼容能力。由于 

种资源造成的。Java垃圾收集器是在C++基础上的一种 

C++是C的一个超集,所以包含的许多特性都是C语言不 

极大进步,使许多编程问题得以解决。 

具备的,这些特性使C++在某些地方显得过于复杂。但在 

(4)异常控制机制 

Java中,设计者觉得这种杂合并不象在C++里那么重要。 

Java的异常规范比C++的出色得多。Java中的所有异 

Java保留了C++的语法,但忽略了资源引用、指针算法、操 

常都是从基础类Throwable里继承而来的,所以可确保得到 

作符重载等潜在危险,是C/C++的简化版本。所以Java虽 

的是一个通用接口。丢弃一个错误的异常后,不是象C++那 

然是从C++衍生出来,Java和C++之间仍存在一些显著的 

样在运行期间调用一个函数,Java异常规范是在编译期间 

差异,这些差异代表着技术的极大进步,证明了Java是一 

检查并执行的。被取代的方法必须遵守那一方法的基础类 

种比C++更优秀的程序设计语言。从面向对象(0o)程序设 

的异常规范,可丢弃指定的异常或者从那些异常衍生出来 

计的角度,论述一下Java和C++的重要差异: 

的其他异常。这样一来,最终得到的是更为“健壮”的异常 

(1)单根结构 

控制代码。 

在C++中,可在任何地方启动一个新的继承树,所以最 

(5)单一继承 

后往往看到包含了大量树的“一片森林”。在Java中,采用 

Java中的继承具有与C++相同的效果,但采用的语法 

了一种单根式的分级结构,因此所有对象都是从根类统一 

不同。Java用extends关键字标志从一个基础类的继承,并 

继承。尽管这表面上看似乎造成了限制,但由于每个对象肯 

用super关键字指出准备在基础类中调用的方法,与当前所 

定至少有一个object接口,所以往往能获得更强大的能力, 

在的方法具有相同的名字。然而,Java中的super关键字只 

Java的强制单根结构更好地符合了面向对象(00)语言的 

允许访问父类的方法,亦即分级结构的上一级。通过在C++ 

标准。 

中设定基础类的作用域,可访问位于分级结构较深处的方 

(2)取消指针 

法,亦可用super关键字调用基础类构建器,所有类最终都 

Java和C++用new创建一个对象的时候,例如:Strings= 

会从Object里自动继承。和c++不同,Java不存在明确的构 

new Stirng("object"):都会获得一个对象引用。然而,C++对 

建器初始化列表,但Java编译器会强迫在构建器主体的开 

象引用在创建时必须进行初始化,而且不可重定义到一个 

头进行全部的基础类初始化,而且不允许在主体的后面部 

不同的位置。但Java对象引用并不一定局限于创建时的位 

分进行这一工作。其语法如下: 

置。可根据情况任意定义,这便消除了对指针的部分需求。 

public class A extends Bf 

指针通常被看作在基本变量数组中四处移动的一种有效手 

publ ̄A(String msg)( 

段。在C++里,必须用大量采用指针指向任意一个内存位 

super(msg);∥调用基础类构建器I 

public C(int i){ 

置,这同时会使其变得不安全,也是Java不提供这一支持 

super.C(i);∥调用基本方法}l 

的原因。在Java里,没有象C++那样的指针,Java允许其以 

Java提供了一个interface关键字,其作用是创建抽象 

更安全的形式达到相同的目标。Java没有全局函数,只有 

基础类的一个等价物。在其中填充抽象方法,且没有数据成 

类,因而可以用传递的方式实现对象的引用。 

员。这样一来,对于仅仅设计成一个接口的东西,以及对于 

(3)自动垃圾收集机制 

用extends关键字在现有功能基础上的扩展,两者之间便产 

Java中没有C++“破坏器”,变量不存在“作用域”的 

生了一个明显的差异。不值得用abstract关键字产生一种类 

(下转第94页) 

・ 89 ・ 

商业数据库往往含有噪音,体现在存在错误和不一致 

性。如果数据验证过程不够充分,则可能允许用户输入不正 

确的数据,而数据迁移也可能产生破坏。 

联系规律的关联分析当中,最常见的就是市场菜篮子分析。 

(4)侦察:侦察的目的在于寻找异常的现象、离群数 

据、异常模式等等,并且给出支持决策的解释。 

商业数据库的另一个常见问题是数据的缺失,尤其是 

当数据来自于不同的数据源时。由于数据编码标准和聚集 

策略的不同,有可能将导致无法对所有的属性进行分析。 

另外,在商业数据挖掘中,数据集的大小从几吉到几兆 

不等,并往往还有大量的属性,所以可测量性是数据挖掘技 

术的一个重要方面。商业数据库含有多种属性类型,如果机 

器学习技术能够处理不同的数据类型,则将对数据挖掘产 

生更大的作用。 

数据挖掘技术的预测精度是评价挖掘效果的一个非常 

重要的因素。遵循监督学习过程的机器学习系统首先被训 

机器学习方法及其所对应解决的数据挖掘中的任务类 

型总结如表l所示。 

表1机器学习方法及其在数据挖掘任务类型的应用情况 

规则归纳 事例推理 神经网络 遗传算法 

分类 

预测 

关联 

侦查 

常见 

常见 

常见 

常见 

常见 

常见 

少见 

少见 

少见 

常见 

少见 

常见 

常见 

常见 

常见 

少见 

4结束语 

目前机器学习技术的应用较多是金融、市场营销、电信 

领域和网络分析。在金融领域,机器学习技术较广泛地应用 

于预测型任务;在市场营销领域,机器学习技术较广泛地应 

用于关联型任务;在电信领域,机器学习技术在分类型、预 

测型和侦查型任务方面均有较多应用;在网络分析领域,机 

器学习技术应用较为广泛的是关联型任务。 

练,但是系统对真实数据的预测精度往往低于对训练数据 

的预测精度。所以,能对真实数据得到较高的预测精度显然 

是一个所需的特性。 

结果的可解释性是另一个重要的所需特性。在商业数 

据挖掘应用中往往需要使用不同的DSS或DBMS,所以与 

其他信息系统的易整合性也是一个需要的特性。不同的机 

器学习技术需要终端用户具有一定程度的工具知识和领域 

知识,一些技术还需要对数据进行大量的预处理工作,因此 

对于终端用户来说,易于理解和需要较少预处理工作的机 

器学习技术是比较好的 1。 

参考文献 

【1【1】美】RySz ̄S.Michalski,Ivan Bratko.机器学习与数据挖掘方 

法和应用【M】.朱明,等译.北京:电子工业出版社,2004:I-4. 

[2黄林军,2]张勇.机器学习技术在数据挖掘中的商业应用【J】.中 

山:中山大学学报论丛,2005,25(6):145—148. 

3机器学习方法与数据挖掘任务类型 

Bose和Mahapatrd ̄t把运用于数据挖掘的机器学习方法 

在商业应用时的任务类型可以归结为如下: 

(1)分类:利用一个训练集来确定最大可区分属性,当 

[3梁晓音.机器学习在数据挖掘中的应用叨.南宁:广西质量监督 3】

导报,2008(11):38-42. 

[4】【美】R・格罗思.数据挖掘一构筑企业竞争优势【M】.侯迪,宋擒 

豹,译.西安:西安交通大学出版社,2001. 

【5】田文英.机器学习与数据挖掘叨.石家庄:石家庄职业技术学院 

学报,2004,16(6). 

[6】Indranil Bose,Radha K.Mahapatm.Business data mining and ma 

chine learning perspective叨.Information&Management,2001, 

39(3):24-26 

分类确定好之后,新的实例可以通过分析进行合适的分类。 

(2)预测:根据已观测到的数据来找出可能的将来值 

和威属性的分布。主要的任务之一是确定对要预测的属性 

影响最大的属性。 

(3)关联:在寻找实体之间或者实体属性之间的潜在 

(上接第89页) 

似的效果,因为不能创建属于那个类的一个对象。一个抽象 

类可包含抽象方法,并不要求在其里面包含什么东西,但其 

也能包含用于具体实现的代码。因此,其被限制成一个单一 

尽管Java以C++为基础,但Java是一种更纯粹的面向 

对象程序设计语言,面向对象编程(OOP)具有多方面的吸 

引力。Java语言不仅可以用来开发大型的应用程序,而且特 

别适合于Interact的应用开发。 

的继承。通过与接口联合使用,这一方案避免了对类似于 

C++虚拟基础类那样的一些机制的需要。为创建一个实例 

的一个interface(接口),需使implements关键字。其语法类 

似于继承的语法,如下: 

public interface Face{ 

public void Output();l 

参考文献 

【1】【美】John Zukowsi.Java2从Af-J到精通【M】.北京:电子工业 

出版社,2000. 

【2】[美】David Flanagan.Java in a NutshelhA Desktop Quick R- 

eferenee[M].美国:O Reilly&Assoc,1997. 

【3】【美】Patirck Chan和Rosanna Lee.The Java Class Libraries: 

An Annotated Reference[M].美I ̄:Addison-Wesley,1997. 

public class C extends B implements Facef 

public void Output(){ 

System.out.println( aII obiect”);l J 

【4】【美】Grady Booch,James Rumbaugh,lvar Jacobson.GUML用 

户指南[MI.北京:机械工业出版社,2001. 

4结束语 

・94・ 


本文标签: 学习 方法 技术