JAVA基本功总结(二)

Posted by Sevil at 2008-03-27 16:17 | Filed under

四、异常的设计
1、异常不能代替简单的测试,如if
2、异常没必要细化,就是一个try加n个catch
3、合理的设计异常的结构,该封装就封装,注意保持root cause
4、避免catch之后什么都不做
5、检测到错误,不要返回一个简单的值表示出错了,抛个异常更好
6、方法后面大胆地加throws,让高层次的方法通知用户

五、断言
看段代码就知道了
int x = 10;
assert x == 11 : “failed”;
System.out.println(”finish”);
直接运行,输出finish,可是如果在java.exe后面+个-ea呢,就输出Exception in thread “main” java.lang.AssertionError: failed
注意:断言失败是致命的,断言只用在开发和测试的时候

六、IO
涉及的类太多,使用时候看API就行了,值得理解是结构。Reader和Writer类主要用于读取文本格式的内容,而InputStream和OutputStream及它们的子类主要用于读取二进制文件。这里有decorator模式哦。

七、泛型设计
语法 ? super T 表示T的一个未知的父类(或者是T自己)。用? extends T 表示T的一个未知的子类是对应的。
如:class C<T extends Comparable<? super T> & Serializable>
来分析下,用个通俗的解释就是这个T是Comparable和Serializable的子类,而Comparable又是有限制的,限制就是必须是T的父类,什么父类?未知。
一篇很好的文章

JAVA基本功总结(一)

Posted by Sevil at 2008-03-22 16:16 | Filed under

写了几年JAVA之后,回头看看会发现很多有趣的东西。比如刚开始的时候会对很多基本概念或者设计模式混淆的一塌糊涂,写多了这些东西就不知不觉的随手就来。在此总结一下我自己的一个理解和大纲。

一、最基本的数据类型,运算符等等
任何一JAVA书的前五章都会做个详细的不能在详细的介绍,就不浪费时间了。

二、面向对象、设计模式和UML
JAVA是一种很轻松很自由的语言,这一点上,我更喜欢JAVA而不是C#。而模式也是一个基本功,结合着UML,看看模式的UML,对比着代码,一举多 得。到后来自己设计的时候,用UML图去表示想法。其实UML并不是那么理想,只是大家按照这个规范了,一起讨论和分发文档的时候方便多了。
1.基本概念:类,抽象类,继承,内部类,重载,覆写,继承,多态,组合
2.类之间的关系,结合UML类图描述的依赖,关联,聚合等
3.设计模式,这里有一篇很好的文章,很适合回顾设计模式的UML

三、 SWING相关
我一直认为想理解或者编写漂亮的JAVA代码,最好去研究一下SWING,包括源码,虽然SWING确实存在很多问题,尤其是线程安全上,但是SWING 以及其设计良好的应用程序就是一个设计模式的最好展示,我自己的体会是写了一段时间SWING之后,我发现自己的代码越来越简洁 ,尤其当对SWING源码做了仔细研究之后(不仅仅是查看JAVA Doc),基于JAVA的设计和架构有了长足的进步。BTW,一般写SWING如果出现了莫名其妙的错误,不妨直接试一下InvokeLater:)