论坛首页 入门技术论坛

第十一章 对象的集合

浏览 1898 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-06-18  

今天上午看了会 java编程思想第三版

这个版本的编程思想翻译版本好像有2个,一个是上海的什么什么老师翻译的 好像是出版了。还有一个是shhgs翻译的

我初步看了几段话,发现上海那个老师的是很生硬的翻译过来的,有时候读一句话的时候,还有理解半天是什么意思,还不如直接去看英文版的。看了下shhgs翻译的,比较不错,翻译的很符合国人的习惯,所以我还是选择了shhgs的版本来看的

以上仅是个人的一点感想。下面总结了一点点东西,记录下来了

第十一张  对象的集合
 对象的集合:数组,容器(List Map Set)
数组相对java中的容器有一定的有点,1 效率高 2 数组中的类型为一致的类型即同一种类型 3 数组中的类型可以是privitive 4 数组的大小是固定的
解释:数组中的类型为指定的类型,编译器在编译的时候就会检查类型,提高效率。当然使用容器类也不会存在危险,因为java也可以在运行时检测出异常
建议:能让编译器做的事情尽量让编译器做。这样也可以减少运行时异常(RuntimeException)
数组有一个属性为length,切记是属性而不是方法。该属性告诉你数组的容量,并不是数组中存放的对象个数
java.util.Arrays类包括了一组static方法用来对数组进行操作,但该类的功能却是极其有限的。大概有一下几个,详细内容可以参考java api
 1 equals()比较2个数组是否相等
 2 fill()填充数组
 3 sort()对数组排序
 4 binarySearch()对排序后的数组进行查找,对没有排序的数组进行查找是没有意义的
 4 asList将一个数组转换程List
System.arrayCopy() 用来copy(shallow copy)一个数组 他比for的速度更快
回调(callback)技术解决了一个问题:用不变的代码调用改变的代码

java 中的container 分类是按照“ 怎样持有对象” 来进行分类的,分成了2类collection 和 map ,其中collection包括了List 和Set
一个错误的例子,一个类的toString 方法不要写成下面的样子
 public String toString(){
  return "***"+this;
 }
 在这个地方引用了this会导致一个递归,造成异常。对于这个"***"+this,编译器发现String 和+号后面根的不是String 编译器就会吧this转换成String,就会调用this的toString方法,形成递归

容器的辅助类有Collections 提供了一组static方法来完成特定的功能,可以参考jdk api

整个j2sdk1.4 容器类关系图 见附件

 

  • 大小: 115.6 KB
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics