2012年1月3日

Java 理论与实践: 变还是不变?

摘要: 不变对象是指在实例化后其外部可见状态无法更改的对象。Java 类库中的String、Integer和BigDecimal类就是不变对象的示例 ― 它们表示在对象的生命期内无法更改的单个值。不变性的长处如果正确使用不变类,它们会极大地简化编程。因为它们只能处于一种状态,所以只要正确构造了它们,就决不会陷入不一致的状态。您不必复制或克隆不变对象,就能自由地共享和高速缓存对它们的引用;您可以高速缓存它们的字段或其方法的结果,而不用担心值会不会变成失效的或与对象的其它状态不一致。不变类通常产生最好的映射键。而且,它们本来就是线程安全的,所以不必在线程间同步对它们的访问。自由高速缓存因为不变对象的值没有 阅读全文

posted @ 2012-01-03 21:19 evilying 阅读(265) 评论(0) 推荐(0) 编辑

逻辑地址、线性地址、物理地址和虚拟地址

摘要: 一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。所以,说它是“与地址总线相对应”,是更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理地址与物理的内存一一对应,也是可以接受的。也许错误的理解更利于形而上的抽像。虚拟内存(virtual memory)这是 阅读全文

posted @ 2012-01-03 21:16 evilying 阅读(6790) 评论(3) 推荐(3) 编辑

协作图(Collaboration Diagram)

摘要: 协作图协作图对在一次交互中有意义的对象和对象间的链建模。对象和关系只有在交互的才有意义。类元角色描述了一个对象,关联角色描述了协作关系中的一个链。协作图用几何排列来表示交互作用中的各角色(如下图)。附在类元角色上的箭头代表消息。消息的发生顺序用消息箭头处的编号来说明。协作图的一个用途是表示一个类操作的实现。协作图可以说明类操作中用到的参数和局部变量以及操作中的永久链。当实现一个行为时,消息编号对应了程序中嵌套调用结构和信号传递过程。下图是开发过程后期订票交互的协作图。这个图表示了订票涉及的各个对象间的交互关系。请求从公用电话亭发出,要求从所有的演出中查找某次演出的资料。返回给 ticketse 阅读全文

posted @ 2012-01-03 14:55 evilying 阅读(703) 评论(0) 推荐(0) 编辑

导航