【每日八股】Java基础经典面试题2

news2024/12/24 21:24:21

前言:哈喽大家好,我是黑洞晓威,25届毕业生,正在为即将到来的秋招做准备。本篇将记录学习过程中经常出现的知识点以及自己学习薄弱的地方进行总结🥰。
本篇文章记录的Java基础面试题,适合在学Java基础的小白,也适备战秋招,面试过程中的大佬🥳。
才疏学浅,如果文章有什么出错的地方还请指教😈。
在这里插入图片描述

🔥 个人主页: 黑洞晓威
😀你不必等到非常厉害,才敢开始,你需要开始,才会变的非常厉害。

== 和 equals() 的区别

== 对于基本类型和引用类型的作用效果是不同的:

  • 对于基本数据类型来说,== 比较的是值。
  • 对于引用数据类型来说,== 比较的是对象的内存地址。

equals() 方法存在两种使用情况:

  • 类没有重写 equals()方法:通过equals()比较该类的两个对象时,等价于通过“==”比较这两个对象,使用的默认是 Objectequals()方法。
  • 类重写了 equals()方法:一般我们都重写 equals()方法来比较两个对象中的属性是否相等;若它们的属性相等,则返回 true(即,认为这两个对象相等)

hashCode() 有什么用?

当你把对象加入 HashSet 时,HashSet 会先计算对象的 hashCode 值来判断对象加入的位置,同时也会与其他已经加入的对象的 hashCode 值作比较,如果没有相符的 hashCodeHashSet 会假设对象没有重复出现。但是如果发现有相同 hashCode 值的对象,这时会调用 equals() 方法来检查 hashCode 相等的对象是否真的相同。如果两者相同,HashSet 就不会让其加入操作成功。如果不同的话,就会重新散列到其他位置。这样我们就大大减少了 equals 的次数,相应就大大提高了执行速度。
在这里插入图片描述

为什么重写 equals() 时必须重写 hashCode() 方法?

因为两个相等的对象的 hashCode 值必须是相等。也就是说如果 equals 方法判断两个对象是相等的,那这两个对象的 hashCode 值也要相等。

如果重写 equals() 时没有重写 hashCode() 方法的话就可能会导致 equals 方法判断是相等的两个对象,hashCode 值却不相等。

在这里插入图片描述

Exception 和 Error 有什么区别?

Exception :程序本身可以处理的异常,可以通过 catch 来进行捕获。Exception 又可以分为 Checked Exception (受检查异常,必须处理) 和 Unchecked Exception (不受检查异常,可以不处理)。

ErrorError 属于程序无法处理的错误 ,不建议通过catch捕获 。例如 Java 虚拟机运行错误(Virtual MachineError)、虚拟机内存不够错误(OutOfMemoryError)、类定义错误(NoClassDefFoundError)等 。这些异常发生时,Java 虚拟机(JVM)一般会选择线程终止。

Checked Exception 即 受检查异常 ,Java 代码在编译过程中,如果受检查异常没有被 catch或者throws 关键字处理的话,就没办法通过编译。

除了RuntimeException及其子类以外,其他的Exception类及其子类都属于受检查异常 。常见的受检查异常有:IO 相关的异常、ClassNotFoundExceptionSQLException…。在这里插入图片描述

注解

Annotation (注解) 是 Java5 开始引入的新特性,可以看作是一种特殊的注释,主要用于修饰类、方法或者变量,提供某些信息供程序在编译或者运行时使用。

注解只有被解析之后才会生效,常见的解析方法有两种:

  • 编译期直接扫描:编译器在编译 Java 代码的时候扫描对应的注解并处理,比如某个方法使用@Override 注解,编译器在编译的时候就会检测当前的方法是否重写了父类对应的方法。
  • 运行期通过反射处理:像框架中自带的注解(比如 Spring 框架的 @Value@Component)都是通过反射来进行处理的。

参考链接:https://javaguide.cn/

文章内容根据网上内容汇总整理,用于根据自身学习情况进行查漏补缺,大家也不妨看看自己是否还掌握这些知识点,能帮上忙就最好了!😘

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1513053.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

给多篇文章注音 只要拼音不要汉字 怎么办?快看过来 小编帮你解决

在日常办公和学习中,我们有时需要对Word文档中的文字进行拼音标注,特别是当我们需要教授儿童识字或者制作一些特殊的文档时。然而,很多时候,我们可能只需要拼音而不需要汉字本身。那么,如何在Word中给文字注音&#xf…

【你也能从零基础学会网站开发】Web建站之javascript入门篇 认识Document文档对象

🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 Document对象 …

Rust异步编程 Async Await 入门

Rust Async Await 入门 在本文中,我们将仔细研究 Rust 中的异步编程。到目前为止,我对 Rust 异步的体验主要是从 Stack Overflow 复制代码。本文旨在帮助您了解什么是异步代码以及如何有效地使用它。 什么是异步代码? 要了解什么是异步代码…

openGauss使用BenchmarkSQL进行性能测试(上)

一、前言 本文提供openGauss使用BenchmarkSQL进行性能测试的方法和测试数据报告。 BenchmarkSQL,一个JDBC基准测试工具,内嵌了TPC-C测试脚本,支持很多数据库,如PostgreSQL、Oracle和Mysql等。 TPC-C是专门针对联机交易处理系统…

