basic java-5

1.数组定义不能使用泛型

ArrayList<String> [] args = new ArrayList<String>()[2];-----------------------编译错误

2.泛型的实际类型必须是引用类型,不能是基本类型(自动装箱除外)

 

3.反射不能通过泛型参数来确定泛型的具体类型(Vetor<Date>),但可以把泛型放到一个方法体中,然后用反射该方法的方法获得泛型的实际类型,sample:

Method method = ClassName.class.getMethod("方法名",方法参数类型.class);
//-----------方法参数Vetor<Date>,应写为Vetor.class而不是Vetor<Date>.class,因为编译完后jvm会去泛型类型,到时候Vetor<Date>就是Vetor----//
Type [] types = method.getGenericParameterTypes();      //得到泛型参数数组
ParameterizedType tType = (ParameterizedType)types[0];    //实现了Type的ParameterizedType类
tType.getActualTypeArguments()[0]                 //可能会有多个泛型参数,所以是数组

 

4.3个类加载器:

   BootStrap      ExtClassLoader      AppClassLoader形成树型结构,BootStrap是用c++写的集成到jvm中,因此它并不是一个类

BootStrap-->负责加载jre自带的类

ExtClassLoade-->顾名思义,加载扩展类(一般在ext文件夹下)

AppClassLoader-->我们写的一般的类

 

5.类加载的委托

  从最上层的类加载器BootStrap开始去加载,没找到就找下一级类加载器直到找到为止。例如:能自己写一个java.lang.System可以吗?

答:1)可以,把我们写的类指定一个确定的类加载器加载

    2)不可以,如果我们没指定类加载器,就会启动类加载委托机制,BootStrap就把jre自带的System类加载进来了,我们写的类就不会再加载了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值