Processor QuartzSchedulerThread Worker-2 ThreadPoolExecutor$Worker (CMS) 1. 我们知道HashMap用Entry[]数组来存储数据的,WeakHashMap也不例外,内部有一个Entry[]数组。 2. WeakHashMap ...
分类:
编程语言 时间:
2017-05-17 10:14:34
阅读次数:
253
在之前的学习过程中,我们知道了如何使用FileInputStream输入流和FileOutputStream输出流编写程序读写文件。 下面我们来学习一下如何使用序列化和反序列化读写文件。 一、序列化 1.什么是序列化? 序列化就是将对象的状态存储到特定存储介质中的过程,也就是将对象状态转换为可保持或 ...
分类:
编程语言 时间:
2017-05-12 19:00:57
阅读次数:
247
1 初级电灯例子 , 状态仅仅用字符串表示,没有封装到对象 // 状态模式 面向对象版本 实现的关键 1 状态用对象表示 2 状态对应的行为 抽象成一个统一的方法(buttonWasPressed),可以实现委托。这个行为可以放到状态类里,也可以放到context里, 3 状态内部 会自己修改当前的 ...
分类:
编程语言 时间:
2017-05-09 13:54:29
阅读次数:
183
这章的主要内容是:如何共享和发布对象,从而使它们能够安全地由多个线程同时访问。 内存的可见性 不仅希望防止某个线程正在使用对象状态而另一个线程在同时修改该状态,而且希望确保当一个线程修改了对象状态后,其他线程能够看到发生的状态变化。 上面的程序中NoVisibility可能会持续循环下去,因为读线程 ...
分类:
编程语言 时间:
2017-04-29 14:20:55
阅读次数:
267
本文继续介绍23种设计模式系列之策略模式。 何时使用 State模式在实际使用中比较多,适合“状态”的切换。因为我们经常会使用If else if else 进行状态切换,如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采取State模式了。 这里要阐述的是"开关切换状态" 和" 一般的状 ...
分类:
编程语言 时间:
2017-04-28 15:53:25
阅读次数:
226
声明:本系列博客參考资料《大话设计模式》,作者程杰。 状态模式当一个对象的内在状态改变时同意改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的推断逻辑转移到表示不同状态的一系列类中,能够把复杂的推断逻辑简化。 UML类图: 角色: ...
分类:
Web程序 时间:
2017-04-24 14:40:09
阅读次数:
223
备忘录模式介绍: 备忘录模式是一种行为模式,该模式用于保存对象当前的状态,并且在之后可以再次恢复到此状态,这有点像我们平时说的“后悔”药。备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外界访问,目的是为了保护好被保存的这些对象状态的完整性以及内部实现不向外暴露 备忘录模式的定义: 在不破坏 ...
分类:
其他好文 时间:
2017-04-17 23:10:27
阅读次数:
209
首先,ThreadLocal是Java语言提供的用于支持线程局部变量的标准实现类。很多时候,ThreadLocal与Synchronized在功能上有一定的共性,都可以用来解决多线程环境下线程安全问题。但是它们之间区别很大:Synchronized是通过同步的方式来管理多个线程对共享对象状态的访问以 ...
分类:
其他好文 时间:
2017-04-16 11:03:10
阅读次数:
121
状态模式解决的是控制一个对象状态转移的表达式过于复杂的情况,把状态的判断逻辑转移表示到不同状态的一系列类中,可以把复杂的逻辑简化。 状态模式的好处是将特定状态的行为局部化,从而将不同状态的行为分割开来。 将特定状态的行为都放入一个对象中,由于与状态有关的代码都存在在具体的对象类中,因此定义新的子类可 ...
分类:
其他好文 时间:
2017-04-13 11:56:56
阅读次数:
157
观察者模式又称为发布—订阅模式、模型—视图模式、源-监听器模式或从属者(dependents)模式,是一种对象的行为型模式。它定义了对象之间的一种一对多的依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象都得到通知并被自动更新。观察者模式的优点在于实现了表示层和数据层的分离,并定义了稳定的更新 ...
分类:
其他好文 时间:
2017-04-10 17:00:47
阅读次数:
219