核心Java面试问题和答案(三)
核心Java面试问题和答案(三)
I Java注释是什么?Java注释提供关于代码的信息,并且它们对注释的代码没有直接的影响。
注释是在Java 5中引入的。
注释是关于嵌入程序本身的程序的元数据。
它可以由注释解析工具或编译器解析。
我们还可以在编译时指定注释可用性,也可以在运行时之前指定。
Java内置注释是@重写、@弃用和@抑抑警告。
请阅读更多的java注释。
II 什么是Java反射API?
Java反射API提供了检查和修改Java应用程序运行时行为的能力。
我们可以检查java类、接口、enum,并获取它们的方法和字段细节。
反射API是一个高级的主题,我们应该在正常的编程中避免它。
反射API使用可以通过调用私有构造器i来打破单例模式这样的设计模式。
违反了访问修饰符的规则。
尽管我们在正常的编程中不使用反射API,但它是非常重要的。
我们不能有任何框架,如Spring、Hibernate或诸如Tomcat之类的服务器,而没有反射API的JBoss。
它们调用适当的方法,并通过反射API实例化类,并将其用于其他处理。
III 什么是java的组合?
组合是在类中实现hasa-a关系的设计技术。
我们可以使用对象组合来进行代码重用。
Java组合是通过使用引用其他对象的实例变量来实现的。
使用组合的好处是我们可以控制其他对象的可见性到客户端类,并且只重用我们需要的东西。
JAVA/264.html">在Java组合示例中,请阅读更多示例。
IV 组合比继承有什么好处?
java编程的最佳实践之一是“支持组合而不是继承”。
一些可能的原因是:
超类中的任何变化都可能影响子类,即使我们可能不使用超类方法。
例如,如果我们在子类中有一个方法测试(),突然有人在超类中引入了一个方法测试(),我们将会在子类中得到编译错误。
组合永远不会面对这个问题,因为我们只使用我们需要的方法。
继承将所有的超类方法和变量都暴露给客户端,如果我们在设计超类时没有控制,它就会导致安全漏洞。
组合允许我们提供对方法的受限访问,因此更安全。
我们可以在组合中获得运行时绑定,在编译时,继承将类绑定在一起。
因此,组合在调用方法时提供了灵活性。
您可以阅读更多关于java组合的好处。
V 如何在Java中对自定义对象进行排序?
我们需要实现可比较的接口来支持集合中定制对象的排序。
可比较的接口比较了(T obj)方法,该方法用于排序方法,并且提供了这种方法实现,我们可以提供默认的方法来对定制对象集合进行排序。
但是,如果您想根据不同的标准进行排序,例如根据薪水或年龄对员工集合进行排序,那么我们可以创建比较器实例并将其作为排序方法。
要了解更多细节,请阅读Java可比和比较器。
VI java中的内部类是什么?
我们可以在类中定义一个类,它们被称为嵌套类。
任何非静态的嵌套类都称为内部类。
内部类与类的对象相关联,它们可以访问外部类的所有变量和方法。
由于内部类与实例相关联,所以我们不能在其中包含任何静态变量。
我们可以在类内部有本地内部类或匿名内部类。
有关更多详细信息,请阅读java内部类。
VII什么是匿名内部类?
一个没有名称的本地内部类称为匿名内部类。
在一个语句中定义和实例化一个匿名类。
匿名内部类总是扩展一个类或实现一个接口。
由于匿名类没有名称,所以不可能为匿名类定义构造函数。
匿名内部类只有在定义它的时候才可以访问。
VIII什么是Java类的类加载器?
Java Classloader是一个程序,当我们想要访问任何类时,将字节码程序加载到内存中。
我们可以通过扩展类加载器类和重写loadClass(String name)方法来创建自己的类加载器。
在java类加载器中学习更多。
IX 什么是不同类型的类加载器?
Java中有三种类型的内置类装入器:
引导类装入器——它装入JDK内部类,通常装入rt.jar和其他核心类。
扩展类装入器——它从JDK扩展目录装入类,通常是javahome/lib/ext目录。
系统类装入器——它从当前类路径装入类,这些类可以在调用程序时使用-cp或-classpath命令行选项来设置。
X java中的三元运算符是什么?
Java三元运算符是唯一一个有三个操作数的条件运算符。
它是对if-then-else语句的一个替换,在java编程中使用了很多。
我们可以使用三元运算符if-else条件,甚至可以使用嵌套的三元运算符交换条件。
在java三元操作符中可以找到一个示例:
System.out.println((i==5) ? "i=5":((i==10) ? "i=10":"i is not equal to 5 or 10"));
http://www.itemperor.com/a/JAVA/257.html
原文链接:http://www.jxszl.com/biancheng/JAVA/446609.html