基本数据类型的封装类型
1.基本数据类型与封装类的一一对应
byte-Byte
short-Short
int-Integer
long-Long
char-Character
boolean-Boolean
float-Float
double-Double
2.自动装箱与自动拆箱
-自动装箱
把基本数据类型的变量赋值给封装类型变量
int i=150;
Integer i1=i;
Integer i2=150;
System.out.println(i1);
System.out.println(i2);
//i1和i2在超过127后,在Integer中以新的对象存储,而不以数存储
System.out.println(i1==i2);
System.out.println(i1.equals(i2));
//==与equals也存在不同
-自动拆箱
把封装数据类型变量转为基本数据类型变量
int i4= new Integer(30);
int i5=i2;
//装箱过的才可以拆箱
System.out.println(i4);
System.out.println(i5);
<>中不可以写基本数据类型,要用封装数据类型去替代
3.泛型的使用
作用:保证了创建的数组可以存任何类型的的数据,但是每一个数组只能存一种类型的数据
泛型的声明:类名的右边加上<>,其中写一个通配符,任何字母,单词都可以,最好大写
使用:-声名参数类型
public class ArraylistDIY<E> {
public void add2(E e){
//判断容量与下标的大小
if(index==length){
//扩容
int newlength=length+(length>>1);
Object []newarray =new Object[newlength];
for(int t=0;t<length;t++){
newarray[t]=Array[t];
}
Array=newarray;
}
Array[index] =e;
index++;
size++;
}
ArraylistDIY arraylistDIY=new ArraylistDIY(10);
//创建对象后,自动调用构造方法
arraylistDIY.<String>add2("tgv");
-声明返回值类型
public E get2(int index){
if(index==length){
throw new ArrayIndexOutOfBoundsException("index超出范围");
}
else{
Object ob =Array[index];
return (E)ob;
}
}
System.out.println(arraylistDIY.get2(6));
问题:
1.装箱与拆箱是干什么的?
在Java1.5下,不能直接向集合(collection)中放入原始类型值,因为集合只接收对象,通常这种情况下,做法应该是将这些原始类型的值转换成对象,然后将这些转换的对象放入集合中。但在某些程度上,使代码不够简洁,Java1.5下引入具有在原始类型和对象类型自动转换的装箱和拆箱机制
2.equals与==的区别
equals是判断两个变量或实例所指向的内存空间的值时表示相同
==是判断两个变量或实例是不是指向同一个内存空间