实现clone()
- class Values implements Cloneable {
- String abc;
- double foo;
- int[] bars;
- Date hired;
- public Values clone() {
- try {
- Values result = (Values)super.clone();
- result.bars = result.bars.clone();
- result.hired = result.hired.clone();
- return result;
- } catch (CloneNotSupportedException e) { // Impossible
- throw new AssertionError(e);
- }
- }
- }
- 应用 super.clone() 让Object类负粜ゴ建新的对象。
- 根本类型域都已经被精确地复制了。同样,我们不须要去克隆String和BigInteger等弗成变类型。
- 手动对所有的非根本类型域(对象和数组)进行深度复制(deep copy)。
- 实现了Cloneable的类,clone()办法永远不要抛CloneNotSupportedException。是以,须要捕获这个异常并忽视它,或者应用不受检异常(unchecked exception)包装它。
- 不应用Object.clone()办法而是手动地实现clone()办法是可以的也是合法的。
- 参考:java.lang.Object.clone()、java.lang.Cloneable()。
应用StringBuilder或StringBuffer
- Random rand = new Random();
- // Between 1 and 6, inclusive
- int diceRoll() {
- return rand.nextInt(6) + 1;
- }
- 老是应用Java API办法去生成一个整数范围内的随机数。
- 不要试图去应用 Math.abs(rand.nextInt()) % n 这些不肯定的用法,因为它的结不雅是有误差的。此外,它的结不雅值有可能是负数,比如当rand.nextInt() == Integer.MIN_VALUE时就会如斯。
- 参考:java.util.Random.nextInt(int)。
应用Iterator.remove()
- void filter(List<String> list) {
- for (Iterator<String> iter = list.iterator(); iter.hasNext(); ) {
- String item = iter.next();
- if (...)
- iter.remove();
- }
- }
- remove()办法感化在next()办法比来返回的条目上。每个条目只能应用一次remove()办法。
- 参考:java.util.Iterator.remove()。
返转字符串
- String reverse(String s) {
- return new StringBuilder(s).reverse().toString();
- }
- 这个办法可能应当参加Java标准库。
- 参考:java.lang.StringBuilder.reverse()。
启动一条线程
推荐阅读
我们天天应用很多Linux敕令行。我们大年夜网上知道一些技能,但如不雅我们不去演习,我们就有可能忘记。我决定做一个关于技能和桥绫桥的列表,这些技能和桥绫桥对于你来说可能是已经忘记的,或>>>详细阅读 本文标题:关于Java习惯用法的总结 地址:http://www.17bianji.com/lsqh/37140.html 1/2 1