前言:
这本书里面有了大量的c++特点和java进行比较,如果对c++不是很了解的需要学习一些c++的基本知识,当然作为java开发者的进阶也很必要,毕竟java的底层是用c++写的。
一、 掌握数据存储和内存分配
首先,书中一开始就说了我们在程序运行期间,要做到数据保存在什么地方要心中有数,特别是内存的分配,如果不想成为一个高级点的程序员这点可以忽略。因为在数据较大的情况下,做web开发的后端工作者需要优化数据库以及优化内存设置,当然还有优化代码,减少不必要的内存开销。最终就能到达高效的目的。
file二、java中的数组
几乎所有编程语言都支持数组,但c++中的数组,我们尽量不用使用,因为c++的数组越界不会校验,这样,c++可以‘越界’赋值,然后取值时可能会报指针错误【野指针】,这样问题还难以发现。正是由于每次设置值都会校验数组是否越界,所以java操作数组的效率 不如 c++.
filefile
file
三、java中内存释放
java有回收机制,c++中没有可能会存在粗心的情况,就是忘记清除对象。从而造成内存溢出。
filefile
file
四、对于合成和继承的设计
合成: 所谓合成就是类里面包含其他类对象 或内部类 (我的理解)
对于一个类尽可能能多级衍生子类 ,进行拓展父类的方法,当然也不需要层层继承,造成运行效率会降低,还有就是复杂程度过高。一半建议不用超过5级。
file五、新旧集合
- 如图 Vector 、BitSet 、Stack 、Hashtable 是java 1.1里面就有的集合类
-
设计不支持泛型,这样什么类型的值都能塞进去,造成的较坏的影响是类信息会被抛弃。这样在java的jvm里面是 类型擦除。
file
file
file
现在我们常用的集合 List Set
filefile
本文来源于:程序员ken,专属平台有csdn、思否(SegmentFault)、 简书、 开源中国(oschina)、掘金,转载请注明出处。
网友评论