Java常用类库
xuguoli_beyondboy
只要笑一笑,没什么过不了。程序员懂得编程之美,也要懂得生活之美,艺术之美,心理之美。
展开
-
自定义动态添加字段内容的库类
Java不少类可以通过Set方法动态向对象添加新的字段内容,这里面如何实现这功能且代码质量较高呢?这里我参照thinking in java的书籍,自定义一个可以在运行时动态的添加字段内容。//自定义异常class DynamicFieldsException extends Exception {}public class DynamicFields{ private Object[原创 2015-02-26 22:53:47 · 921 阅读 · 0 评论 -
优先级高优先
在运行多任务时,有多种选择策略,其中一种是优先级高优先,java可以通过PriorityBlockingQueue来实现。 代码例子://优先运行任务class PrioritizedTask implementsRunnable, Comparable<PrioritizedTask> { private Random rand = new Random(47); private原创 2015-07-17 02:04:52 · 1176 阅读 · 0 评论 -
同步队列协作线程
java提供一系列的同步队列来协作线程通信,简化程序编写,并且在类与类之间也解耦了。 代码例子://吐司类class Toast { public enum Status { DRY, BUTTERED, JAMMED } private Status status = Status.DRY; private final int id; publi原创 2015-07-16 01:28:09 · 470 阅读 · 0 评论 -
线程之间的协作
在Java中,线程协作通常通过wait()和notify(),notifyAll()三种方法来协作,调用wait()时会释放锁,而sleep并不会释放锁,故在线程协作之间,通常是用wait()让该线程挂起,而用notify()或notifyAll()来唤醒其中一个等待的线程,但如果编写程序上逻辑不严谨,可能会造成死锁,以下是一种安全可靠的线程协作例子。 代码例子:class Car {原创 2015-07-15 23:44:12 · 741 阅读 · 0 评论 -
用泛型构建复杂容器模型
泛型的一个重要好处是能够简单而安全地创建复杂的模型,比如组装多层容器时,其泛型就能保障其安全了。 代码例子://商品class Product{ private final int id; private String description; private double price; public Product(int id, String descrip原创 2015-03-06 22:31:40 · 832 阅读 · 0 评论 -
自定义生成器
生成器,是一种专门负责创建对象的类,它不同于工厂方法,它创建对象时,它不需要任何参数,这里生成器将会设计利用了泛型。//生成器接口public interface Generator <T>{ T next();}//公共父类public class Coffee { private static long counter = 0; //标记每个子类的标识值 priv原创 2015-03-06 11:52:50 · 2220 阅读 · 0 评论 -
自定义序列化
当我们要决定控制哪些Field方法被序列化时,有两种方法:让序列化类实现其Serializable接口时,重写writeObject()方法来负责写入需要序列化的Field,并重写其相对应的readObject()方法来恢复序列化的Field。让序列化类实现Externalizable接口,采用上述那点思路实现其readExternal(),writeExternal()两个方法。 代码例子:原创 2015-03-04 16:51:43 · 615 阅读 · 0 评论 -
访问文件属性
Java7提供了一系列方便的工具类来访问文件的属性,各种工具类都有其不同的作用。 代码例子:public class AttributeViewTest{ public static void main(String[] args) throws Exception { // 获取将要操作的文件 Path testPath = Pa原创 2015-03-04 21:49:22 · 1264 阅读 · 0 评论 -
最早延迟时间优先运行的实现
在运行多任务时,有多种策略,其中一种就是根据最早延迟时间优先运行期任务,接下来利用Delayed接口和DelayQueue同步队列可以实现其功能。 代码例子://根据延迟时间来优先运行任务class DelayedTask implements Runnable, Delayed { private static int counter = 0; private fina原创 2015-07-17 01:33:21 · 473 阅读 · 0 评论