浅谈Java与C/C++

时间:2022-08-20 09:31:28

摘要:Java采用了C/C++的语法格式。尽管Java语言的变量声明、操作符形式、参数传递、流程控制等方面和C/C++语言完全相同,但它们之间也有许多差异。本文就它们之间的异同点进行了分析与总结。

关键词:Java C/C++ Java与C/C++的差异

中图分类号:TP 文献标识码:A 文章编号:1007-0745(2013)03-0061-01

现代程序设计起源于C,然后是C++,到如今炙手可热的JAVA。学习怎样从一种编程语言转移到另一种编程语言是程序员必须掌握的技能。要把这三门语言同时掌握好,关键的是理解每门语言的各自的特点及相互之间的异同点,以下对此作出分析。

1、C语言概述

C语言是一种面向过程的中级结构化程序设计语言。它允许直接访问物理地址对硬件进行操作。它显著特点是代码及数据的分隔化,即程序的各个模块除了必要的信息交流外彼此之间相对独立。它是以函数形式提供给用户的,这些函数可供方便的调用,并具有顺序语句、条件语句及多种循环控制程序流向,从而使程序完全结构化。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。

C语言功能齐全,具有多种数据类型,并引入了指针概念,使程序运行效率较高,而且计算功能、逻辑判断功能也比较强大。对于编写需要硬件进行操作的场合,明显优于其它解释型高级语言。

2、C++语言概述

C++和C一样也是由贝尔实验室设计并实现的。它是以C语言的增强版出现的,几乎支持C语言的全部功能。随着面向对象编程的概念的提出,C++在C语言的基础上添加了一些新特性:命名空间、虚函数、运算符重载、多重继承、模板、RTTI、异常。随着这些新特性的增加,C++语言也开发出了支持面向对象功能的版本,它支持过程化程序设计、面向对象程序设计、数据抽象、制作图标、泛型程序设计等多种程序设计风格。

C++在原来结构化程序设计方法基础上实现面向对象的设计思想是的一个质的飞跃,它完美地体现了面向对象的各种特性,以其独特的语言机制在计算机科学的各个领域中得到了广泛的应用。

3、Java简述

Java也是一种面向对象语言,它继承了C的语法,吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的,中立的,可移植的,性能优异的,多线程的,动态的语言。

Java以其高安全性、语言简洁、平台无关性、硬件结构无关性同时面向对象,使用Java编写的程序能通过网络下载在世界范围内共享,因此在网络编程语言中占据无可比拟的优势,成为实现电子商务系统的首选语言。

4、Java与C/C++差异

Java是从C语言和C++语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物。比如Java语言的变量声明,操作符形式,参数传递,流程控制等方面和C语言,C++语言完全相同。尽管如此,Java和C语言,C++语言又有许多差别,主要表现在如下几个方面:

(1) Java中对内存的分配是动态的,它采用面向对象的机制,采用运算符new为每个对象分配内存空间。程序运行中,每个,Java系统自动对内存进行扫描,释放长期不用的空间,使得系统资源得到更充分地利用。按照这种机制,程序员不必关注内存管理问题,这使Java程序的编写变得简单明了,并且避免了了由于内存管理方面的差错而导致系统出问题。而C语言通过malloc( )和free( )这两个库函数来分别实现分配内在和释放内存空间的,C++语言中则通过运算符new和delete来分配和释放内存。在C和C++这种机制中,程序员必须非常仔细地处理内存的使用问题。一方面,如果对己释放的内存再作释放或者对未曾分配的内存作释放,都会造成死机;而另一方面,如果对长期不用的或不再使用的内存不释放,则会浪费系统资源。

(2) Java不在所有类之外定义全局变量,而是在某个类中定义一种公用静态的变量来完成全局变量的功能。

(3) Java不用goto语句,而是用try-catch-finally异常处理语句来代替goto语句处理出错的功能。

(4) Java不支持头文件,而C和C++语言中都用头文件来定义类的原型,全局变量,库函数等,这种采用头文件的结构使得系统的运行维护相当繁杂。

(5) Java不支持宏定义,而是使用关键字final来定义常量,在C++中则采用宏定义来实现常量定义,这不利于程序的可读性。

(6) Java对每种数据类型都分配固定长度。比如,在Java中,int类型总是32位的,而在C和C++中,对于不同的平台,同一个数据类型分配不同的字节数,同样是int类型,在PC机中为二字节即16位,而在VAX-11中,则为32位。这使得C语言造成不可移植性,而Java则具有跨平台性。

(7) 类型转换不同。在C/C++中,可通过指针进行任意的类型转换;而在Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换。

(8) 结构和联合的处理。在C/C++中,结构和联合的所有成员均为公有,而在Java中所有的内容都封装在类里面。

(9) Java不再使用指针。指针的概念是C/C++初学者最难应付的问题,指针也是错误产生的一大根源。Java中舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。对象的引用直接作为参数传递,而不是传递指针,另外,必须通过索引使用数组。

5、总结

Java是一种简洁而有效的纯面向对象的编程语言。而C++因为要与C兼容,所以在面向对象的特性方面不如Java好,安全性也较差。C++适合做图形图像、3D游戏、多媒体、流媒体播放器、、用户界面,嵌入式大部分都是C和C++写的。而java多半与网络和数据库有关,比如说网站后台,手机平台等等。

参考文献:

[1]C++程序设计教程.清华大学出版社.钱能编著

[2]Java程序设计实验指导.清华大学出版社.陈轶、姚晓昆编著

[3]实用Java程序设计教程.机械工业出版社.宛延等编著

上一篇:贵州省城市化发展对策探讨 下一篇:反思《曾国藩学案》在初中英语教学中的使用