作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)
Java的基本数据类型有:byte,char,short,int,long,float,double,boolean。每一种类型都有一个包装类与之对应,将一些常用方法封装起来,便于基本数据类型之间的转换,对应关系为:
基本类型 | 包装类 |
---|---|
byte | Byte |
char | Char |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
接下来详细讲解一下Integer,其他的比如Float,Double类的属性,构造方法和成员方法基本上跟Integer类似,所以只要弄懂一个包装类,其他的举一反三。
1.Integer类
属性
//基本类型,有了该属性就可以将Integer转换为其他数据类型
private final int value;
//最大值
@Native public static final int MIN_VALUE = 0x80000000;
//最小值
@Native public static final int MAX_VALUE = 0x7fffffff;
构造方法:
public Integer(int value) {
this.value = value;
}
public Integer(String s) throws NumberFormatException {
this.value = parseInt(s, 10);
}
常用方法
方法 | 备注 |
---|---|
int parseInt(String s) | 如果s为null或者字符串不是纯数字会抛异常 |
Integer valueOf(String s/int i) | 如果s为null或者字符串不是纯数字会抛异常 |
byte byteValue(), short shortValue() ,float floatValue(),double doubleValue() | 将对象转换为其他的基本数据类型 |
重写方法:
1.重写equals方法,比较的是值的大小
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
Integer i1 = new Integer(78);
Integer i2 = new Integer(78);
System.out.println(i1.equals(i2));//true
Integer使用==比较
一般情况下,不推荐包装类使用==来比较,应该使用equals比较
Integer i1 = 10;
Integer i2 = 10;
System.out.println(i1==i2);//true
Integer i3 = 1000;
Integer i4 = 1000;
System.out.println(i3==i4);//false
Integer i5 = new Integer(1000);
Integer i6 = new Integer(1000);
System.out.println(i5==i6);//false
Integer在初始化的时候会把-128到127之间的数进行缓存,在这个区间内使用==比较是true,所以i1== i2是true,而只要超过这个区间就是false,所以i3==i4是false,i5和i6只要学过Java的都知道是false。