前情提要
最近也是面临着找工作的压力,所以重新复习下面试中的八股文,由于本人能力问题,可能对于个人觉得相对简单的问题,或者说不会的问题就不会进行记录,如果有想要学习或者说了解更多的只是的话,可以去up主的视频下进行观看学习,感谢大家的观看和讨论
up主地址:https://www.bilibili.com/vide...
正文
一、extends和super的作用?
答:<? extends T>:包括T在内的任何T的子类; <? super T>:包括T在内任何T的父类
二、泛型是如何进行限制的?
1.在泛型类中进行限制
public class YkList<E extends Number> {
public void add(E e){
//...
}
}
public class Main {
public static void main(String[] args) {
//错误使用1
//YkList<String> ykList = new YkList();
//正确使用1
YkList<Integer> ykList1 = new YkList<>();
//正确使用2,这两种正确使用的区别我们在下面的2中讲
YkList ykList2 = new YkList();
}
}
2.在泛型方法中进行限制
public class Main {
public static void main(String[] args) {
//错误使用1
//YkList<String> ykList = new YkList();
//正确使用1,无法添加Float类型,add参数指定为Integer
YkList<Integer> ykList1 = new YkList<>();
ykList1.add(new Float("1"));
//正确使用2,能添加Float类型,未指定add参数,只要是Number的子类的皆可
YkList ykList2 = new YkList();
ykList2.add(new Float("1"));
}
}
三、如何理解java是假泛型
public class Main {
public static void main(String[] args) {
YkList<Integer> ykList1 = new YkList<>();
YkList ykList2 = new YkList();
/*返回值为true,表明运行时拿到的类都是ykList,泛型只是在编译的时候进行检查而已
在java中类信息不含泛型的相关信息 */
System.out.println(ykList1.getClass().equals(ykList2.getClass()));
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。