JavaSE面试题(六):泛型
Q:什么是泛型?
Java泛型( generics)是JDK 5中引⼊的⼀个新特性, 允许在定义类和接口的时候使⽤类型参数( type parameter) 。
声明的类型参数在使⽤时⽤具体的类型来替换。泛型最主要的应⽤是在JDK 5中的新集合类框架中。
泛型最⼤的好处是可以提⾼代码的复⽤性。以List接口为例,我们可以将String、 Integer等类型放⼊List中, 如不⽤泛型, 存放String类型要写⼀个List接口, 存放Integer要写另外⼀个List接口, 泛型可以很好的解决这个问题。
Q:什么是类型擦除?
通过类型参数合并,将泛型类型实例关联到同一份字节码上。
编译器只为泛型类型生成一份字节码,并将其实例关联到这份字节码上。
泛型是通过类型擦除来实现的,编译器在编译时擦除了所有类型相关的信息,所以在运行时不存在任何类型相关的信息。例如 List在运行时仅用一个List来表示。这样做的目的,是确保能和Java 5之前的版本开发二进制类库进行兼容。你无法在运行时访问到类型参数,因为编译器已经把泛型类型转换成了原始类型。
类型擦除的主要过程如下:
1.将所有的泛型参数用其最左边界(最顶级的父类型)类型替换。
2.移除所有的类型参数。
Q:List<?> 和List<Object>的区别?
List 是一个未知类型的List,而List 其实是任意类型的List。
可以把List, List赋值给List,却不能把List赋值给 List。
Q:什么是泛型中的限定通配符和非限定通配符 ?
限定通配符:
对类型进行了限制。有两种限定通配符:
一种是 它通过确保类型必须是T的子类来设定类型的上界,
另一种是它通过确保类型必须是T的父类来设定类型的下界。
泛型类型必须用限定内的类型来进行初始化,否则会导致编译错误。
非限定通配符:
表示了非限定通配符,因为可以用任意类型来替代。
Q:泛型中K T V E ?object等的含义 ?
E - Element (在集合中使用,因为集合中存放的是元素)
T - Type(Java 类)
K - Key(键)
V - Value(值)
N - Number(数值类型)
?- 表示不确定的java类型(无限制通配符类型)
Object - 是所有类的根类,任何类的对象都可以设置给该Object引用变量,使用的时候可能需要类型强制转换,但是用使用了泛型T、E等这些标识符后,在实际用之前类型就已经确定了,不需要再进行类型强制转换。
Q:编写一个泛型方法,让它能接受泛型参数并返回泛型类型 ?
1 public V put(K key, V value) {2 return cache.put(key, value);3 }
免责声明:内容来源于公开网络,若涉及侵权联系尽快删除!
【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!
Java开发高端课程免费试学
大咖讲师+项目实战全面提升你的职场竞争力
- 海量实战教程
 - 1V1答疑解惑
 - 行业动态分析
 - 大神学习路径图
 
相关推荐
更多
							
									2024-07-01
							
							
						
							
									2024-04-08
							
							
						
            Java开班时间
- 
                    
北京 丨 10月31日
火速抢座 - 
                    
上海 丨 10月31日
火速抢座 - 
                    
广州 丨 10月31日
火速抢座 - 
                    
兰州 丨 10月31日
火速抢座 - 
                    
杭州 丨 10月31日
火速抢座 - 
                    
南京 丨 10月31日
火速抢座 - 
                    
沈阳 丨 10月31日
火速抢座 - 
                    
大连 丨 10月31日
火速抢座 - 
                    
长春 丨 10月31日
火速抢座 - 
                    
哈尔滨 丨 10月31日
火速抢座 - 
                    
济南 丨 10月31日
火速抢座 - 
                    
青岛 丨 10月31日
火速抢座 - 
                    
烟台 丨 10月31日
火速抢座 - 
                    
西安 丨 10月31日
火速抢座 - 
                    
天津 丨 10月31日
火速抢座 - 
                    
石家庄 丨 10月31日
火速抢座 - 
                    
保定 丨 10月31日
火速抢座 - 
                    
郑州 丨 10月31日
火速抢座 - 
                    
合肥 丨 10月31日
火速抢座 - 
                    
太原 丨 10月31日
火速抢座 - 
                    
苏州 丨 10月31日
火速抢座 - 
                    
武汉 丨 10月31日
火速抢座 - 
                    
成都 丨 10月31日
火速抢座 - 
                    
重庆 丨 10月31日
火速抢座 - 
                    
厦门 丨 10月31日
火速抢座 - 
                    
福州 丨 10月31日
火速抢座 - 
                    
珠海 丨 10月31日
火速抢座 - 
                    
南宁 丨 10月31日
火速抢座 - 
                    
东莞 丨 10月31日
火速抢座 - 
                    
贵阳 丨 10月31日
火速抢座 - 
                    
昆明 丨 10月31日
火速抢座 - 
                    
洛阳 丨 10月31日
火速抢座 - 
                    
临沂 丨 10月31日
火速抢座 - 
                    
潍坊 丨 10月31日
火速抢座 - 
                    
运城 丨 10月31日
火速抢座 - 
                    
呼和浩特丨10月31日
火速抢座 - 
                    
长沙 丨 10月31日
火速抢座 - 
                    
南昌 丨 10月31日
火速抢座 - 
                    
宁波 丨 10月31日
火速抢座 - 
                    
深圳 丨 10月31日
火速抢座 - 
                    
大庆 丨 10月31日
火速抢座 
					
								
						【热点话题】
					
					
								
								
                    
                    
            
            
            
            
                    
                    
                    
                    
                    
                    



				
				
				
				
				400-111-8989
			
				
				lihm@tedu.cn
			
	
