黑马程序员 (9)JAVA高新技术 3
来源:互联网 发布:p2p理财安全吗 知乎 编辑:程序博客网 时间:2024/05/01 07:04
ArrayList后尖括号可以规定集合中元素的类型,如果写入不是一个类型的话,编译器会报错,这样防止了强制类型转换带来的逻辑错误。
泛型定义编译完了以后,参数类型自动舍弃,意思就是虚拟机不知道你所规定的泛型类型了,称之为去类型化。
泛型可以通过反射方法调用函数加入集合中不是泛型所指定的成员变量,说明泛型作用范围在编译阶段不是执行阶段。
泛型通配符,Collection<?> collection.无论泛型指定的集合类型是什么,都有.size方法。然后可以通过for迭代输出。
Map.Entry可以返回一个集合实例化的对象,使我们不必再得到关键字以后再返回MAP进行查找,而直接操作集合中的一个对象。
// TODO Auto-generated method stub
System.out.println(
ClassLoaderTest.class.getClassLoader().getClass().getName()
);
System.out.println(
System.class.getClassLoader()
);
System.out.println("xxx");
ClassLoader loader = ClassLoaderTest.class.getClassLoader();
while(loader != null){
System.out.println(loader.getClass().getName());
loader = loader.getParent();
}
System.out.println(loader);
//System.out.println(new ClassLoaderAttachment().toString());
System.out.println("xxx2");
Class clazz = new MyClassLoader("itcastlib").loadClass("cn.itcast.day2.ClassLoaderAttachment");
Date d1 = (Date)clazz.newInstance();
System.out.println(d1);
类加载器有委托机制,加载器都是向父类查找,查找不到返回。
自己编写的类加载器必须继承ClassLoader,并应覆盖findClass方法。用byte []b = loadClassData(name);return defineClass(name,b,0,b.length)传递字节数组变成一个类。
泛型定义编译完了以后,参数类型自动舍弃,意思就是虚拟机不知道你所规定的泛型类型了,称之为去类型化。
泛型可以通过反射方法调用函数加入集合中不是泛型所指定的成员变量,说明泛型作用范围在编译阶段不是执行阶段。
泛型通配符,Collection<?> collection.无论泛型指定的集合类型是什么,都有.size方法。然后可以通过for迭代输出。
Map.Entry可以返回一个集合实例化的对象,使我们不必再得到关键字以后再返回MAP进行查找,而直接操作集合中的一个对象。
泛型方法引用类型不能是基本类型。
public class GenDemo {
public static void main(String[] args){
//定义泛型类Gen的一个Integer版本
Gen<Integer> intOb=new Gen<Integer>(88);
intOb.showType();
int i= intOb.getOb();
System.out.println("value= " + i);
System.out.println("----------------------------------");
//定义泛型类Gen的一个String版本
Gen<String> strOb=new Gen<String>("Hello Gen!");
strOb.showType();
String s=strOb.getOb();
System.out.println("value= " + s);
}
}
类加载机制getClassLoader方法。
// TODO Auto-generated method stub
System.out.println(
ClassLoaderTest.class.getClassLoader().getClass().getName()
);
System.out.println(
System.class.getClassLoader()
);
System.out.println("xxx");
ClassLoader loader = ClassLoaderTest.class.getClassLoader();
while(loader != null){
System.out.println(loader.getClass().getName());
loader = loader.getParent();
}
System.out.println(loader);
//System.out.println(new ClassLoaderAttachment().toString());
System.out.println("xxx2");
Class clazz = new MyClassLoader("itcastlib").loadClass("cn.itcast.day2.ClassLoaderAttachment");
Date d1 = (Date)clazz.newInstance();
System.out.println(d1);
}
通配符
public void addList(List<? super B> list)
{
list.add(new D()); //编译通过
}
类加载器有委托机制,加载器都是向父类查找,查找不到返回。
自己编写的类加载器必须继承ClassLoader,并应覆盖findClass方法。用byte []b = loadClassData(name);return defineClass(name,b,0,b.length)传递字节数组变成一个类。
- 黑马程序员 (9)JAVA高新技术 3
- 黑马程序员---Java高新技术(3)
- 黑马程序员--java高新技术
- 黑马程序员-java高新技术
- 黑马程序员----Java高新技术
- 黑马程序员--Java高新技术
- 黑马程序员--java高新技术--
- 黑马程序员--JAVA高新技术
- 黑马程序员:Java高新技术
- 黑马程序员-----java高新技术
- 黑马程序员-Java高新技术
- 黑马程序员-学习日记23(java高新技术 3 )
- 黑马程序员——java高新技术学习日记(3)
- 黑马程序员——Java高新技术(3)
- 黑马程序员—Java高新技术3
- 黑马程序员-Java高新技术笔记3
- 黑马程序员---Java高新技术学习笔记-3
- 黑马程序员 (7)JAVA高新技术 1
- twaver flex学习及资料网站
- Linux命令行屏幕分辨率(console resolution)调整
- Javascript和CSS浏览器兼容总结
- 删除dataGridView中单元格数据(某列) 方法一
- Android UI开发专题——各种Drawable
- 黑马程序员 (9)JAVA高新技术 3
- 重叠IO
- android中的图形图像-访问图片drawable
- FI--关于凭证的修改和冲销操作
- patch
- 2011.07.18
- ibatis的remapResults属性
- C#程序调用GAMS
- 我们互联网生活因家庭服务器改变