【面试】深入java包装类
在JAVA中,已经将Java的基本数据类型与其提供了一些常用的类型操作的方法进行了封装,这样才有一切皆对象的感觉。
在学习包装类时,找了几个比较有意思的类进行了学习!
1.Integer
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = count; if (n == anotherString.count) { char v1[] = value; char v2[] = anotherString.value; int i = offset; int j = anotherString.offset; while (n-- != 0) { if (v1[i++] != v2[j++]) return false; } return true; } } return false; }
4.各个包装类缓存值范围
boolean:true和false
byte:-128~127
char:0~127
short:-128~127
int:-128~127
long:-128~127
特别:对于float和double没有缓存。
在对上述值进行装箱的时候(如:Character c1=127;or
Integer i= Integer.valueOf(1);
这个不行哦:Integer i2=new Integer(1);因为这是新建了一个对象出来。),并不是创建一个新对象而是使用缓存中的对象,,如果超出范围则需要新建立对象。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liangpei2008/archive/2010/01/30/5272501.aspx