包装类&泛型

一·包装类

包装对象

哪些都为包装类呢

比如byte->Byte

int->Integer

short->Short

char->Character

long->Long

float->Float

double->Double

bool->Boolean

 

何为装箱拆箱

 先来说下装箱//将基本数据类型转换成对应的包装类

拆箱//将包装类转换成对应的基本数据类型

int i=10;
Integer ii=Integer.valueof(i);
Integer j=new Integer(i);
//将基本数据类型转换成对应的包装类,称为装箱
int a=ii.intValue();
//将包装类转换成对应的基本数据类型,称为拆箱
自动装箱,自动拆箱
int i=10;
Integer ii=i;
Integer ij=(Integer)i;//自动装箱
int j=ii;
int jj=(int)ii;//自动拆箱
Integer注意事项
Integer a=127;
Integer b=127;
Integer c=200;
Integer d=200;
System.out.println(a==b);//true
System.out.println(c==d);//false
//在小于-128大于127后,会new一个
//Integer装箱源码
public static Integer valueOf(int i){ 
  if(i>=-128 && i<=IntegerCache.high)//-128~127 若没有设置,则IntegrCache.high默认为127
    return IntegerCache.cache[i+128];//(一)此时,Integer.valueOf(int i)返回的是缓存的Integer对象
  else
    return new Integer(i);//(二)返回一个新建的Integer对象
}

何为泛型

 

实现一个类,使之存放各种数据类型的数组

 

class Myarray <T>{
    public Object[]array=new Object[10];
    public void setValue(int pos ,T val)//jvm没有泛型概念,运行时T全部变成Object,(擦除机制)
    {
        this.array[pos]=val;

    }
    public T getValue(int pos)
    {
        return (T)array[pos];
    }
    public Object[] getArray()
    {
        return array;

    }
}
public class TestDemo {





    public static void main(String[]args){
        Myarray<String> Myarry1=new Myarray<>();
        Myarry1.setValue(0,"sas");
        System.out.println( Myarry1.getValue(0));
       
        


    }
}

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值