首页 > 编程知识 正文

java框架面试题,Java常见面试题

时间:2023-05-04 18:47:43 阅读:137246 作者:2666

《关于Java泛型的面试题》由会员共享,可在线阅读。 更多相关《关于Java泛型的面试题(4页珍藏版)》请在组装图网上搜索。

1、Java通用问题1、Java通用问题1、使用Java通用有什么好处这是各种Java通用面试中最先被问到的问题之一,主要集中在初级和中级面试。 具有Java1.4之前开发背景的人知道,将对象存储在集合中并在使用前进行类型转换是多么不方便。 通用地防止了那种情况的发生。 提供编译时类型的安全性,确保只有正确类型的对象可以包含在集合中,并且在运行时不会发生ClassCastException。 2. Java的通用是如何工作的,什么是类型擦除,这是一个更好的通用问题。 通用性是通过类型擦除实现的,因为编译器在编译时清除了所有类型的相关信息。

2、运行时不存在任何类型的相关信息。 例如,List在运行时只由一个List表示。 其目的是确保与使用Java 5或更早版本开发的二进制库的兼容性。 在运行时无法访问类型参数,因为编译器已将泛型类型转换为原始类型。 根据对这个通用问题的回答情况,会出现以下问题:为什么通用是通过类型擦除实现的,或者它是否会向我们展示导致编译器错误的错误的通用代码? 有关详细信息,请阅读Java通用性是如何工作的。 3 .什么是通用的限定通配符和非限定通配符? 这是另一个非常受欢迎的Java通用问题。 限定通配符会限制类型。 通配符有两种。 一种是通过保证类型必须是t的子类来设置类型的上限。

3、一种是通过保证类型必须是t的父类来设定类型的下界。 泛型类型必须用限制内的类型初始化。 如果不初始化,将出现编译错误。 另一方面,非限定通配符表示可以用任意类型代替。 有关详细信息,请参阅我的文章通用性中的限定通配符和非限定通配符的区别。 4. List和List之间的差异与前面的问题相关。 面试官有时会用这个问题来评价对通用性的理解,而不是直接问什么是限定通配符和非限定通配符。 这两个List的宣言都是限定通配符的例子,List可以接受从t继承的类型的List,List也可以接受由任何t的父类构成的List。 例如,List可以接受List或List。 有关详细信息,请参阅此部分中显示的连接。

4、5 .接受泛型参数,返回泛型类型并创建泛型类型并不难。 您必须使用泛型类型来代替原始类型,例如使用t、E or K和v等公认的类型占位符。 有关泛型方法的示例,请参见Java集合类框架。 在最简单的情况下,通用的方法是这样使用public V putK key,V value return cache.putkey,value; 6 .如何在6. Java中使用泛型类型创建参数化类,这是上一个问题的扩展。 面试官可能会被要求建立一个通用类型的安全班级,而不是制定通用方法。 重要的是使用泛型类型代替原始类型,并使用JDK中使用的标准占位符。 7 .编写实现LL的通用程序。

5、RU高速缓存对于喜欢Java编程的人来说相当于练习。 给我一些提示,链接散列可以用于实现固定大小的LRU缓存。 当LRU缓存已满时,将最旧的键值对从缓存中移出。 LinkedHashMap提供了一个名为removeEldestEntry的方法。 此方法由put和putAll调用,以删除最旧的键值对。 当然,如果已经编写了可执行的JUnit测试,也可以自由地编写自己的实现代码。 8 .可以将List传递给接收List参数的方法吗? 对于不太熟悉通用性的人来说,这个Java通用主题看起来很困惑。 乍一看String是Object,所以应该可以使用list。

6、需要List的地方,但不是。 如果你真的这么做,就会出现编译错误。 如果你再仔细想想,你就会发现Java这样做是有意义的。 因为List可以存储任何类型的对象,如String、Integer等,但List只能用于存储Strings。 列表对象列表; 列表字符串列表; 对象列表字符串列表; compilationerrorincompatibletypes9. array是否可以使用泛型类型? 这可能是Java泛型问题中最简单的一个。 当然,前提是要知道Array实际上不支持泛型类型。 所以Joshua Bloch在Effective J。

7、ava一书建议用List代替Array。 因为List可以提供编译期间的类型安全保证,但不能提供Array。 10 .如何防止javac中的未检查类型警告如果将泛型类型和原始类型组合使用,Java 5的javac编译器将生成未检查类型的警告,例如,如以下代码所示: 例如,ListrawList new ArrayList注意Hello.java使用了被称为未检查或不安的操作; 可以用SuppressWarnings“unchecked”注释屏蔽此警告。 Java泛型问题的补充更新我手头拿到了一些Java泛型问题与大家分享。 这些问题集中在泛型和原始类型的区别,以及我们能否使用Object。

8、使用通配符代替限定等,Java中List和原始型List的区别原始型和参数型的主要区别

是,在编译时编译器不会对原始类型进行类型安全检查,却会对带参数的类型进行检 查,通过使用Object作为类型,可以告知编译器该方法可以接受任何类型的对象,比如String或Integer。这道题的考察点在于对泛型中原始类 型的正确理解。它们之间的第二点区别是,你可以把任何带参数的类型传递给原始类型List,但却不能把List传递给接受 List的方法,因为会产生编译错误。更多详细信息请参阅Java中的泛型是如何工作的。Java中List和List之间的区别是什么这道题跟上一道题看起来很像,。

9、实质上却完全不同。List是一个未知类型的List,而List其实是任意类型的List。你可以把List, List赋值给List,却不能把List赋值给 List。List listOfAnyType;ListlistOfObject new ArrayList;ListlistOfString new ArrayList;ListlistOfInteger new ArrayList;listOfAnyType listOfString; legallistOfAnyType listOfInteger; legallistOfObjectType List listOfStr。

10、ing; compiler error in-convertible types想了解更多关于通配符的信息请查看Java中的泛型通配符示例List和原始类型List之间的区别.该题类似于“原始类型和带参数类型之间有什么区别”。带参数类型是类型安全的,而且其类型安全是由编译器保证的,但原始类型List却不是类型安全 的。你不能把String之外的任何其它类型的Object存入String类型的List中,而你可以把任何类型的对象存入原始List中。使用泛型的 带参数类型你不需要进行类型转换,但是对于原始类型,你则需要进行显式的类型转换。List listOfRawTypes new Array。

11、List;listOfRawTypes.add“abc”;listOfRawTypes.add123; 编译器允许这样 运行时却会出现异常String item String listOfRawTypes.get0; 需要显式的类型转换item String listOfRawTypes.get1; 抛ClassCastException,因为Integer不能被转换为StringListlistOfString new ArrayList;listOfString.add“abcd”;listOfString.add1234; 编译错误,比在运行时抛异常要好item listOfString.get0; 不需要显式的类型转换 编译器自动转换这些都是Java泛型面试中 频繁出现的问题及其答案。所有这些面试题都不困难,其实它们都是基于泛型的基础知识。任何对泛型有不错了解的Java程序员都肯定熟知这些泛型题目。如果 你有任何好的面试题,不管是在什么面试中碰到的,或者如果你想知道任何Java泛型面试题的答案。。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。