随笔分类 -  Java Core

[Effective Java]01.用静态工厂方法代替构造器
摘要:对于类而言,为了让客户端获取它自身的一个实例,最常用的方法就是提供一个公有的构造器.还有一种方法,也应该占有一席之地.类可以提供一个公有的静态工厂方法,它是一个返回类的实例的静态方法.下面是一个来自Boolean 类的简单示例.这个方法将boolean 基本类型值转换成了一个Boolean 对象引用:public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; }提供静态工厂方法而不是公有的构造器,这样做有几大优势.1) 它们有名称. 如果构造器的参数本身没有确切的描述正被返回的对... 阅读全文

posted @ 2011-09-04 09:51 ZolRa 阅读(664) 评论(0) 推荐(0)

Integer自动打包机制
摘要:我们首先来看一段代码:Java代码 Integer i=100; Integer j=100; System.out.println(i==j); //true Integer i=200; Integer j=200; System.out.println(i==j); //false 差不多的两段代码,怎么结果完全不同呢。我们分两步来说明这个问题:首先Integer i=100; 编译器会自动将int类型常数100包装成Interger,采用的是Integer.valueOf(100);这个方法。然后我们看看valueOf(int)这个方法的源代码:J... 阅读全文

posted @ 2011-05-30 20:31 ZolRa

java.util.Arrays.asList 的小问题
摘要:JDK 1.4对java.util.Arrays.asList的定义,函数参数是Object[]。所以,在1.4中asList()并不支持基本类型的数组作参数。JDK 1.5中,java.util.Arrays.asList的定义,函数参数是Varargs, 采用了泛型实现。同时由于autoboxing的支持,使得可以支持对象数组以及基本类型数组。不过在使用时,当传入基本数据类型的数组时,会出现小问题,会把传入的数组整个当作返回的List中的第一个元素,例如:public static void main(String[] args){ int[] a1 = new int[]{1,2,3}; 阅读全文

posted @ 2011-03-02 21:39 ZolRa 阅读(15066) 评论(4) 推荐(5)

较复杂的枚举类型
摘要:1 package dataStyle; 2 /** 3 * 较复杂的枚举类型 4 * @author ZolRa 5 * 6 */ 7 public class ComEnum { 8 9 public static void main(String[] args) {10 WeekDay weekDay = WeekDay.FRI;11 System.out.println(weekDay.nextDay());12 }13 14 public enum WeekDay{15 //调用带参构... 阅读全文

posted @ 2011-02-26 23:14 ZolRa 阅读(583) 评论(0) 推荐(0)

导航