锁定老帖子 主题:Java
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-01-24
最后修改:2009-03-17
public static Credit getNewCredit() { return (Credit) BaseCredit.clone(); } Java语言习惯用语 1.循环 ■ 在重要的循环里,消除循环终止判断时的方法调用。。。 例如:将... for(int i=0; i [b]3.基本数据类型 [/b] ■ 在重要的循环里使用基本数据类型(int型数据通常比long/double型数据更快) ■ 基本数据类型(Boolean,Integer,etc)的包装类主要用在当传递的方法参数必须是一个对象的引用时(而不是一个基本数据类型) ■ 对所有的常量代数表达式使用static final修饰符 ■ 使常量更容易引用(编译器预先计算常量表达式) [b]4.异常[/b] ■ 异常只用于单个真正的错误条件 抛出一个异常和执行一个catch代码块花费是很高的(主要由于当创建一个异常时要获得线程栈的一个快照) 只当条件真的异常时才抛出一个异常 ■ 抛出异常首先要创建一个新的对象。 Throwable接口的构造函数调用名为fillInStackTrace()的本地(Native)方法,fillInStackTrace()方法检查堆栈,收集调用跟踪信息。 只要有异常被抛出,VM就必须调整调用堆栈,因为在处理过程中创建了一个新的对象。 异常只能用于错误处理,不应该用来控制程序流程。 ■ 使编译器和运行时最优化,将几个方法调用放在一个try/catch块中,而不是为每个方法调用实现几个try/catch块try{ Some.method1(); //Difficut for java1.4 }catch(method1Exception e){ handle exception 1 // to optimize this code } try{ Some.method2(); //Difficut for java1.4 }catch(method2Exception e){ handle exception 2 // to optimize this code } try{ Some.method3(); //Difficut for java1.4 }catch(method3Exception e){ handle exception 3 // to optimize this code } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-01-24
不能只说这样会更快,要说出每种优化能快多少
|
|
返回顶楼 | |
发表时间:2009-01-24
被标题忽悠了一把……
|
|
返回顶楼 | |
发表时间:2009-01-24
这些通常是小问题。
|
|
返回顶楼 | |
发表时间:2009-01-24
挺不错,虽然是小问题,不过养成好的编码习惯还是很重要的。
|
|
返回顶楼 | |
发表时间:2009-01-25
要注意,6。7。9这三条要非常小心。
6所能带来的提高我觉得如果不是非常大的对象的话是非常有限的。而可能带来很多问题。 按照惯例,此方法返回的对象应该独立于该对象(正被复制的对象)。要获得此独立性,在 super.clone 返回对象之前,有必要对该对象的一个或多个字段进行修改。这通常意味着要复制包含正在被复制对象的内部“深层结构”的所有可变对象,并使用对副本的引用替换对这些对象的引用。如果一个类只包含基本字段或对不变对象的引用,那么通常不需要修改 super.clone 返回的对象中的字段。 Object 类的 clone 方法执行特定的复制操作。首先,如果此对象的类不能实现接口 Cloneable,则会抛出 CloneNotSupportedException。注意,所有的数组都被视为实现接口 Cloneable。否则,此方法会创建此对象的类的一个新实例,并像通过分配那样,严格使用此对象相应字段的内容初始化该对象的所有字段;这些字段的内容没有被自我复制。所以,此方法执行的是该对象的“浅表复制”,而不“深层复制”操作。 Object 类本身不实现接口 Cloneable,所以在类为 Object 的对象上调用 clone 方法将会导致在运行时抛出异常。 这是JavaDoc上的说明。如果你对Service和Dao进行复制的话,很可能引发复制对象内的引用对象问题。如果对一些普通的JavaBean复制的话,和new对比又没什么优势。 9这是断了系统继承的后路。使用这个关键字需要相当谨慎。不然造成日后无法继承的话,就只能采用设计模式绕路了。 |
|
返回顶楼 | |
发表时间:2009-01-26
yangwn 写道
3.基本数据类型 貌似不对 |
|
返回顶楼 | |
发表时间:2009-01-26
最后修改:2009-01-26
for(int i=0; n=collection.size();i<n;i++){ ... } 代码有误,应为: for(int i=0,n=collection.size();i<n;i++){ ... } |
|
返回顶楼 | |
发表时间:2009-02-01
谢谢大家对这些观点的忠告,特别是魔力猫咪,解释的叫一个到位。再次感谢!
|
|
返回顶楼 | |
发表时间:2009-02-02
for(int i=0; n=collection.size();i<n;i++){
... } 这样写效率提高在什么地方? |
|
返回顶楼 | |