摘要: Class类(在java.lang包中,Instances of the class Classrepresent classes and interfaces in a running Javaapplication): 在Java中,每个class都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息 获取Class实例的三种方式: (1)利用对象调用getClass()方法获取该对象的Class实例; (2)使用Class类的静态方法forName(),用类的名字获取一个Class实例(staticClass forName(String className) Returns the Classobject associated with the class or interface with the given stringname. ); (3)运用.class的方式来获取Class实例,对于基本数据类型的封装类,还可以采用.T 阅读全文
posted @ 2011-10-04 11:17 蛊惑Into 阅读(29040) 评论(2) 推荐(2) 编辑
摘要: 当使用enum定义一个枚举类型时,实际上所定义的类型自动继承了java.lang.Enum类。而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final的。可以直接通过枚举类型名直接使用它们。 枚举在什么地方适用呢?一条普遍规则是,任何使用常量的地方,例如目前用 switch 代码切换常量的地方。如果只有单独一个值(例如,鞋的最大尺寸,或者笼子中能装猴子的最大数目),则还是把这个任务留给常量吧。但是,如果定义了一组值,而这些值中的任何一个都可以用于特定的数据类型,那么将枚举用在这个地方最适合不过。 阅读全文
posted @ 2011-10-03 21:42 蛊惑Into 阅读(3956) 评论(1) 推荐(0) 编辑
摘要: Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线程,有两种方法: ◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法; ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法。 阅读全文
posted @ 2011-10-03 14:06 蛊惑Into 阅读(107516) 评论(10) 推荐(12) 编辑
摘要: Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。注意:可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。 阅读全文
posted @ 2011-10-01 14:38 蛊惑Into 阅读(119519) 评论(2) 推荐(12) 编辑
摘要: override(重写,覆盖) 1、方法名、参数、返回值相同。 2、子类方法不能缩小父类方法的访问权限。 3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。 4、存在于父类和子类之间。 5、方法被定义为final不能被重写。 overload(重载,过载) 1、参数类型、个数、顺序至少有一个不相同。 2、不能重载只有返回值不同的方法名。 3、存在于父类和子类、同类中。 阅读全文
posted @ 2011-10-01 14:04 蛊惑Into 阅读(46863) 评论(2) 推荐(6) 编辑
摘要: 泛型(Generics)--为集合(collections)提供编译时类型安全,无需每刻从Collections取得一个对象就进行强制转换(cast) 增强的“for”循环(Enhanced For loop)--减少迭代器(iterator)的潜在错误(error-proneness) 自动置入/自动取出(Autoboxing/unboxing)--无需在基本类型(primitive types)(例如double)和包装类型(wrapper types)(例如Double)之间人工地进行转换。 类型安全的枚举(Typesafeenums)--提供类型安全枚举模式的各项好处。 静态导入(Static import)--无需在使用其他类的静态成员变量前缀其类名.这将使得代码更为简洁。 元数据(Metadata)--使编程人员避免编写样板化代码(boiler plate code),并提供机会进行宣告式程式设计(declarative programming)。 阅读全文
posted @ 2011-10-01 09:28 蛊惑Into 阅读(1255) 评论(0) 推荐(0) 编辑
摘要: Exchaner用于实现两个人之间的数据交换,每个人在完成一定的事物后想与对方交换数据,第一个先拿出数据的人将一直等待第二个人拿着数据到来时,才能彼此交换数据。 张孝祥老师在讲解Exchaner时的比喻: 好比两个毒贩要进行交易,一手交money,一手交drug,不管谁先来到接头地点后,就处于等待状态了,当另外一方也到达接头地点(所谓到达接头地点,也就是到达了准备街头的状态)时,两者的数据就立即交换了,然后就可以各忙各的了。 阅读全文
posted @ 2011-09-29 20:14 蛊惑Into 阅读(962) 评论(0) 推荐(1) 编辑
摘要: java.util.concurrent 包含许多线程安全、测试良好、高性能的并发构建块。不客气地说,创建 java.util.concurrent 的目的就是要实现 Collection 框架对数据结构所执行的并发操作。通过提供一组可靠的、高性能并发构建块,开发人员可以提高并发类的线程安全、可伸缩性、性能、可读性和可靠性。 阅读全文
posted @ 2011-09-29 19:56 蛊惑Into 阅读(1570) 评论(0) 推荐(0) 编辑
摘要: java.util.concurrent 包含许多线程安全、测试良好、高性能的并发构建块。不客气地说,创建 java.util.concurrent 的目的就是要实现 Collection 框架对数据结构所执行的并发操作。通过提供一组可靠的、高性能并发构建块,开发人员可以提高并发类的线程安全、可伸缩性、性能、可读性和可靠性。 阅读全文
posted @ 2011-09-29 19:55 蛊惑Into 阅读(1176) 评论(0) 推荐(0) 编辑
摘要: CountDownLatch类是一个同步计数器,构造时传入int参数,该参数就是计数器的初始值,每调用一次countDown()方法,计数器减1,计数器大于0 时,await()方法会阻塞程序继续执行。CountDownLatch可以看作是一个倒计数的锁存器,当计数减至0时触发特定的事件。利用这种特性,可以让主线程等待子线程的结束。 CountDownLatch的一个非常典型的应用场景是:有一个任务想要往下执行,但必须要等到其他的任务执行完毕后才可以继续往下执行。假如我们这个想要继续往下执行的任务调用一个CountDownLatch对象的await()方法,其他的任务执行完自己的任务后调用同一个CountDownLatch对象上的countDown()方法,这个调用await()方法的任务将一直阻塞等待,直到这个CountDownLatch对象的计数值减到0为止。 阅读全文
posted @ 2011-09-29 19:03 蛊惑Into 阅读(7601) 评论(2) 推荐(1) 编辑