Java解惑六:库之谜
Posted ljbguanli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java解惑六:库之谜相关的知识,希望对你有一定的参考价值。
本文是依据JAVA解惑这本书,做的笔记。
电子书见:http://download.csdn.net/detail/u010378705/7527721
谜题56
BigInteger、BigDecimal以及包装类型的实例是不可改变。
BigInteger five = new BigInteger("5"); BigInteger total = BigInteger.ZERO; total.add(five); //这并不会改变total的值,调用该方法的返回值。才是加法得到的结果。 total = total.add(five); // 才是希望得到的结果
谜题57
HashSet中的元素,首先计算hashCode,然后在调用equals()方法。一个类假设重写了equals()方法,而没有重写hashCode()方法。对HashSet会有影响。因此两个方法尽量一起重写。
谜题58
本来应该重写equals(Object o),可是重载了。写成了:equals(Class class)因此在重写的时候尽量使用:@Override
谜题59
主要讲述了:在数字前面加个0就是八进制的数了。
谜题60
一行编码解决这个问题。主要讲述是四个知识点。
1. LinkedHashSet:维持来的顺序,且没有反复的。2. 正則表達式在split中的应用。3. Arrays.deepToString的使用4. 包装类的位操作:Integer.bitCount();
谜题61
主要讲了Calendar和Data使用的问题。使用时候要注意查API文档。
谜题62
HashMap存储String时候的问题。HashMap比較键时,使用的是引用等价性而不是值等价性。语言规范字符串是内存限定的,相等的String常量也是同样的。
谜题63
不要将构造器声明变成方法声明:加入返回值。
谜题64
整数边界的问题Math.abs(Integer.MIN_VALUE) 仍是其本身PS:负数取余的问题
谜题65
整数相减越界的问题。两个整数相减会导致越界,compare时最好不要使用两数相减,改为public int compare(Integer i1, integer i2) { return (i2 < i1 ?-1 : (i2 == i1) ? 0 : 1); }
以上是关于Java解惑六:库之谜的主要内容,如果未能解决你的问题,请参考以下文章