`
laserdance
  • 浏览: 92173 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java 5 (Tiger)读书笔记系列

阅读更多
今天开始要写读书笔记了呵~~,向良葛格同志学习,把读书过程中的疑问和心得写下来,因为好记性不如烂笔头啊!!!
这几天一直在看Java5 Tiger的所谓编程秘籍,因为在网上找不到免费的下载的Java 5的笔记(良葛格的笔记).
1 Queue的offer(Object o)和poll()方法,一个是添加对象,一个是移除对象,它们和add()和remove()方法的区别是,即使Queue为满(大部分Queue是有固定大小的)或为空时会返回false或空,而不是throw Exception,而我们习惯的用法是用add和remove.Queue是FIFO(先进先出),Stack是LIFO(Last-in,Firsrt Out),Queue offer或add一个元素或对象都是添加在队列尾,poll或remove是移除队列头的元素或对象.Stack是Push到Stack Top,Pop的也是Stack top的元素或对象.Queue还有一个方法是peek(),它只是去取得队列的首端而不去移除它.
2,如果想给Queue排序的话,可以使用Comparator进行排序.或PriorityQueue队列.另外一种Queue的实现.如果你创建一个Queue而没有给它指定Comparator,它会进行"自然排序",如果以数值来举例,它会将最高的数值放在最高位.最低的数值放在最低位.而不管它加入这个Queue的时候是不是这个顺序.因此当取出元素时,最低的先被取出来.
如果给它传一个Comparator,则在它的构造方法中声明.
PriorityQueue<V> pq = new PriorityQueue<V> (20,new Comparator<V>(){
     public int compare(Object o1, Object o2) {
		return 0;
	}});

3
StringBuilder & StringBuffer
前者是Tiger中新加的,它是线程不安全的,而后者是原来就有的,具有线程安全性.
众所周知,线程安全就需要内存的开销大,效率一定会低下.
所以当我们在单一线程安全的环境或不担心会有多线程访问的代码中或是synchronize的,可以使用前者.StringBuffer中有的methodStringBuilder中都有.像append(),insert().
4 Generic(泛型)
Tiger特有,它支撑着vararg,annotation,enumeration,collection,以及concurrent(并行)的一些功能.
Java每一个class不是明确就是隐含地起源于Object,在Tiger中我们可以创建type-safe的array和list,以确保这种对象的collection仅允许插入特定类型.
for examle:
//该list仅能存入String类型的对象或元素,别的类型无法存入
    List<String> stringList = new ArrayList<String>();

Tiger之前的版本,boolean add(Object o),而Tiger里变成boolean add(E o)
E,element元素的简写.
5 primitive and wrapper(原始类型的包装类型/封装类型)
集合所容许的类型是所有对象,因此它们不接受primitive value.
//这样的声明是错误的,不可饶恕的.
List<int> exmaple = new ArrayList<int>();
//下面的声明则是可以的,因为Integer 是 int(primitive)的封装类(wrapper)
List<Integer> example = new ArrayList<Integer>();

下面我们还会提到autoboxing and qutounboxing让wrapper和primitive之间转换(由Tiger的JVM自动完成.不需要我们插手).
6 safe-type Map
 Map<Integer,Integer> maps = new HashMap<Integer,Integer>();
Map<String,String> mapss = new HashMap<String,String>();
Map<String/*or Integer */,Object> mapsss = new HashMap<String/*or Integer */,Object>();

7 for/in循环提供一种几乎完全避免掉Java.util.Iterator这个类的method.下面我们举例说明
List<String> strings = new LinkedList<String>():
strings.add("how");
strings.add("are");
strings.add("you?");
//attention here will be wrong
for(Iterator[color=red]<String>[/color] it = strings.iterator();ht.hasNext();){
     String result = it.next();
     System.out.println(result);
}

以上代码编译器会返回给你 uses unchecked or unsafe operations 的异常.这是因为你虽然参数化了List,但没有参数化Iterator,它运行时还是会next()返回Object并且它不知道应该只预期接受与响应String类型.所以上述代码在Iterator后加上参数String,上面红字部分所示.
Tiger为了避免这样或那样的问题,或为了简化这种形式,提供了如下形式的循环遍历.
List<String> strings = new LinkedList<String>():
strings.add("how");
strings.add("are");
strings.add("you?");
for(String result : strings){
        System.out.println(result);
}

8
Tiger中所有Collection均为Generic类型,且接受类型参数,一个类型参数可以作为另外一个generic类型的类型参数. 这句话读上去有点别扭.还是用实例来说明
Map Interface中采用两个类型参数,一个key,一个value,通常key会是String或Integer ID,而value则可能是任何东西--包括generic类型,像Stirng类型的List等等.
Map<String,List<String>> maps = new HashMap<String,List<String>>();
//多个generic类型参数
Map<String,List<List<int[]>>> maps2 = new HashMap<String,List<List<int[]>>>();

分享到:
评论

相关推荐

    JAVA 5.0 TIGER程序高手秘笈.rar

    这个版本在Java的发展历程中扮演了重要角色,引入了一系列创新特性,极大地提升了开发效率和代码质量。以下是对其中关键知识点的详细解释: 1. **Generic(泛型)**:Java 5.0引入了泛型,允许在类、接口和方法中...

    java实现tiger语言编译器

    Java实现Tiger语言编译器是一项涉及计算机科学与软件工程领域的复杂任务,主要涉及到编译原理、Java编程语言以及一种名为Tiger的语言。Tiger是一种教学目的的中级编程语言,设计用于展示现代编译器技术的关键概念。...

    Java 5.0 Tiger程序高手秘笈.rar

    Java 5.0,代号Tiger,是Java平台历史上的一个重要版本,它引入了许多创新特性和改进,极大地提升了开发者的生产力和Java语言的效率。本资料集《Java 5.0 Tiger程序高手秘笈》旨在帮助开发者深入理解并熟练掌握这一...

    Java 5.0 Tiger程序高手秘笈(PDF) Java.rar

    《Java 5.0 Tiger程序高手秘笈》是一本针对Java 5.0(也称为Java SE 5.0)的高级开发指南,其核心目标是帮助开发者掌握Tiger版本中的新特性和优化技术,从而提升编程技能和实战能力。在Java 5.0中,许多重要的更新和...

    JAVA 5.0 TIGER

    JAVA 5.0 TIGER程序高手秘笈.pdf ,此文档是下载一份资料。与大家分享。

    Java5.0 Tiger程序高手秘笈(含源码)

    Java 5.0,代号Tiger,是Java发展历程中的一个重要里程碑,它引入了许多创新特性,极大地提升了开发效率和代码质量。在这个版本中,Oracle(当时的Sun Microsystems)为Java平台带来了许多新功能,旨在增强其灵活性...

    Java5.0 Tiger程序高手秘笈

    Java5.0 Tiger程序高手秘笈 Java5.0 Tiger程序高手秘笈 Java5.0 Tiger程序高手秘笈

    JAVA 5.0 TIGER程序高手秘笈.

    JAVA 5.0 TIGER程序高手秘笈.

    《Java5.0 Tiger》书籍源码

    《Java 5.0 Tiger》是一本针对Java编程语言5.0版本的权威指南,尤其对Tiger(Java 5.0的代号)引入的新特性进行了深入的讲解。这本书的源码是学习和理解Java 5.0新特性的宝贵资源,包括泛型、枚举、自动装箱与拆箱、...

    2_corejava_tiger.rar

    我有全手套的java相关技术的笔记,超级好。如: 1_unix.rar; 2_corejava_tiger.rar; 3_xml.rar; 4_oracle.rar; 5_jdbc.rar; 6_hibernate.rar; 7_html.rar; 8_servlet.rar; 9_jsp.rar; 10_struts2.rar; 11_...

    Java_5_Tiger.rar_Tiger_泛型

    这个压缩包中的"OReilly.Java.1.5.Tiger.A.Developers.Notebook.Jun.2004.chm"很可能是O'Reilly出版社出版的一本开发者笔记的电子版,详细介绍了Java 5的新特性,并提供了实例帮助读者理解和应用这些新特性。...

    src_java_Tiger_

    《Java 5.0 Tiger 程序员高手秘笈》是一本专注于Java 5.0(也称为Tiger)版本编程技术的书籍,旨在帮助程序员深入理解和掌握这个里程碑式的Java版本。书中涵盖了许多关键的知识点,而这些知识点在源代码中得到了充分...

    Java 5.0 Tiger程序高手秘笈(Part_2)

    Java 5.0 TIiger程序高手秘笈.pdf 下载两个压缩包后双击其中一个,就打开了

    Java5.0 Tiger全书代码.rar

    这个"Java5.0 Tiger全书代码.rar"压缩包包含的是《Java5.0 Tiger程序员高手秘笈》这本书的配套源码,这是一本深受Java开发者喜爱的进阶指南,旨在帮助读者深入理解Java 5.0的新特性和最佳实践。 首先,Java 5.0的...

    JAVA 5.0 TIGER程序高手秘笈

    《JAVA 5.0 TIGER程序高手秘笈》是一本深入探讨Java 5.0(也称为Tiger版本)编程技术的专业书籍。这个版本的Java引入了许多创新特性,极大地提升了开发效率和代码质量,是Java发展历史上的一个重要里程碑。在PDF格式...

    jdk1.5 tiger java5 新特性

    JDK 1.5,代号“Tiger”,也被称为Java 5.0,引入了一系列重大的语言和库改进,显著提升了开发效率和代码质量。本文将深入探讨这些新特性,分享实际应用中的经验和技巧。 首先,让我们从增强的for循环开始。这种新...

Global site tag (gtag.js) - Google Analytics