推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

实例方法可直接调用超类的类方法 常被问到的十个 Java 面试题

   2023-07-17 网络整理佚名1620
核心提示:最好的方法是尽可能多地了解这些集合类型,因为这类问题几乎是无穷尽的。你并不需要使用这些方法中的任何一种,但是,如果你选择这样做,则可能需要用你的类的特定代码来重写这些方法。然后,如果你决定同时继承这两个子类,那么在你调用该重写方法时,编译器不能识别你要调用哪个子类的方法。方法获取的对象执行克隆以返回副本,而不是返回实际的对象引用。面试题——在我看来这是根据我的经验总结出的时下最重要的问题。

在这篇文章中,我试图包含最有趣和最常见的问题。 另外,我会给你正确的答案。

接下来我们就来看看这些问题。

1. 用 10 分的标准来评价自己——你的 Java 水平如何?

如果您不完全确定自己或自己对 Java 的熟练程度,这可能是一个棘手的问题。 如果是这种情况,您应该稍微降低您的评级。 之后,您可能会收到与您承认的水平相匹配的问题。 因此,如果你给自己打了满分,却无法回答一个有点困难的问题,这将对你不利。

2.解释Java 7和Java 8之间的区别。

老实说,两者之间存在很多差异。 如果你能列出最重要的,那就足够了。 您应该解释 Java 8 中的新增功能。有关完整列表,请访问官方网站:Java 8 JDK。

您应该了解以下关键点:

3.您知道哪些收藏类型?

以下是您应该了解的最重要的类型:

之后,您可能会被问到一些问题,例如何时应该使用这种特定类型、它比其他类型更好、它如何存储数据以及它背后的数据结构是什么。

最好的选择是尽可能多地了解这些集合类型,因为问题几乎是无穷无尽的。

4. 该类包含哪些方法?

这是一个非常常见的问题,用于确定您对基础知识的熟悉程度。 以下是每个对象都有的方法:

在 java.lang 包中,类位于类层次结构的顶部。 每个类都是某个类的直接或间接子类。 您使用或编写的每个类都会从该类继承实例方法。 您不需要使用任何这些方法,但如果您选择这样做,则可能需要使用特定于类的代码重写这些方法。 以下是从本节讨论的类继承的方法:

该类的 、 和 wait 方法都起到同步程序中独立运行的线程的活动的作用,这将在后面的课程中讨论,这里不再介绍。 有五种方法:

5. 为什么对象是不可变的?

字符串池是可能的,因为字符串在 Java 中是不可变的。 这样一来,Java运行环境就节省了大量的堆空间,因为不同的变量可以引用池中的同一个变量。 如果 () 不是不可变的,则它是不可能的,因为一旦任一变量更改了它所引用的对象的值,它也会反映在另一个变量中。

如果字符串不是不可变的,那么它可能会对应用程序构成严重的安全威胁。 例如,数据库用户名和密码都被传递以获取数据库连接,编程主机和端口信息也是如此。 由于字符串是不可变的,因此它们的值无法更改。 否则,任何黑客都可以篡改它所引用的值,这可能会导致应用程序中出现安全问题。

由于不可变,对于多线程来说是安全的,并且单个实例可以在不同线程之间共享。 这避免了使用同步来保证线程安全; 字符串是隐式线程安全的。

字符串用于 Java 类加载器,它们的不变性为类加载器加载正确的类提供了安全性。 否则,请考虑当您尝试加载 java.sql 时的危险情况。 class,您引用的值更改为 . 它可以对数据库做一些你不想要的事情。

由于它是不可变的,所以它的哈希码在创建时就被缓存起来,不需要再次计算。 这使其成为映射中键的理想对象,它的处理速度比其他键类型更快。 这就是为什么 是 中最常用的键类型。

为什么Java中的字符串是不可变的? 您可以查看下面的链接。

6.final、、、三者有什么区别?

这是我最喜欢的问题。

Final关键字在多个上下文中使用来定义只能分配一次的实体。

代码块是用于执行关闭连接、流等重要代码的代码块。无论是否处理异常,代码块都将始终被执行。 代码块紧跟在 try 代码块或 catch 代码块之后。

这是垃圾收集器在删除或销毁对象之前始终调用的方法,它使垃圾收集机制能够执行清理活动。

7.什么是钻石继承问题?

菱形继承问题反映了为什么我们不允许在Java中实现多重继承。 如果两个类共享具有特定方法的超类,则该方法将被两个子类覆盖。 那么,如果你决定同时继承两个子类,当你调用重写的方法时,编译器无法识别你要调用哪个子类方法。

我们将这个问题称为钻石继承问题。 它如上图所示,并由此得名。

8. 如何使一个类不可变?

我认为这是一个相当困难的问题。 您需要对该类进行一些修改才能实现不变性:

将类声明为final,这样就不能被继承。

所有字段都用 修饰,并且不允许直接访问。

不提供变量的方法。

所有变量字段都用final修饰,使其值只能被赋值一次。

通过构造函数执行深度克隆来初始化所有字段。

对方法获取的对象执行克隆,以返回副本而不是实际的对象引用。

9.什么是单例模式?

单例模式意味着一个类只允许创建其自身的一个实例,并提供对该实例的访问。 它包含静态变量,可以保存其自身的唯一和私有实例。 它用于用户希望将类的实例约束为对象的场景。 当需要单个对象来协调整个系统时,它会很有帮助。

10.什么是依赖注入?

这是您必须知道您使用的是 Java EE 还是框架的第一个问题。 你可以看看我的文章,它进一步解释了这一点:什么是依赖注入?

总结

在本文中,我们讨论了十大 Java 面试问题——根据我的经验,我认为这是当天最重要的问题。 如果你理解了这些问题,相信你在面试中能获得很大的优势。

【关于投稿】

如果您有原创好文章可以贡献,请直接给公众号留言。

①消息格式:

【提交】+“文章标题”+文章链接

② 示例:

【投稿】《别自称程序员,我十几年的IT职场总结》:

③最后请附上你的个人资料~

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON