- 浏览: 140731 次
- 性别:
- 来自: 广州
最新评论
-
randyjiawenjie1:
终于遇到一个人讲清楚了
阻塞I/O,非阻塞I/O -
dxqrr:
学习了。。。。
java中堆和堆栈的区别 -
tanhong:
[color=yellow][/color] ...
“is a”和“has a”的区别 -
uuid198909:
代码看着是比较………………
JDK5新特性--java.util.concurrent Semaphore(8) -
heipark:
兄弟,咱这代码纠结了点....
JDK5新特性--java.util.concurrent Semaphore(8)
文章列表
Double-Checked Locking看起来是非常完美的。但是很遗憾,根据Java的语言规范,上面的代码是不可靠的。
出现上述问题,
最重要的2个原因如下:
1, 编译器优化了程序指令, 以加快cpu处理速度.
2, 多核cpu动态调整指令顺序,
以加快并行运算能力.
问题出现的顺序:
1, 线程A, 发现对象未实例化, 准备开始实例化
2, 由于编译器优化了程序指令,
允许对象在构造函数未调用完前, 将共享变量的引用指向部分构造的对象, 虽然对象未完全实例化, 但已经不为null了.
3, 线程B,
发现部分构造的对象已不是null, 则直接返回了该对象.
不过, 一些 ...
- 2008-05-21 13:31
- 浏览 1075
- 评论(0)
1、了解面向对象语言是必要的,但不是首要的,了解“面向对象思想”才是关键。
2、UML只是标准的图形表示法。常用的表示法是有用的,但更重要的是面向对象的内容值得学习,尤其是如何利用对象进行思考。
3、UML只是图形表示法,不是OOA/D,也不是方法。如果没有掌握如何创建优秀的面向对象设计,或者如何评估和改进现有设计,那么学习UML或者UML工具是毫无意义的。
4、对象思想才是重点和难点。
5、为对象分配职责、对象间如何协作、什么对象做什么事情,是系统设计的关键问题。
6、OO经典设计-职责驱动设计(responsibility driven design)。
7、OO开发 ...
- 2008-05-21 13:22
- 浏览 865
- 评论(0)
领域模型是对领域内概念类或现实世界中对象的可视化表示。
概念类:思想、事务或对象。
概念类包括三个方面:符号、内涵、外延。
为什么要建立领域模型?
原因:降低与OO建模之间表示的差异。领域层软件类的名称要来源于领域模型中的名称,使对象有源于领域的信息和职责。
如何创建领域模型:
1、创建概念类。
2、将其描述为UML中的类
3、添加关联和属性
- 2008-05-21 12:12
- 浏览 1403
- 评论(0)