1. Java的优点
Sun Microsystems公司对Java语言的描述:"Java is a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic language"。
具体来说,java具有以下几个优点:
(1)Java为纯面向对象语言。
所有代码(包括函数、变量等)必须在类中实现,除基本数据类型以外,所有类型都是类。而C++兼具面向过程和面向对象编程的特点。
(2)平台无关性。“一次编译,到处运行”
Java为解释型语言,编译器把Java代码编译成字节码,然后在Java虚拟机上解释执行,具有很好的可移植性。
(3)Java提供了很多内置的类库,简化开发。
(4)Java提供了对Web应用程序的开发。
(5)具有较好的安全性和健壮性
Java语言提供了一个防止恶意代码攻击的安全机制(数组边界检测和Bytecode校验等),增强了程序的安全性。
Java的强类型机制、垃圾回收器、异常处理和安全检查机制保证了健壮性。
(6)去除了C++语言中难以理解、容易混淆的特性,如指针。
2. Java与C++的异同
同:Java和C++都是面向对象语言,都使用了面向对象思想(例如封装、继承、多态等)
异:(1)Java是解释型语言,由编译器编译成字节码文件,再由虚拟机解释执行。
C++是编译型语言,源代码经编译和链接生成可执行的二进制代码。
(2)Java为纯面向对象语言,所有代码(包括函数、变量等)必须在类中实现,除基本数据类型以外,所有类型都是类。Java语言中不存在全局变量或全局函数,即不能在所有类之外定义全局变量,只能通过在一个类中定义public static 的变量来实现一个全局变量。
C++兼具面向过程和面向对象编程的特点。可以定义全局变量和全局函数。
(3)Java语言不支持多重继承,但Java引入了接口,可以同时实现多个接口,来实现与C++多重继承类似的目的。Java中的接口是支持多继承的。
(4)Java提供了垃圾回收器来实现垃圾的自动回收。C++语言中需要开发人员去管理对内存的分配。
(5)Java语言没有指针的概念。
(6)Java不支持运算符重载,而C++支持。
(7)Java不支持自动强制类型转换,必须显示地强制类型转换。而C++支持自动强制类型转换,这会导致程序的不安全。
(8)Java不提供goto语句,但保留了goto关键字。而C++支持goto语句。
(9)Java没有预处理器。不支持预处理功能(包括头文件、宏定义等),但它提供的import机制与C++中的预处理功能类似。
(10)Java具有平台无关性,即对每种数据类型都分配固定长度,而C++同种数据类型在不同的平台上会分配不同的字节数。