wordpress关停网站,北京网站优化wyhseo,免费建站平台哪家好,仿第四城地方门户网站模板Java面试中的通用面试问题在相当长的时间内在Java 5周围越来越普遍#xff0c;许多应用程序都转移到Java 5上#xff0c;并且几乎所有新的Java开发都发生在Tiger#xff08;Java 5的代号#xff09;上。 泛型和Java 5功能#xff08;例如Enum#xff09;的重要性#xf… Java面试中的通用面试问题在相当长的时间内在Java 5周围越来越普遍许多应用程序都转移到Java 5上并且几乎所有新的Java开发都发生在TigerJava 5的代号上。 泛型和Java 5功能例如Enum的重要性Collection实用程序在Java面试中越来越受欢迎。 如果您不熟悉有界和无界的通配符 泛型如何在内部工作 类型擦除以及是否熟悉用Java编写参数化的泛型类和方法那么泛型采访问题会变得非常棘手。 准备进行仿制药面试的最佳方法是针对仿制药的各种功能尝试最佳的简单程序。 无论如何在这篇Java访谈文章中我们将看到一些流行的访谈问题以及有关Java中泛型的答案。 1. Java中的泛型是什么 使用泛型有什么优势 这是在任何Java访谈中都针对泛型提出的首批访谈问题之一主要是初学者和中级。 那些来自Java 5之前的背景的人知道将对象存储在Collection中然后在使用它之前将其转换回正确的Type是多么不便。 泛型阻止了这些。 它提供了编译时的类型安全性并确保仅在集合中插入正确的Type并在运行时避免ClassCastException。 2.泛型如何在Java中工作 什么是类型擦除 这是泛型中较好的面试问题之一。 泛型使用Type Erase实现编译器在编译时擦除所有与类型相关的信息并且在运行时不提供与类型相关的信息。 例如List String在运行时仅由List表示。 这样做是为了确保与Java 5之前开发的库具有二进制兼容性。您在运行时无权访问Type参数并且编译器在运行时将泛型转换为Raw类型 。 根据您的回答您可以根据该通用面试问题得到很多后续问题例如 为什么使用类型擦除来实现泛型或提供一些无效的泛型代码而导致编译器错误。 阅读我的文章泛型如何在Java中工作以获取更多详细信息 3.泛型中有界和无界通配符是什么 这是泛型上另一个非常流行的Java面试问题 。 有界通配符是对Type施加约束的通配符。 有两种有界通配符 扩展T通过确保类型必须是T和的子类来施加上限。 超级T其中通过确保类型必须施加的下限必须是T的超类。此泛型类型必须在边界内用Type实例化否则将导致编译错误。 另一方面表示和无界类型因为可以用任何类型替换。 有关我在Generics中有界和无界通配符之间的差异之处请参见我的更多信息。 4. List 有 什么区别 扩展T 和 List 超级T 这与以前的仿制药面试问题有关有一段时间而不是询问什么是有界和无界通配符访调员会提出此问题以评估您对仿制药的理解。 两个List声明都是有界通配符的示例List 扩展T将接受任何类型为扩展T的列表而列表 super T将接受任何类型为T的超类的List。例如List 扩展Number可以接受List Integer或List Float。 在上面的链接中查看更多信息。 5.如何编写一个接受泛型参数并返回泛型的泛型方法 编写通用方法并不困难而不是使用原始类型您需要使用通用类型例如TE或KV它们是TypeElement和KeyValue的占位符。 查看Java Collection框架以获取泛型方法的示例。 最简单的通用方法如下所示 public V put(K key, V value) {return cache.put(key, value);
} 6.如何使用泛型用Java写参数化类 这是以前的Java泛型采访问题的扩展。 而不是要求编写泛型方法Interviewer可能会要求使用泛型编写类型安全的类 。 再次关键是要使用原始类型而不是使用原始类型而必须始终使用JDK中使用的标准占位符。 7.编写程序以使用泛型实现LRU缓存。 这是喜欢Java编码的任何人的练习。 一个提示是可以使用LinkedHashMap实现固定大小的LRU缓存当缓存已满时需要删除最旧的条目。 LinkedHashMap提供了一个称为removeEldestEntry的方法该方法由put和putAll调用可用于指示删除最旧的条目。 只要您具有书面的工作版本以及单元测试就可以自由提出自己的实现。 8.是否可以将 List String 传递给接受List Object的方法 Java中的这个通用面试问题可能会使任何对Generics不太熟悉的人感到困惑因为乍一看它看起来像String是对象因此可以在需要List Object的地方使用List String但这不是事实。 这将导致编译错误。 如果您更进一步这确实是有道理的因为List Object可以存储任何东西包括StringInteger等但是List String只能存储String。 ListObject objectList;
ListString stringList;objectList stringList; //compilation error incompatible types 9.我们可以在数组中使用泛型吗 如果您知道Array不支持Generics的事实这可能是Java中最简单的泛型访谈问题这就是为什么Joshua bloach建议使用List而不是Array的原因因为List可以提供比Array更可靠的编译时类型安全性 。 10.如何抑制Java中未经检查的警告 如果使用合并原始类型和泛型类型则Java 5的Javac编译器会生成未经检查的警告例如 ListString rawList new ArrayList()Note: Hello.java uses unchecked or unsafe operations.; 可以通过使用SuppressWarnings“ unchecked”注释来取消显示。 这些是Java中常见的泛型面试问题和答案 。 这些通用面试问题都不是强硬的而是基于通用的基础知识。 任何对泛型有相当了解的Java程序员都必须熟悉Java中的这些泛型问题。 如果您在任何面试中都提出了其他很好的通用问题或者您正在寻找Java中任何通用面试问题的答案那么请在评论部分中发布。 参考我们的JCG合作伙伴 Javin Paul在Javarevisited博客上针对程序员和开发人员的Java泛型的10个访谈问题 。 翻译自: https://www.javacodegeeks.com/2012/07/java-generics-interview-questions.html