java高级技术总结 3

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

自定义泛型 用于放置泛型的类型参数的尖括号应出现在方法的其他所有修饰符之后和在方法的返回类型之前,也就是紧邻返回值之前。按照惯例,类型参数通常用单个大写字母表示。 l交换数组中的两个元素的位置的泛型方法语法定义如下: static <E> void swap(E[] a, int i, int j) { E t = a[i]; a[i] = a[j]; a[j] = t; }//或用一个面试题讲:把一个数组中的元素的顺序颠倒一下 只有引用类型才能作为泛型方法的实际参数,swap(new int[3],3,5);语句会报告编译错误。 除了在应用泛型时可以使用extends限定符,在定义泛型时也可以使用extends限定符,例如,Class.getAnnotation()方法的定义。并且可以用&来指定多个边界,如<V extends Serializable & cloneable> void method(){} l普通方法、构造方法和静态方法中都可以使用泛型。 l也可以用类型变量表示异常,称为参数化的异常,可以用于方法的throws列表中,但是不能用于catch子句中。 l在泛型中可以同时有多个类型参数,在定义它们的尖括号中用逗号分,例如:public static <K,V> V getValue(K key) { return map.get(key);} 类加载器 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader 类加载器也是Java类,因为其他是java类的类加载器本身也要被类加载器加载,显然必须有第一个类加载器是java类,这正是BootStrap. lJava虚拟机中的所有类装载器采用具有父子关系的树形结构进行组织,在实例化每个类装载器对象时,需要为其指定一个父级类装载器对象或者默认采用系统类装载器为其父级类加载。

加载机制: 当Java虚拟机要加载一个类时,到底派出哪个类加载器去加载呢? 首先当前线程的类加载器去加载线程中的第一个类。

[1][2]

那么前世我的目光一定一刻都没从你身上离开过吧!

java高级技术总结 3

相关文章:

你感兴趣的文章:

标签云: