代码改变世界

Java 与C++的各种优势与弱点--学习更新中

2017-12-08 22:42  逍楚客  阅读(582)  评论(0编辑  收藏  举报

时隔两年没有怎么碰Java了,最近开始学习回顾下。在这里记录下学习的点滴,持续更新。。。希望对c++\java等不同语言有较为清晰的认识,至少不要学完以后,哪一个都不会了。。。

Java 优势:

1、自动垃圾回收机制,虽然不一定每次回收成功,但是编程人员基本不用再操心内存释放这一头疼问题。当然创建对象必须使用new  标识符。

2、使用package包来区分不同的类的归属,不同包的类可以重名。同一包中的类还可以放在不同的路径下,这是灵活性的一面。缺点就是要正确使用不同包中的相同类名的类。

3、反射机制。

4、接口、抽象类比较明显的标志符。

5、可移植性比较强。可跨平台使用,基本不用改代码。

 

C++ 优势:

1、代码更加原生接近系统底层,执行效率更高,可定制型更强。程序几乎可以定制自己想要的任何特性。

2、使用智能指针管理内存,虽然也有些麻烦,但并不难学。优点是不用手动释放内存,缺点是注意不要造成循环引用。当然,不同的智能指针使用的具体场合也不同。

3、优点也是弱点,多继承。使用多继承可以很方便的继承各种特性的类,减少代码臃余,提高代码可重用性。但是类的层次继承多了以后,难免会出现子类的其中一个父类和另一个父类都继承了同一个父类,形成多重继承。比如都继承了supportweakcallback,这个常见类。再次绑定支持弱引用的回调函数的时候就比较尴尬了,造成子类为了清晰的说明到底用谁的supportweakcallback的时候,还要自己再继承一遍。。。还有就是每个类当中的重名成员函数与变量,也是比较蛋疼的地方。