金融知识分享系列之:MACD指标精讲

金融知识分享系列之:MACD指标精讲 一、MACD指标二、指标原理三、MACD指标参考用法四、MACD计算步骤五、MACD分析要素六、根据快线DIF位置判断趋势七、金叉死叉作为多空信号八、快线位置交叉信号九、指标背离判断行情反转十、差离值的正负十一、差离值的变化十二、指…

K 近邻算法

为什么学习KNN算法 KNN是监督学习分类算法,主要解决现实生活中分类问题。 (1)首先准备数据,可以是视频、音频、文本、图片等等 (2)抽取所需要的一些列特征,形成特征向量 (3&…

iPhone, Android 手机是如何收到推送通知的?

本文转自 公众号 ByteByteGo,如有侵权,请联系,立即删除 iPhone, Android 手机是如何收到推送通知的? 我们的手机或电脑是如何收到推送通知的? 通常我们可以使用消息解决方案 Firebase 来支持通知推送。下图显示了 Fi…

云数据库Redis配置用户名密码连接

一般情况,生产环境6379端口是禁止对外开放的, 所有用户名密码可以不设置。 但是如果有格鲁需求,需要开放redis公网访问,建议端口限制IP,并设置用户密码 spring中配置 阿里云数据库 云数据库 Redis_缓存数据库_高并发_读写分离-阿里云 添加白名单 申请公网访问地址 配…

2024年共享WiFi项目到底怎么样?

共享WiFi项目是近年来兴起的一种新型商业模式,商家通过在自己店铺升级wifi链接模式使其数字化,让用户能够方便地连接到互联网,提升到店体验,增加线上引流。这一项目的出现,为人们的生活带来了诸多便利,同时…

基于SpringBoot的“实习管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“实习管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 学生注册界面图 后台登录界面图 …

1.Python是什么?——《跟老吕学Python编程》

1.Python是什么?——《跟老吕学Python编程》 Python是一种什么样的语言?Python的优点Python的缺点 Python发展历史Python的起源Python版本发展史 Python的价值学Python可以做什么职业?Python可以做什么应用? Python是一种什么样的…

LoadBalancer负载均衡服务调用

LoadBalancer负载均衡服务调用 1、Ribbon目前也进入维护 ​ Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。 ​ 简单的说,Ribbon是Netflix发布的开源项目,主要功能是**提供客户端的软件负载均衡算法和服务调用。**Ribbon…

自动备份文件:守护数据安全新利器

随着信息化时代的到来,文件已经成为我们日常生活和工作中不可或缺的一部分。然而,数据丢失或损坏的风险也随之而来,因此自动备份文件的重要性愈发凸显。自动备份文件不仅可以保护我们的宝贵数据,还可以在意外发生时迅速恢复&#…

Seata源码流程图

1.第一阶段分支事务的注册 流程图地址:https://www.processon.com/view/link/6108de4be401fd6714ba761d 2.第一阶段开启全局事务 流程图地址:https://www.processon.com/view/link/6108de13e0b34d3e35b8e4ef 3.第二阶段全局事务的提交 流程图地址…

Python | Logger通用日志记录器

一、代码 通用日志记录器,可以输出不同颜色的记录到控制台,并输出到指定文件夹下可以在不同py文件中同时使用,共用同一个记录器适用window或linux平台 #!/usr/bin/env python # -*- coding: utf-8 -*- import os import inspect import log…

镭速教你如何解决大数据量串行处理的问题

大数据的高效处理成为企业发展的关键。然而,大数据量串行处理的问题常常困扰着许多企业,尤其是在数据传输方面。本文将探讨大数据量串行处理的常见问题,并介绍企业常用的处理方式,最后重点阐述镭速如何提供创新解决方案&#xff0…

Claude3发布,将取代ChatGPT4?

目录标题 前言Claude简介Claude 3 的能力高级推理视觉分析代码生成多语言处理 性能比较 前言 一夜之间,全球最强 AI 模型易主。大模型行业再次经历变革。OpenAI 最大的竞争对手 Anthropic 发布了新一代 AI 大模型系列 ——Claude 3。该系列包含三个模型&#xff0c…

鸿蒙开发之MPChart图表开发

一、简介 随着移动应用的不断发展,数据可视化成为提高用户体验和数据交流的重要手段之一,因此需要经常使用图表,如折线图、柱形图等。OpenHarmony提供了一个强大而灵活的图表库是实现这一目标的关键。 在 ohpm 中心仓(https://ohpm.openharmony.cn/)中,汇聚了众多开发者…

【Python】新手入门学习:详细介绍接口分隔原则(ISP)及其作用、代码示例

【Python】新手入门学习:详细介绍接口分隔原则(ISP)及其作用、代码示例 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、Py…

c++中多种类型sort()排序的用法(数组、结构体、pair、vector)

c中多种类型sort排序的用法 一、对数组排序1、默认排序2、自定义排序 二、对结构体进行排序三、对pair进行排序1、默认排序2、自定义排序 四、对vector进行排序1、默认排序2、去重排序3、自定义排序 一、对数组排序 1、默认排序 默认从小到大进行排序 #include <bits/std…