随笔分类 - Java大学堂
记录Java学习过程中碰到的琐事
经典回顾:哲学家进餐问题(The Dinning Philosophers Problem)
摘要:该问题涉及到五个哲学家,他们交替地进行思考和进餐。他们分别坐在位于一个圆形餐桌周围的五把椅子上,圆桌中央是一碗米饭,餐桌上共有五根筷子,分别摆放在每两个相邻座位的中间。当哲学家思考时,他不与其他人交谈。当哲学家饥饿时,他将拿起和他相邻的两根筷子进行进餐,但他很可能仅拿到一根,此时旁边的另一根正在他邻居的手中。只有他同时拿到两根筷子时他才能开始进餐。完成进餐后,他将两根筷子分别放回原位,然后再次开始...
阅读全文
细说反射API
摘要:有时候需要知道比Class类所提供的信息多得多的有关一个类型的信息。出于这种目的,可以使用程序包java.lang.reflect中的类,换句话说就是所说的反射API。这个类集提高了Class类的能力和有效性。 反射API支持一种名为自省的行为,这种行为实际上使一个类描述自身。 反射API使对象具有反射自己和发现自身内容的能力。程序包java.lang.reflect定义了很多类,这些类总体上对一...
阅读全文
理解(深)克隆
摘要:首先,下面是一个不正确地使用了默认clone方法的类的示例: 1package examples.cloning; 2 3/** *//** An example class used to demonstrate what 4 * happens when the default Object.clone method 5 * is not overridden in a class wi...
阅读全文
对象串行化
摘要:首先,谈一下串行化的好处:(1)在网络中传送对象。(2)在程序的运行期间将对象保存于文件,或者稍后在相同的应用程序中写入然后读取对象。 实现对象串行化有两个前提:(1)要串行化的对象对应的类必须实现Serializable接口。(2)要串行化的对象对应的类必须是公共的(public)。 在Java中,有两个流类支持对象串行化:ObjectOutputStream和ObjectInputStream...
阅读全文
简单的(浅)克隆
摘要:为一个不含对象引用域的类启动克隆的示例: 1/** *//** An example class used to demonstrate how to 2 * enable cloning for a class without fields that 3 * contain object references.. 4 */ 5public class Pair implements Cl...
阅读全文
完成器的使用
摘要:示范如何定义和使用一个完成器方法的类: 1/** *//** A Java class to demonstrate how a finalizer 2 * method is defined and used 3 */ 4public class FinalizerClass { 5 6 private int a, b; 7 8 /** *//** Class default c...
阅读全文
神奇的文件锁定
摘要:映射的文件通道I/O和文件锁定示例: 1import java.io.*; 2import java.nio.*; 3import java.nio.channels.*; 4 5/** *//** A class used to demonstrate mapped file channel i/o 6 * and file locking 7 */ 8public class CaseR...
阅读全文
浙公网安备 33010602011771号