欢迎来到天天文库
浏览记录
ID:34281621
大小:631.00 KB
页数:31页
时间:2019-03-04
《java编程最差实践》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、原文地址:http://www.odi.ch/prog/design/newbies.php 每天在写Java程序,其实里面有一些细节大家可能没怎么注意,这不,有人总结了一个我们编程中常见的问题.虽然一般没有什么大问题,但是最好别这样做.另外这里提到的很多问题其实可以通过Findbugs(http://findbugs.sourceforge.net/ )来帮我们进行检查出来. 字符串连接误用 错误的写法: Java代码 1.String s = ""; 2.for (Person p :
2、 persons) { 3. s += ", " + p.getName(); 4.} 5.s = s.substring(2); //remove first comma 正确的写法: Java代码 1.StringBuilder sb = new StringBuilder(persons.size() * 16); // well estimated buffer 2.for (Person p : persons) { 3. if (sb.length() >
3、 0) sb.append(", "); 4. sb.append(p.getName); 5.} 错误的使用StringBuffer 错误的写法: Java代码 1.StringBuffer sb = new StringBuffer(); 2.sb.append("Name: "); 3.sb.append(name + ''); 4.sb.append("!"); 5.... 6.String s = sb.toString(); 问题在第三行,append
4、char比String性能要好,另外就是初始化StringBuffer没有指定size,导致中间append时可能重新调整内部数组大小.如果是JDK1.5最好用StringBuilder取代StringBuffer,除非有线程安全的要求.还有一种方式就是可以直接连接字符串.缺点就是无法初始化时指定长度. 正确的写法: 页脚Java代码 1.StringBuilder sb = new StringBuilder(100); 2.sb.append("Name: "); 3.sb.appe
5、nd(name); 4.sb.append("!"); 5.String s = sb.toString(); 或者这样写: Java代码 1.String s = "Name: " + name + "!"; 测试字符串相等性 错误的写法: Java代码 1.if (name.compareTo("John") == 0) ... 2.if (name == "John") ... 3.if (name.equals("John")) ... 4.if ("".eq
6、uals(name)) ... 上面的代码没有错,但是不够好.compareTo不够简洁,==原义是比较两个对象是否一样.另外比较字符是否为空,最好判断它的长度. 正确的写法: Java代码 1.if ("John".equals(name)) ... 2.if (name.length() == 0) ... 3.if (name.isEmpty()) ... 数字转换成字符串 错误的写法: Java代码 1."" + set.size() 2.new Integer(set
7、.size()).toString() 页脚 正确的写法: Java代码 1.String.valueOf(set.size()) 利用不可变对象(Immutable) 错误的写法: Java代码 1.zero = new Integer(0); 2.return Boolean.valueOf("true"); 正确的写法: Java代码 1.zero = Integer.valueOf(0); 2.return Boolean.TRUE; 请使用XML解析器 错误的
8、写法: Java代码 1.int start = xml.indexOf("") + "".length(); 2.int end = xml.indexOf(""); 3.String name = xml.substring(start, end); 正确的写法: Java代码 1.SAXBuilder builder = new SAXBuilder(false); 2.Document doc = doc = builder.build
此文档下载收益归作者所有