21、C++与Java的区别

一、语言特性

1.Java语言给开发人员提供了更为简洁的语法;完全面向对象,由于JVM可以安装到任何的操作系统 上,所以说它的可移植性强

2.Java语言中没有指针的概念,引入了真正的数组。不同于C++中利用指针实现的“伪数组”,Java引 入了真正的数组,同时将容易造成麻烦的指针从语言中去掉,这将有利于防止在C++程序中常见的 因为数组操作越界等指针操作而对系统数据进行非法读写带来的不安全问题

3.C++也可以在其他系统运行,但是需要不同的编码(这一点不如Java,只编写一次代码,到处运 行),例如对一个数字,在windows下是大端存储,在unix中则为小端存储。Java程序一般都是生成字节码,在JVM里面运行得到结果

4.Java用接口(Interface)技术取代C++程序中的多继承性。接口与多继承有同样的功能,但是省却了多继承在实现和维护上的复杂性

二、垃圾回收

1.C++用析构函数回收垃圾,写C和C++程序时一定要注意内存的申请和释放

2.Java语言不使用指针,内存的分配和回收都是自动进行的,程序员无须考虑内存碎片的问题

三、应用场景

1.Java在桌面程序上不如C++实用,C++可以直接编译成exe文件,指针是c++的优势,可以直接对内 存的操作,但同时具有危险性 。(操作内存的确是一项非常危险的事情,一旦指针指向的位置发 生错误,或者误删除了内存中某个地址单元存放的重要数据,后果是可想而知的)

2.Java在Web 应用上具有C++ 无可比拟的优势,具有丰富多样的框架

3.对于底层程序的编程以及控制方面的编程,C++很灵活,因为有句柄的存在

原文地址:https://www.cnblogs.com/crbhf/p/14919264.html