Java是一门面向对象编程语言,吸收了C++语言的面向对象特点,但摒弃了C++里难以理解的多继承、指针等概念,功能强大并且简单易用。那么他们两个之间究竟有什么样的区别呢?
Java与C++有什么区别?
(1)编译运行方式:Java项目源代码通过编译器生成.calss文件而不是机器语言代码,意味其不能在电脑直接运行,必须通过JVM环境解释才能运行,也就是说,如果通过在不同的操作系统(OS)下安装相应的JVM运行环境,.class文件就可以在多种OS环境下运行,实现“一处编译,多处运行”。而C++通过IDE编译链接生成机器语言代码,也就是说特定的编译器生成的代码只能在特定的操作系统环境下运行,不具备移植性。
(2)内存安全:Java是一种内存安全型语言,由JVM负责内存的管理。C++则是通过new和delete实现手动的内存管理,比较灵活,但容易引起错误甚至严重崩溃(例如内存泄露)。
(3)性能:由于Java的简单灵活所以人气极高,但其代码(.class文件)需要通过JVM解释才能运行因此性能表现一般。而C++会被编译为机器语言,因此其能够立即运行且速度更快。
(4)指针:指针是一种C++结构,允许您直接在内存空间中进行值管理。Java不支持指针,因此您可能使用值引用的方式进行值传递。
(5)重载:重载是指对某种方法或者运算符的功能进行“重新定义”。Java允许方法重载,而C++则同时支持进行运算符重载。
Java适合做什么开发?
Java与C++没有哪个更好,只有哪个更合适。他们都可用于创建各类程序,但具体选择取决于您希望开发的实际内容。Java在Andriod开发和Web开发占据重要的位置。
C++通常适合那些需要“硬件级”操作的软件。二者之间的最大区别在于,C++更接近机器语言,因此其软件运行速度更快且能够直接与计算机内存、磁盘、CPU或者其它设备进行协作。另外,C++也能为游戏提供良好的运行性能。Java更适合较高级别的应用。