包装类:
为什么要有包装类:
.为了完善面向对象的三个特性(数字不是对象,无法调用方法)
典型包装类:
Integer类
继承结果:extends Number
Number抽象类:
//获取 int 类型的值
public abstract int intValue();
//获取 long 类型的值
public abstract long longValue();
public abstract float floatValue();
public abstract double doubleValue();
public byte byteValue() {
return (byte)intValue();
}
public short shortValue() {
return (short)intValue();
}
故Integer类中必重写了上述方法
也就涉及到了Integer,int,String三个类的互相转化:
Integer--------->String
valueOf()方法(取出某种数据的方法);如:
Integer integer= new Integer(123);
String str=String.valueOf(integer);
String------------->Integer
Integer integer1= Integer.valueOf(str);
Integer------------>int
int a =integer1.intValue();
int------------------>Integer
Integer integer2 = new Integer(int);
便捷版:自动装箱与自动拆箱
指int类与Integer类可以不经过任何的操作,实现两者之间的转化;
理论根据:语法糖
/自动装箱
Integer integer3 = 10;
Integer integer3 = Integer.valueOf(10);
//自动拆箱
int intValue = integer3;
int intValue = integer3.intValue();
Integer类型的缓存设计(配合自动装,拆箱的设计):
-128——127,有缓存,无需new对象,之后则需要new对象
Integer integer = 88; Integer integer =188;
Integer integer1=88; Integer integer1=188;
sout(integer==integer1) sout(integer==integer1)
------true -----false
大数据运算与小数据运算:BigInteger(超过Long的数据)与BigDecimal类(带有小数的数据)
随机数类:Random类:
Random random = new Random();
random.nextInt(bound);//bound:指波动范围,30即为0-30;