浅读java圣经-java编程思想(一)

前言:

这本书里面有了大量的c++特点和java进行比较,如果对c++不是很了解的需要学习一些c++的基本知识,当然作为java开发者的进阶也很必要,毕竟java的底层是用c++写的。

一、 掌握数据存储和内存分配

首先,书中一开始就说了我们在程序运行期间,要做到数据保存在什么地方要心中有数,特别是内存的分配,如果不想成为一个高级点的程序员这点可以忽略。因为在数据较大的情况下,做web开发的后端工作者需要优化数据库以及优化内存设置,当然还有优化代码,减少不必要的内存开销。最终就能到达高效的目的。

浅读java圣经-java编程思想(一)_第1张图片

二、java中的数组

几乎所有编程语言都支持数组,但c++中的数组,我们尽量不用使用,因为c++的数组越界不会校验,这样,c++可以‘越界’赋值,然后取值时可能会报指针错误【野指针】,这样问题还难以发现。正是由于每次设置值都会校验数组是否越界,所以java操作数组的效率 不如 c++.

浅读java圣经-java编程思想(一)_第2张图片
浅读java圣经-java编程思想(一)_第3张图片
浅读java圣经-java编程思想(一)_第4张图片

三、java中内存释放

java有回收机制,c++中没有可能会存在粗心的情况,就是忘记清除对象。从而造成内存溢出。

浅读java圣经-java编程思想(一)_第5张图片
浅读java圣经-java编程思想(一)_第6张图片
浅读java圣经-java编程思想(一)_第7张图片

四、对于合成和继承的设计

合成: 所谓合成就是类里面包含其他类对象 或内部类 (我的理解)

对于一个类尽可能能多级衍生子类 ,进行拓展父类的方法,当然也不需要层层继承,造成运行效率会降低,还有就是复杂程度过高。一半建议不用超过5级。

浅读java圣经-java编程思想(一)_第8张图片

五、新旧集合

  1. 如图 Vector 、BitSet 、Stack 、Hashtable 是java 1.1里面就有的集合类
  2. 设计不支持泛型,这样什么类型的值都能塞进去,造成的较坏的影响是类信息会被抛弃。这样在java的jvm里面是 类型擦除。

浅读java圣经-java编程思想(一)_第9张图片
浅读java圣经-java编程思想(一)_第10张图片
浅读java圣经-java编程思想(一)_第11张图片

现在我们常用的集合 List Set

浅读java圣经-java编程思想(一)_第12张图片
浅读java圣经-java编程思想(一)_第13张图片

本文来源于:程序员ken,专属平台有csdn、思否(SegmentFault)、 简书、 开源中国(oschina)、掘金,转载请注明出处。

你可能感兴趣的:(java)