1. 首页
  2. IT资讯

想要成为一名优秀的Java程序员,这份Java文档必读

“u003Ch1u003Eu003Cstrongu003EA、规则(1–2 级)u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cpu003E1、在switch 中每个 case 语句都应该包含 break 或者 return 。u003Cu002Fpu003Eu003Cpu003E2、不要使用空的for 、if 、while 语句。u003Cu002Fpu003Eu003Cpu003E3、在运算中不要减小数据的精度。u003Cu002Fpu003Eu003Cpu003E4、switch 语句中的 case 关键字要和后面的常量保持一个空格,switch 语句中不要定义case 之外的无用标签。u003Cu002Fpu003Eu003Cpu003E5、不要在if 语句中使用等号= 进行赋值操作。u003Cu002Fpu003Eu003Cpu003E6、静态成员或者方法使用类名访问,不使用句柄访问。u003Cu002Fpu003Eu003Cpu003E7、方法重载的时候,一定要注意方法名相同,避免类中使用两个非常相似的方法名。u003Cu002Fpu003Eu003Cpu003E8、不要在ComponentListener.componentResized() 方法中调用 serResize() 方法。u003Cu002Fpu003Eu003Cpu003E9、不要覆盖父类的静态方法和私有方法。u003Cu002Fpu003Eu003Cpu003E10、不要覆盖父类的属性。u003Cu002Fpu003Eu003Cpu003E11、不要使用两级以上的内部类。u003Cu002Fpu003Eu003Cpu003E12、把内部类定义成私有类。u003Cu002Fpu003Eu003Cpu003E13、去掉接口中多余的定义(不使用 public, abstract, static, final 等,这是接口中默认的)。u003Cu002Fpu003Eu003Cpu003E14、不要定义不会被用到的局部变量、类私有属性、类私有方法和方法参数。u003Cu002Fpu003Eu003Cpu003E15、显式初始化所有的静态属性。u003Cu002Fpu003Eu003Cpu003E16、不要使用 System.getenv() 方法。u003Cu002Fpu003Eu003Cpu003E17、不要硬编码 ‘\n’和‘\r’作为换行符号。u003Cu002Fpu003Eu003Cpu003E18、不要直接使用 java.awt.peer.* 里面的接口。u003Cu002Fpu003Eu003Cpu003E19、使用 System.arraycopy() ,不使用循环来复制数组。u003Cu002Fpu003Eu003Cpu003E20、避免不必要的 instanceof 比较运算和类造型运算。u003Cu002Fpu003Eu003Cpu003E21、不要在 finalize() 方法中删除监听器(Listeners)。u003Cu002Fpu003Eu003Cpu003E22、在 finalize() 方法中一定要调用 super.finalize() 方法。u003Cu002Fpu003Eu003Cpu003E23、在 finalize() 方法中的 finally 中调用 super.finalize() 方法。u003Cu002Fpu003Eu003Cpu003E24、进行字符转换的时候应该尽可能的较少临时变量。u003Cu002Fpu003Eu003Cpu003E25、使用ObjectStream 的方法后,调用reset() ,释放对象。u003Cu002Fpu003Eu003Cpu003E26、线程同步中,在循环里面使用条件测试(使用 while(isWait) wait() 代替 if(isWait) wait())。u003Cu002Fpu003Eu003Cpu003E27、不掉用 Thread 类的 resume(), suspend(), stop() 方法。u003Cu002Fpu003Eu003Cpu003E28、减小单个方法的复杂度,使用的 if, while, for, switch 语句要在10个以内。u003Cu002Fpu003Eu003Cpu003E29、在Servlets中,重用JDBC连接的数据源。u003Cu002Fpu003Eu003Cpu003E30、减少在Sevlets中使用的同步方法。u003Cu002Fpu003Eu003Cpu003E31、不定义在包中没有被用到的友好属性、方法和类。u003Cu002Fpu003Eu003Cpu003E32、没有子类的友好类应该定义成 final 。u003Cu002Fpu003Eu003Cpu003E33、没有被覆盖的友好方法应该定义成 final 。u003Cu002Fpu003Eu003Ch1u003Eu003Cstrongu003EB、建议(3级或以上)u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cpu003E34、为 switch 语句提供一个 default 选项。u003Cu002Fpu003Eu003Cpu003E35、不要在 for 循环体中对计数器的赋值。u003Cu002Fpu003Eu003Cpu003E36、不要给非公有类定义 public 构建器。u003Cu002Fpu003Eu003Cpu003E37、不要对浮点数进行比较运算,尤其是不要进行 ==, !=运算,减少 >, < 运算。u003Cu002Fpu003Eu003Cpu003E38、实现 equals() 方法时,先用 getClass() 或者 instanceof 进行类型比较,通过后才能继续比较。u003Cu002Fpu003Eu003Cpu003E39、不要重载 main() 方法用作除入口以外的其他用途。u003Cu002Fpu003Eu003Cpu003E40、方法的参数名不要和类中的方法名相同。u003Cu002Fpu003Eu003Cpu003E41、除了构建器外,不要使用和类名相同的方法名。u003Cu002Fpu003Eu003Cpu003E42、不要定义 Error 和 RuntimeException 的子类,可以定义 Exception 的子类。u003Cu002Fpu003Eu003Cpu003E43、线程中需要实现 run() 方法。u003Cu002Fpu003Eu003Cpu003E44、使用 equals() 比较两个类的值是否相同。u003Cu002Fpu003Eu003Cpu003E45、字符串和数字运算结果相连接的时候,应该把数字运算部分用小括号括起来。u003Cu002Fpu003Eu003Cpu003E46、类中不要使用非私有(公有、保护和友好)的非静态属性。u003Cu002Fpu003Eu003Cpu003E47、在类中对于没有实现的接口,应该定义成抽象方法,类应该定义成抽象类。(5级)u003Cu002Fpu003Eu003Cpu003E48、不要显式导入 java.lang.* 包;u003Cu002Fpu003Eu003Cpu003E49、初始化时不要使用类的非静态属性。u003Cu002Fpu003Eu003Cpu003E50、显式初始化所有的局部变量。u003Cu002Fpu003Eu003Cpu003E51、按照方法名把方法排序放置,同名合同类型的方法应该放在一起。u003Cu002Fpu003Eu003Cpu003E52、不要使用嵌套赋值,即在一个表达式中使用多个 = 。u003Cu002Fpu003Eu003Cpu003E53、不要在抽象类的构建器中调用抽象方法。u003Cu002Fpu003Eu003Cpu003E54、重载 equals() 方法的同时,也应该重载 hashCode() 方法。u003Cu002Fpu003Eu003Cpu003E55、工具类(Utility)不要定义构建器,包括私有构建器。u003Cu002Fpu003Eu003Cpu003E56、不要在 switch 中使用10个以上的 case 语句。u003Cu002Fpu003Eu003Cpu003E57、把 main() 方法放在类的最后。u003Cu002Fpu003Eu003Cpu003E58、声明方法违例的时候不要使用 Exception ,应该使用它的子类。u003Cu002Fpu003Eu003Cpu003E59、不要直接扔出一个Error ,应该扔出它的子类。u003Cu002Fpu003Eu003Cpu003E60、在进行比较的时候,总是把常量放在同一边(都放在左边或者都放在右边)。u003Cu002Fpu003Eu003Cpu003E61、在可能的情况下,总是为类定义一个缺省的构建器。u003Cu002Fpu003Eu003Cpu003E62、在捕获违例的时候,不使用 Exception, RuntimeException, Throwable,尽可能使用它们的子类。u003Cu002Fpu003Eu003Cpu003E63、在接口或者工具类中中定义常量。(5级)u003Cu002Fpu003Eu003Cpu003E64、使用大写‘L’表示 long 常量。(5级)u003Cu002Fpu003Eu003Cpu003E65、main() 方法必须是 public static void main(String[])。(5级)u003Cu002Fpu003Eu003Cpu003E66、对返回类型为 boolean 的方法使用 is 开头,其它类型的不能使用。u003Cu002Fpu003Eu003Cpu003E67、对非boolean类型取值方法(getter)使用 get 开头,其它类型的不能使用。u003Cu002Fpu003Eu003Cpu003E68、对于设置值的方法(setter)使用 set 开头,其它类型的不能使用。u003Cu002Fpu003Eu003Cpu003E69、方法需要有同样数量参数的注释 @param。u003Cu002Fpu003Eu003Cpu003E70、不要在注释中使用不支持的标记,如:@unsupported 。u003Cu002Fpu003Eu003Cpu003E71、不要使用 Runtime.exec() 方法。u003Cu002Fpu003Eu003Cpu003E72、不要自定义本地方法(native method)。u003Cu002Fpu003Eu003Cpu003E73、使用尽量简洁的的运算符号。u003Cu002Fpu003Eu003Cpu003E74、使用集合时设置初始容量。u003Cu002Fpu003Eu003Cpu003E75、单个首字符的比较使用 charAt() 而不用 startsWith() 。u003Cu002Fpu003Eu003Cpu003E76、对于被除数或者被乘数为2的n次方的乘除运算使用移位运算符 >>, << 。u003Cu002Fpu003Eu003Cpu003E77、一个字符的连接使用‘ ’而不使用 “ ”,如:String a = b + ‘c’。u003Cu002Fpu003Eu003Cpu003E78、不要在循环体内调用同步方法和使用 try—catch 块。u003Cu002Fpu003Eu003Cpu003E79、不要使用不必要的布尔值比较,如:if (a.equals(b)), 而不是 if (a.equals(b)==true)。u003Cu002Fpu003Eu003Cpu003E80、常量字符串使用 String, 非常量字符串使用 StringBuffer 。u003Cu002Fpu003Eu003Cpu003E81、在循环条件判断的时候不要使用复杂的表达式。u003Cu002Fpu003Eu003Cpu003E82、对于“if (condition) do1; else do2;”语句使用条件操作符“if (condition)?do1:do2;”。u003Cu002Fpu003Eu003Cpu003E83、不要在循环体内定义变量。u003Cu002Fpu003Eu003Cpu003E84、使用StringBuffer的时候设置初始容量。u003Cu002Fpu003Eu003Cpu003E85、尽可能的使用局部变量进行运算。u003Cu002Fpu003Eu003Cpu003E86、尽可能少的使用 ‘!’操作符。(5级)u003Cu002Fpu003Eu003Cpu003E87、尽可能的对接口进行 instanceof 运算。(5级)u003Cu002Fpu003Eu003Cpu003E88、不要使用 Date[] 而要使用 long[] 替代。u003Cu002Fpu003Eu003Cpu003E89、不要显式调用 finalize() 。u003Cu002Fpu003Eu003Cpu003E90、不要使用静态集合,其内存占用增长没有边界。u003Cu002Fpu003Eu003Cpu003E91、不要重复调用一个方法获取对象,使用局部变量重用对象。u003Cu002Fpu003Eu003Cpu003E92、线程同步中,使用 notifyAll() 代替 notify()。u003Cu002Fpu003Eu003Cpu003E93、避免在同步方法中调用另一个同步方法造成的死锁。u003Cu002Fpu003Eu003Cpu003E94、非同步方法中不能调用 wait() , notify() 方法。u003Cu002Fpu003Eu003Cpu003E95、使用 wait(), notify() 代替 while(), sleep() 。u003Cu002Fpu003Eu003Cpu003E96、不要使用同步方法,使用同步块。(5级)u003Cu002Fpu003Eu003Cpu003E97、把所有的公有方法定义为同步方法。 (5级)u003Cu002Fpu003Eu003Cpu003E98、实现的 Runnable.run() 方法必须是同步方法。 (5级)u003Cu002Fpu003Eu003Cpu003E99、一个只有abstract方法、final static 属性的类应该定义成接口。u003Cu002Fpu003Eu003Cpu003E100、在 clone() 方法中应该而且必须使用 super.clone() 而不是 new 。u003Cu002Fpu003Eu003Cpu003E101、常量必须定义为 final 。u003Cu002Fpu003Eu003Cpu003E102、在 for 循环中提供终止条件。u003Cu002Fpu003Eu003Cpu003E103、在 for, while 循环中使用增量计数。u003Cu002Fpu003Eu003Cpu003E104、使用 StringTokenizer 代替 indexOf() 和 substring() 。u003Cu002Fpu003Eu003Cpu003E105、不要在构建器中使用非 final 方法。u003Cu002Fpu003Eu003Cpu003E106、不要对参数进行赋值操作。(5级)u003Cu002Fpu003Eu003Cpu003E107、不要通过名字比较两个对象的类,应该使用 getClass() 。u003Cu002Fpu003Eu003Cpu003E108、安全:尽量不要使用内部类。u003Cu002Fpu003Eu003Cpu003E109、安全:尽量不要使类可以克隆。u003Cu002Fpu003Eu003Cpu003E110、安全:尽量不要使接口可以序列化。u003Cu002Fpu003Eu003Cpu003E111、安全:尽量不要使用友好方法、属性和类。u003Cu002Fpu003Eu003Cpu003E112、Servlet:不要使用 java.beans.Beans.instantiate() 方法。u003Cu002Fpu003Eu003Cpu003E113、Servlet:不再使用HttpSession时,应该尽早使用 invalidate() 方法释放 。u003Cu002Fpu003Eu003Cpu003E114、Servlet:不再使用JDBC资源时,应该尽早使用 close() 方法释放 。u003Cu002Fpu003Eu003Cpu003E115、Servlet:不要使用Servlet的 SingleThreadModel,会消耗大量资源。u003Cu002Fpu003Eu003Cpu003E116、国际化:不要使用一个字符进行逻辑操作,使用 Characater。u003Cu002Fpu003Eu003Cpu003E117、国际化:不要进行字符串连接操作,使用MessageFormat 。u003Cu002Fpu003Eu003Cpu003E118、国际化:不要使用 Date.toString() ,Time.toString() 方法。u003Cu002Fpu003Eu003Cpu003E119、国际化:字符和字符串常量应该放在资源文件中。u003Cu002Fpu003Eu003Cpu003E120、国际化:不要使用数字的 toString() 方法。u003Cu002Fpu003Eu003Cpu003E121、国际化:不要使用 StringBuffer , StringTokenizer类。u003Cu002Fpu003Eu003Cpu003E122、国际化:不要使用 String 类的 compareTo(), equals() 方法。u003Cu002Fpu003Eu003Cpu003E123、复杂度:建议的最大规模:u003Cu002Fpu003Eu003Cpu003E    继承层次 5层u003Cu002Fpu003Eu003Cpu003E    类的行数 1000行(包含{})u003Cu002Fpu003Eu003Cpu003E    类的属性 10个u003Cu002Fpu003Eu003Cpu003E    类的方法 20个u003Cu002Fpu003Eu003Cpu003E    类友好方法 10个u003Cu002Fpu003Eu003Cpu003E    类私有方法 15个u003Cu002Fpu003Eu003Cpu003E    类保护方法 10个u003Cu002Fpu003Eu003Cpu003E    类公有方法 10个u003Cu002Fpu003Eu003Cpu003E    类调用方法 20个u003Cu002Fpu003Eu003Cpu003E    方法参数 5个u003Cu002Fpu003Eu003Cpu003E    return语句 1个u003Cu002Fpu003Eu003Cpu003E    方法行数 30行u003Cu002Fpu003Eu003Cpu003E    方法代码 20行u003Cu002Fpu003Eu003Cpu003E    注释比率 30%~50%u003Cu002Fpu003Eu003Cpu003Eu003Cbru002Fu003Eu003Cu002Fpu003Eu003Cpu003E原文链接:https:u002Fu002Fblog.csdn.netu002Fweixin_44563573u002Farticleu002Fdetailsu002F102966198u003Cu002Fpu003E”

原文始发于:想要成为一名优秀的Java程序员,这份Java文档必读

主题测试文章,只做测试使用。发布者:程序员,转转请注明出处:http://www.cxybcw.com/26380.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code