1、编程提示越早开始编码完成程序所需的时间就越长,在编码之前必须经过精心的设计,对于面对对象的程序来说,尤其如此。注释的使用:编写良好的程序在开始出应该有一个注释块,用于给出程序名,作者名以及程序所做事情的简要说明。所进的使用:一个块内代码应该缩进,块的开始与结束括号应该对齐,应该用注释来标识一块注释来标识一块代码的结束。标识符选择:为了使程序更易读,最好使用能描述类、变量和方法用途的名称。类与实例方法:如果方法设计为对象使用,那么它就是实例方法,实例方法不需要修饰符,与实例方法相比,不常用的类方法必须声明为 static。圆括号:圆括号可以(也应该)被用来澄清函上去不明确或覆盖 JAVA 默认优
2、先级规则。加括号:使用括号来制定一个表达式中的运算顺序,可以避免由 JAVA 优先给予拓展规则带来的不易察觉的程序漏洞。自增与自减运算符:由于这两个运算符的微妙的性质,在决定如何使用它们是一定要小心谨慎,正如后文所示,他们在处理增减循环变量时十分有用。数值类型:JAVA 使用 int 类型表示整数,使用 double 类型表示实数,如果可能,在定义数量时使用 int 和 double 类型会减少程序必须进行的隐式数据类型的转换操作。不要混合类型:如果能尽可能得将一个表达式中的数据转换成同一个类型,可以减少隐式类型转换所引起的语义错误。可读性:使用命名常量代替字面值可是程序更易阅读。循环缩进:为
3、增加循环 s 的可读性,缩进循环体时,是他与头部分离,以突出重复语句。多路选择:switch 语句的类型应用是结合 break 用于编写多路选择。在开发程序代码的同时,要编写他的说明性文档,并在其中融入和后置条件。标准技术:对于标准的编程问题,需要学习并使用标准编程技术。例如,用一个临时变量来交换两个得值,这就是一项标准技术。封装:代码中,凡是合适的地方都可以将一些重要的代码段封装起来,以降低程序的复杂性。代码复用:在任何可能的情况下都尽量使用库类和方法,而不是自己在另起炉灶,从头编写,他们都已经过丰富的程序员仔细设计,而且库类代码已经通过了广泛的测试。StringBuffer:在任何涉及字符
4、串修改的任务,应该用StringBuffer 代替 String0。一般化:通过将组件的大小和字体作为决定因素,可以在任意可视组件中居中文本,这些值可以通过组件的 getFont()和getSize()方法获得。值交换:在内存交换任何类型的两个值时,都要使用一个临时变量,临时变量用于保存你要用第二值覆盖的第一个值。交换变量:在交换两个内存元素时,如果其中一个元素的内存位置被改写那么必须使用一个临时变量保存该元素。数组初始化:初始化(赋值)表达式只可用于对相对小的数组赋值,对于大数组,应该设计一个初始化方法。排列 catch 子句:catch 字句应该从最特殊到最一般来排列。Exception
5、字句应该总是在序列的最后。选用流:在为一个 I/O 操作选用合适的流时,DataIputStream 和DataOutputStream 一般用于二进制 I/O,Reader 和 Writer 一般用于文本 I/O。缓冲:通过降低一个程序访问相对慢的输入输出设备的时间量,缓冲的流可以提高一个程序的整体效率。整数/字符串转换:整数可以通过写到 StringBuffer 中的方式转换为字符串,然后作为一整行文本输出。StringReader 的方式可以从 String 型对象中读取整数。关闭文件:既是一个程序正常终止,JAVA 也会关闭任何打开的文件和流,但是自己使用一条 close()语句关闭文
6、件仍不失为一种好的编程习惯。如果程序非正常终止,这样做可降低文件损坏的几率。行的结束:记住,readLine()方法没有返回行结束符作为其返回文本的一部分,如果想隔行打印文本,必须添加n。read 和 readLine 的比较:除非对文本文件中的每一个字符进行操作时必须的,一次读取一整行更有效率,并且更可取。Finally 块:在编写一个二进制读循环时,只要 EOFException 异常出现 try 块就被退出。因此,close()语句必须被放在finally 子句里面,它在 catch 子句之后被执行。对象序列化 JAVA 的序列化类 ObjectOutputStream 和ObjectI
7、nputStream 应该用于对象需要从一个流流入或输出的时候。分治法:许多编程问题都可以通过把它们分解成更小的、更简单的问题进行求解,对于递归的问题求解,找到子问题的解法也就掌握了原始问题的解答。子数组参数:对于数组自变量的方法,一个 int 型参数往往可以用于指明在该方法中应该对数组处理的部分。方法分解:一项任务可以通过将其分解尾简单的子任务来简化,尤其是已经拥有求解其中一个或多个子任务的方法时。Swing 文档:完整的 Swing 文档可在 Sun 的 Web 站点下载和浏览,网址是:http:/ 。网格布局:确保添加到 GridLayout 的组件的数目等于行数和列数的结果数。默认情况
8、:尽管在一个 if-else 结构中,子句的顺序通常不重要,但是默认的子句有时可以用于处理不能通过名称引用的情况。GUI 线程编程:在 GUI 中建立另一个线程需要以下三个步骤:定义的二个线程来实现 Runnable 接口; 重写 run()方法; 1 2在线程的运行算法中结合一些机制。如 sleep()状态以使 3GUI 线程能够周期性运行。模运算:模运算,模运算(x%N)在需要重要重复循环0、1、N-1 时是很有用的。连接:连接一个整数值(k)和字符串能够得到这样形式的文件名:“file1.gif” , “file2.gif”。回调(CallBack):通常可以使用回调技术处理两个对象之间的通信,把对象 A 的引用传给对象 B,对象 B 通过 A 的引用来调用 A 的某个 public 方法。socket 流:每个 socket 有两个流,一个用来输入,另一个用来输出。空(null)引用:空引用用于定义限制情况,例如空链接表或者一个未实例化的对象。遍历终止:在设计链表遍历算法时,引用 p 指向链表中的节点,如果需要再循环退出时得到链表最后一个节点的引用,那么退出条件应该是 p.getNext()=null。如果在循环退出时已经完成了对节点的处理,那么退出条件应该为 p=null。