摘要: Java的代码在运行时与设计期差异较大,即运行时代码某些时候无法在设计期通过验证。1. 伪泛型; Java没有真正的泛型,在设计时的泛型而在编译期则是“还原”。2.boolean变量 编译时boolean将翻译成0或1,而这个在设计期是无法通过编译的。3.final constant 直接被替换掉。 阅读全文
posted @ 2013-07-10 11:14 crazywings 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 面向接口,意义是面向抽象编程,在不同的语境中,接口有不同的意义。在Java中可以当做是面向抽象,接口是抽象,类同样是抽象,如果设计的好的话。我认为原则是:1.根据自己的习惯或删除去抽象,不一定要按照所谓的规则或模式。2.尽量实现接口且聚合类;3.必须是面向接口编程。 阅读全文
posted @ 2013-07-09 23:49 crazywings 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 我逐渐的意识到Java的管理上过于开放和宽松,导致其分裂的可能性越来越大。在模块化上:apache有harmony,eclipse的osgi与Java的jigsaw;apache不知道为何在早在11年就关闭了harmony项目,而osgi现在eclipse的实现--equinox,已经成为了事实的标准,而Java的jigsaw一再跳票,到现在也没有任何消息。 阅读全文
posted @ 2013-07-09 22:54 crazywings 阅读(222) 评论(0) 推荐(0) 编辑
摘要: GOF的《设计模式》在5年前就读过了,当时完全不懂书里在说些什么,所以当成了藏书不再去看。接着就是《Java与模式》,《headfirst Design pattern》和《设计模式之禅》。我要喷一下,国内的这些书的水准仅仅只是停留在GOF的引言的阶段~!! 阅读全文
posted @ 2013-07-09 22:42 crazywings 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 需要总结一下,例如Image的处理方式mageDescriptor.createFromURL 等很多方法,统一放在common模块,用统一的方式处理图片,将provider和resource分开处理,定义标准,简化开发,一来,处理图片的方式不会多种多样,减少的复杂度,也减少了出错的出错的概率和工作量。 阅读全文
posted @ 2013-06-14 16:21 crazywings 阅读(320) 评论(0) 推荐(0) 编辑
摘要: @Override是语义的检查,IDE会检查父类是否存在对应的方法,如果有,则检查是否允许覆写,如果是final则不允许,否则编译成功。但是在子类覆写的方法调用super则没有了覆写的意义,而具有扩展的意义,因为你并没有取代父类的方法而是在其结果后执行了自己增加的行为public class SuperClass { public void save() { // Perform save logic }}public class SubClass extends SuperClass { private Object b; @Override ... 阅读全文
posted @ 2013-06-09 16:28 crazywings 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 三段代码:code A:public void testUnreachable(){ System.out.println("test"); return; System.out.println("unreachable");}code B:public void testUnreachable(){ if(true) System.out.println("test"); return; System.out.println("unreachable");}code C:public void testUnrea 阅读全文
posted @ 2013-06-05 15:09 crazywings 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 首先什么是接口?什么是异常?接口是约束和规范,反应了用户行为;异常是返回信息,反应了有什么做错了。通常在接口的设计中,异常需要考虑3个问题。1. 是否需要有异常;2. 是抽象异常还是具体异常;3. 是多异常还是单异常;第一个问题中,是否有异常,将直接影响其实现,若无异常而实现需要抛出异常的时候,则无法抛出;所以这里是个业务的问题,而不是技术的问题,如果认为该接口不应该抛出异常,则无需有异常的抛出,如何判定该不该抛出异常,则是由预知场景决定,比如在TextWacher接口中,我们认为只是对text进行监听,而不应抛出异常,也不可能有异常,即使有也不应该抛出异常,而应该用其他的状态来显示,这是业务 阅读全文
posted @ 2013-06-04 10:31 crazywings 阅读(186) 评论(0) 推荐(0) 编辑