1.以10的等级进行自我评估—您在Java中的表现如何?
如果您不确定自己或对Java的熟练程度,这将是一个非常棘手的问题。如果听起来很熟悉,则应该降低一些。在此之后,您可能会根据所接受的级别获得问题。因此,例如,如果您说10,而不能回答一个相当困难的问题,那将是一个缺点。
2.解释Java 7和8之间的区别。
老实说,有很多差异。在这里,如果您可以列出最重要的那些,就足够了。您应该解释Java 8的新功能。有关完整列表,请访问原始网站:Java 8 JDK。
您应该知道的最重要的是:
3.您知道哪种类型的馆藏?
在这里您应该了解最重要的一些:
之后,您可能会遇到以下问题:何时应使用此特定工具,相对于其他工具有什么好处,如何存储数据以及幕后工作的数据结构。
在这里,最好的方法是尽可能多地了解这些收集类型,因为各种问题几乎是无穷无尽的。
4.对象类有哪些方法?
这是一个非常常见的问题,用于确定您对基础知识的熟悉程度。这些是每个对象都具有的方法:
该Object班,在java.lang包装,坐镇类层次结构树的顶端。每个类都是该类的直接或间接后代Object。您使用或编写的每个类都继承的实例方法Object。您不需要使用任何这些方法,但是,如果您选择使用这些方法,则可能需要使用特定于您的类的代码覆盖它们。Object本节将讨论从中继承的方法:
java.lang
Object
protected Object clone() throws CloneNotSupportedException
public boolean equals(Object obj)
protected void finalize() throws Throwable
public final Class getClass()
public int hashCode()
public String toString()
notify,notifyAll和wait方法Object都在一个程序,它在后面的课程中讨论,并不会在这里介绍的同步独立运行的线程的活动中发挥作用。这些方法有五种:
5.为什么 字符串对象在Java中是不可变的? 1.字符串池是唯一可能的,因为在Java中String是不可变的。这样,Java运行时可以节省大量Java堆空间,因为不同的String变量可以引用池中的相同String变量。如果String是不可变的,那么将不可能进行String实习,因为如果有任何变量更改了值,则它将反映在其他变量中。
2.如果String不可更改,那么它将对应用程序造成严重的安全威胁。例如,数据库用户名和密码作为String传递,以获取数据库连接,套接字编程主机和端口详细信息作为String传递。由于String是不可变的,因此其值无法更改。否则,任何黑客都可能更改参考值,从而导致应用程序中的安全问题。
3.由于String是不可变的,因此对于多线程是安全的,并且可以在不同线程之间共享单个String实例。这避免了为了线程安全而使用同步。字符串是隐式线程安全的。
5.由于String是不可变的,因此其哈希码将在创建时进行缓存,因此无需再次计算。这使其成为地图中某个键的理想候选者,并且其处理速度比其他HashMap 键对象快 。这就是为什么String是HashMap 键的最常用的对象 。
为什么在Java中String是不可变的? 点击这里了解更多。
6. Final,Final和Finalize有什么区别?
这个问题是我最喜欢的一个。
最终关键字将在若干情况下使用,以限定只能一次被分配的实体。 Java finally 块是用于执行重要代码(如关闭连接,流等)的finally 块。无论是否处理异常,Java 块始终执行。Java finally 块位于 try 或 catch 块之后。 这是一种始终在删除/销毁对象之前调用的方法,该 对象适合垃圾回收执行清理活动。GarbageCollector 7.什么是diamond问题?
菱形问题反映了为什么我们不允许在Java中进行多重继承。如果有两个类具有使用特定方法共享的超类,则在两个子类中都将其覆盖。然后,如果您决定从这两个继承 subClasses ,则如果您想调用该方法,则该语言将无法决定您要调用哪个方法。
我们把这个问题称为diamond问题。它从上面的图片中获得名称,该图片描述了警告。
8.您如何 使一个类不可变? 我认为这是一个非常困难的问题。您需要对类进行一些修改以实现不变性:
将课程声明为最终课程,因此无法扩展。 将所有字段设为私有,以便不允许直接访问。 不提供变量的设置方法 将所有可变字段定为最终值,使其值只能分配一次。 通过执行深度复制的构造函数初始化所有字段。 在getter方法中执行对象的克隆以返回副本,而不是返回实际的对象引用。
9. Singleton是什么意思?
单例是仅允许创建其自身的单个实例并提供对该创建的实例的访问权的类。它包含静态变量,可以容纳其自身的唯一实例和私有实例。当用户希望将类的实例化限制为仅一个对象时,可以使用它。通常在需要单个对象来协调整个系统中的动作时,这很有用。
10.什么是依赖注入? 如果您使用Java EE或Spring,这是您必须知道的头号问题。您可以在这里查看我的文章进一步解释这一点: 什么是依赖注入?
概括 在本文中,我们讨论了Java面试的十大问题,根据我的经验,这是当今最重要的问题。如果您知道这些,我相信您在招聘过程中将拥有很大的优势。
希望我能为您服务!如果您在此主题上有类似的经验,或者您有一些成功的故事,请随时在下面的评论中分享。
原文链接:http://codingdict.com