由于对象具有封装,继承,多态的特性,所以能设计出耦合程度较低的程序,达到易维护,易复用,易扩展,让程序本身更加灵活,可以更好的处理业务逻辑复杂的问题。
缺点
面向对象的性能比面向过程低。
JAVA与C/C++的区别 内存分配 JAVA:
栈(局部变量)
堆(存储的是对象,垃圾回收机制进行回收)
方法区
本地方法区
寄存区
C:
栈区(存储函数参数,局部变量的指)
堆区(动态申请和释放,需要程序员手动完成)
全局区
代码区
JAVA没有指针,C语言内中拥有着令我闻风丧胆的指针
JAVA是一种内存安全的语言。但是C或者C++需要自己手动完成,万一没有处理好可能引起内存泄漏甚至系统的崩溃。
但是这种安全也是相对而言,Java也有可能出现内存泄漏的的情况,比如垃圾回收机制,需要让在堆内的对象无引用以后的某个时机才能对此对象的内存进行回收,那么当某个对象的引用因为某种原因一直存在,那么就会造成泄漏。
内存泄漏问题可以参考这里
JAVA和C++都是面向对象的语言,都需要封装,继承,多态
JAVA类不支持多继承,C++类支持多继承,但是接口可以多继承。
JAVA数组或字符串不需要再末尾加上\0 ,而C语言或者C++需要加上\0作为结束符,在Java中除了八种基本数据类型,其实其他的引用类型都可以看作对象,数组对象和字符串对象都有一个length属性或者length方法,可以获得数组或者字符串的长度,那么自然不需要多个空间来标志数组或字符串的结束了。
C++支持运算符的重载和函数重载,但是JAVA只支持方法方法的重载,但是运算符的重载可以通过方法来实现,但也要注意构造器不能被重载。