随笔分类 - JAVA
摘要:本文属于设计模式的必读书籍《Head First Design Patterns》的读书笔记,有不正确的地方欢迎指正。首先,看看GoF对装饰模式的定义:意图:动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更加灵活。定义很抽象,让我们来看看一个具体的业务场景:在城市的某个中央商务区,一个小小的咖啡馆,生意兴隆,在收银台常常排的长长的队伍,顾客也多有抱怨。老板了解到客户的需求之后,发现如果有个如超市的收银机会很大的提高收款的效率,于是找到某家IT公司,请求开发一套收银系统。需求:咖啡馆烤4种咖啡,然后,顾客可以在咖啡中添加巧克力,牛奶,摩卡等辅料。出售价格是按照咖啡的种类和
阅读全文
摘要:书接上文。一、当构造函数过多的时候,请使用bulider模式。 先说一下场景,有一个类,有许多的字段需要在new出object的时候就初始化。先看下一个恶心的代码吧,我始终认为,只有知道什么是丑,才能懂得什么是美。public class NutritionFacts { private final int servingSize; // (mL) required private final int servings; // (per container) required private final int calories; ...
阅读全文
摘要:最近,在啃《Effective Java》(下文用《E》表示),从中学习到了不少以前在开发过程中没有注意到的一些问题,收获不少。一、Item48 关于BigDecimal 和float double的问题。看到它的Item48,讨论了关于float和double类型的问题。以前对此都比较疏忽的,随便使用一个float四舍五入一下就过去了,看完之后,重新认识了一下Java中关于数值的处理。起因是,使用float或者double无法精确的描述一个数字,比如:0.1public class Test { public static void main(String[] args) { System.
阅读全文
摘要:在iteye上看到的一道多线程的题目,参考了一下网友的实现,那Eclipse调试通过,算是对JAVA5的并发库有个大致的了解,分享出来,欢迎园里的同学拍砖。题目:要求用三个线程,按顺序打印1,2,3,4,5.... 71,72,73,74, 75.线程1先打印1,2,3,4,5, 然后是线程2打印6,7,8,9,10, 然后是线程3打印11,12,13,14,15. 接着再由线程1打印16,17,18,19,20....以此类推, 直到线程3打印到75。分析:感觉出题人是要考察一下你是否能够很好的控制多线程,让他们有序的进行。1、线程池:3个线程,需要使用并发库的线程池2、锁(lcok):在打
阅读全文
浙公网安备 33010602011771号