Jova与其他程序设计语言的异同
Java语言是一种纯粹的面向对象语言,它继承了C+语言面向对象的核心技术, 使用了类似于C/C++的语法,而去除了C/C+中许多不合理的内容,以实现其简单健壮、安全 等特性。下面列出几点主要的区别:
1.全局变量
Jara语言中不存在全局变量,只能通过类中的公用的静态变量实现全局变量。全 局变量被封装在类中、这样更好地保证了安全性。而C+兼具面向对象和面向过程变 量的特点,可以定义全局变量。
2.指针
与CC++语言相比,Java语言中没有指针的概念,有效防止了CC++语言中操作指针可能引起 的系统问题,从而使程序变得更加安全。同时,数组在Java中用类来 实现,很好地解决了数组越界的问题。
3.内存管理
Java和C++ー样通过new创建一个对象分配内存空间,但与C+不同的是Java并没有与new相对 应的操作符,而是提供了垃扱回收器来实现圾的自动回收,不需要程序显式地管理内存的分配。在C+语言中,通常都会把释放资源的代码放到 析构函数中;Jara语言中虽然没有析构函数,但却引入了一个 finalize0方法,当垃圾回收器 将要释放无用对象的内存时,会首先调用该对象的 finalize方法,因此,开发 人员不需要关心也不需要知道对象所占的内存空间何时会被释放,只要停止对一个对象的 引用,一段时间后垃圾回收器会自动收集这个对象所占的内存。
4.类型转换
C++支持自动强制类型转换,这会导致程序不安全;Jawa不支持自动强制类型转 換、必须由开发人进行是式的强制类型转换。C++同一不数据类在不同的平否主 会分配不同的字节数,Java对每种数据类型都分配固定长度,例如,int类型总是占 据32位。 5.结构和联合
C++中结构和联合的所有成员均为公有,这会导致安全性问题的发生,而Java根 就不包含结构和联合,所有的内容都封装在类中。
6.预处理
C++语言支持预处理,而Java语言没有预处理器。Java虽然不支持预处理功能(头文件、宏定义等),但它提供的 Import机制和C++中的预处理器功能类似。
7.编译方式
Java为解释性语言,其运行过程为:程序源代码经过Java编译器编译成字节码,然后
由JVM解释执行。而C/C++为编译型语言,源代码经过编译和连接后生成可执行的二进制
代码。因此,Java的执行速度比C/C++慢,但是Ja能够跨平台执行,而C/C++不能。
8.面向对象
(1)Java为纯面向对象语言,所有代码(包括函数、变量等)必须在类中实现除基本数据类型(包括int、float等)外,所有类型都是类。
(2)与C++语言相比,Java语言不支持多重继承,但是Java引入了接口的概念,可以同时实现多个接口。由于接口也具有多态特性,因此在Java语言中可以通过实现多个接口来实现与C++语言中多重继承类似的功能。
(3)C++语言支持运算符重载,而Java语言不支持运算符重载。