第三个周末


最美好的时候就是现在

基础梳理: ### == 比较的是对象的地址.

String v ="abs";
String v1 ="abs";
String v2 = new String("abs");
System.out.println(v==v1);
System.out.println(v==v2);

注意JVM的优化的结果

equals 比较的是地址,这个从源代码中就能够确定

public boolean equals(Object obj) {
        return (this == obj);
    }

但是我们如果有需要的话也能够重写这个方法:

@Override
	public boolean equals(Object obj) {
		// TODO Auto-generated method stub
		return super.equals(obj);
	}

重写了quals之后,一般的情况下会重写:hashcode方法,主要原因是为了保持一致性。例如如果我们补充些hashcode,但是我们重写了equals,那么:就会存在一种情况两个实力根据equals判断是相等的,但是作为Hashmap的key的之后,是根据hashcode来分配具体的位置的。所以可能会存在“equals”上两个相等的key值。

Integer 的源码中需要注意的地方

 public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }

IntegerCache.high 可以通过设置JVM的启动的参数:-Djava.lang.Integer.IntegerCache.high = 200来间接地设置 IntegerCache.high 的值。也可以通过设置参数 -XX:AutoBoxCacheMax 来达到这个目的。

工作和学习

每天的工作是否需要总结?每天碰到的问题应该怎么处理?每天出现的”气死苗翔” 应该如何的应对?自己的提高不就是应该这工作中来的吗?



上一篇  第四个周末-不纠结-一个BUG引发的思考 下一篇   第二个周末