我的 Java 面试“打怪升级”之路01

前言

在当今的科技行业,Java 作为一门广泛应用的编程语言,其相关的岗位竞争可谓十分激烈。作为一名求职者,经历 Java 面试就如同一场充满挑战的“打怪升级”游戏。在这里,我想和大家分享一下我在 Java 面试中的一些经历和感悟。

一、面试前的准备

1. 基础知识的巩固

  • 熟悉 Java 的基本语法,如数据类型、控制流、面向对象的概念(封装、继承、多态)等。
  • 掌握常用的集合类,如 ArrayListHashMap 等的使用和原理。
  • 对线程安全、并发编程有一定的理解,例如 synchronized 关键字、Lock 接口等。
    举例:在复习集合类时,我深入研究了 HashMap 的底层实现,包括哈希冲突的解决方法和扩容机制。这让我在面试中能够清晰地回答关于 HashMap 性能和优化的问题。

2. 项目经验的梳理

  • 总结自己在项目中承担的角色和完成的任务。
  • 能够清晰地阐述项目的架构、技术选型和遇到的技术难题及解决方案。
    比如:我参与的一个电商项目中,在高并发场景下解决了订单处理的性能瓶颈问题。通过优化数据库查询、引入缓存机制等手段,提高了系统的响应速度。

3. 算法和数据结构

  • 常见的算法,如排序算法(冒泡、快速排序等)、查找算法(二分查找)要能够手写代码实现。
  • 掌握一些基本的数据结构,如链表、栈、队列、树等。

4.问题

题目选自牛客网

4.1说一说你对Spring IoC的理解

Spring的IoC容器是Spring框架的核心部分,它的全称是“Inversion of Control”,即控制反转。在传统的程序设计中,对象的创建和管理是由程序自身控制的,但在Spring中,这部分工作交给了IoC容器负责。IoC容器负责创建对象,维护对象之间的依赖关系,管理对象的生命周期,这样可以让应用程序更加模块化,易于测试和维护。

IoC的一个关键概念是依赖注入(DI),即容器控制对象的依赖关系,而不是对象自己创建或者查找依赖的对象。这使得应用程序中的各个组件解耦,提高了代码的灵活性和可重用性。在Spring中,可以通过XML配置文件、注解或者Java代码来定义bean及其依赖关系,容器会在适当的时候自动装配这些bean。

总的来说,Spring的IoC容器提供了面向切面编程(AOP)的基础,使得应用程序的设计更加简洁,易于扩展和维护。

元素描述
IoC容器可以想象成一个大型的工厂或仓库,负责管理对象的创建和依赖注入。
Bean表示为多个小盒子或模块,每个盒子代表一个Spring管理的对象。
依赖关系用箭头连接不同的Bean盒子,指示依赖注入的方向。
配置元数据以XML、注解或Java配置类的形式存在,描述了Bean的创建和依赖关系。
Bean的作用域用不同的颜色或标签区分,如单例(Singleton)和原型(Prototype)。
生命周期一条时间线,展示Bean从创建、初始化、使用到销毁的过程。
自动装配一个自动装配机的图标或符号,表示Spring的自动装配功能。
解耦虚线或断开的实线,强调组件间的独立性和低耦合度。
扩展性开放的接口或插槽图标,表示Spring IoC容器的可扩展性。

4.2Redis有哪些数据类型?

Redis 的数据类型可以简化为以下几种:

  1. String(字符串):用于存储简单的数据,如一个字符串。

  2. List(列表):有序的字符串集合,可以进行添加和删除操作。

  3. Set(集合):无序的唯一字符串集合,自动处理重复。

  4. Sorted Set(有序集合):每个元素有分数,根据分数排序。

  5. Hash(哈希):存储键值对,类似于对象或字典。

  6. Bitmaps(位图):表示位数组,用于高效存储布尔值。

  7. HyperLogLog(近似去重计数):估算集合中唯一元素的数量。

  8. Geospatial(地理空间):存储地理位置,进行距离和范围查询。

  9. Pub/Sub(发布订阅):消息通信模式,用于发布和订阅消息。

  10. Streams(流):消息队列,支持多消费者和消息持久化。

这些类型提供了灵活的数据存储和处理方式,适用于多种应用场景。

4.3描述

给定一个非负整数 n ,返回 n! 结果的末尾为 0 的数量。

n! 是指自然数 n! 的阶乘,即 :
N!=1×2×3…(N−2)×(N−1)×N。
特殊的, 0 的阶乘是 1 。
在这里插入图片描述

public long thenumberof0(long n) {long num = 0; // 用于存储结果,即零的个数long five = 5; // 5的初始值,用于除法操作// 使用while循环,只要n不小于5,就继续执行循环while (n >= five) {num += n / five; // 将n除以5的商加到num上five *= 5;       // 将5的值乘以5,用于下一轮的除法操作}return num; // 返回计算得到的零的个数
}

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

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

相关文章

SwiftUI 截图(snapshot)视频画面的极简方法

功能需求 在 万物皆可截图:SwiftUI 中任意视图(包括List和ScrollView)截图的通用实现 这篇博文中,我们实现了在 SwiftUI 中截图几乎任何视图的功能,不幸的是它对视频截图却无能为力。不过别着急,我们还有妙招。 在上面的演示图片中,我们在 SwiftUI 中可以随心所欲的截图…

前端Vue组件化实践:打造灵活可维护的地址管理组件

随着前端技术的不断演进,复杂度和开发难度也随之上升。传统的一体化开发模式使得每次小小的修改或功能增加都可能牵一发而动全身,严重影响了开发效率和维护成本。组件化开发作为一种解决方案,通过模块化、独立化的开发方式,实现了…

【java算法专场】滑动窗口(下)

目录 水果成篮 算法分析 算法步骤 示例 算法代码 找到字符串中所有字母异位词 算法分析 算法步骤 示例 算法代码 优化 算法代码 串联所有单词的子串 算法分析 算法步骤 示例 算法代码 最小覆盖子串 算法分析 算法步骤 示例 算法代码 算法分析 这道题其实…

AI绘画Stable Diffusion 自制素材工具: layerdiffusion插件—透明背景生成工具

大家好,我是设计师阿威 今天给大家分享一款AI绘画的神级插件—LayerDiffusion。 Layerdiffusion是一个用于stable-diffusion-webui 的透明背景生成(不是生成图再工具扣图,是直接生成透明背景透明图像)插件扩展,它可以…

【Linux 文件读写描述符重定向 Linux 一切皆文件缓冲区】

文章目录 一、文件的读写操作二、文件描述符三、文件重定向四、理解 Linux 一切皆文件五、文件缓冲区 一、文件的读写操作 文件内容属性 当文件没有被操作的时候,一般文件还是在磁盘当中 文件操作文件内容的操作文件属性的操作,文件操作有可能即改变内容…

《python程序语言设计》2018版第5章第55题利用turtle黑白棋盘。可读性还是最重要的。

今天是我从2024年2月21日开始第9次做《python程序语言设计》作者梁勇 第5章 从2019年夏天的偶然了解python到2020年第一次碰到第5章第一题。彻底放弃。再到半年后重新从第一章跑到第五章,一遍一遍一直到今天2024.7.14日第9次刷第五章。 真的每次刷完第五章感觉好像…

【JavaScript】解决 JavaScript 语言报错:Uncaught SyntaxError: Unexpected token

文章目录 一、背景介绍常见场景 二、报错信息解析三、常见原因分析1. 缺少必要的语法元素2. 使用了不正确的字符或符号3. JSON 格式错误4. 字符串未正确闭合 四、解决方案与预防措施1. 检查语法元素2. 正确使用符号和字符3. 修正 JSON 格式4. 字符串闭合 五、示例代码和实践建议…

android13 文件管理器无法安装apk 奔溃问题

总纲 android13 rom 开发总纲说明 目录 1.前言 2.我们简单写个apk测试下 3.排查客户apk 4.frameworks源码排查 5.编译验证 6.彩蛋 1.前言 客户提供的文件管理apk不能安装apk文件,一点击就奔溃。 2.我们简单写个apk测试下 private void installApk(File apkFile) {i…

映美精黑白相机IFrameQueueBuffer转halcon的HObject

映美精黑白相机&#xff0c;用wpfhalcon开发取图 1.到官网下载&#xff0c;开发包 1sdk 2c开发例子 3c#开发例子 引入TIS.Imaging.ICImagingControl35.dll 3.ICImagingControl使用这个类控制相机 /// <summary> /// 相机控制 /// </summary> public ICImagingC…

MySQL的插入(DML)

1.给指定字段添加数据 这个就是&#xff0c;想插入所对应的字段&#xff0c;就插入所对应的数值。先把字段列出来&#xff0c;不一定是全部的字段&#xff0c; 然后插入想要的值&#xff0c;注意&#xff0c;只能插入一行。 INSERT INTO 表名 (字段1,字段2,.....) VALUES(值…

将swagger注解导入apifox的IDEA配置

在使用IDEA开发中&#xff0c;经常需要将后端接口导出到Apifox&#xff0c;以便于测试。将swagger注解内容导出到Apifox中&#xff0c;需要进行以下设置: file->settting打开对话框&#xff0c;选择Other Settings -> Apifox Help&#xff0c;如下图&#xff1a; 2.选…

【软件测试】自动化测试常用函数 -- 详解

一、WebDriver API 一个简单自动化脚本的构成&#xff1a; 脚本解析 # coding utf-8 from selenium import webdriver import time browser webdriver.Firefox() time.sleep(3) browser.get("http://www.baidu.com") time.sleep(3) browser.find_element_by_id(…

数据实时化是必要还是偏见?

数据实时化是必要还是偏见&#xff1f; 一、前言二、数据仓库的起源三、数据架构的演进四、数据实时化的必要性五、总结 本文主要基于数据仓库的起源和数据架构的演进来聊聊&#xff0c;数据实时化是否真的必要&#xff1f;是"过度优化"、“实时偏见"还是"…

【数据结构】手写快速排序

一、理念 什么是快速排序&#xff1f; 首先确立pivot&#xff0c;比如下图位于末尾 然后i遍历3到6 在3的时候&#xff0c;j指向i前面一位 如果3<5(pivot)&#xff0c;那么j&#xff0c;同时将i与j指向的交换&#xff0c;第一次交换是原地不动 一直到遇见9&#xff0c;…

数据结构和算法(0-1)----递归

定义​ 递归是一种在程序设计中常用的技术&#xff0c;它允许一个函数调用自身来解决问题。递归通常用于解决那些可以被分解为相似的子问题的问题&#xff0c;这些问题的解决方式具有自相似性。在数据结构和算法中&#xff0c;递归是一种重要的解决问题的方法&#xff0c;尤其是…

处于群晖Docker中的HomeAssistant监控宿主机CPU温度

处于群晖Docker中的HomeAssistant监控宿主机CPU温度 解决方案 在configuration.yaml中添加&#xff1a; sensor: - platform: filename: "Host Temperature" # 可以自定义file_path: /sys/class/hwmon/hwmon0/temp1_inputvalue_template: "{{ int(value)/100…

taro小程序terser-webpack-plugin插件不生效(vue2版本)

背景 最近在做公司内部的小程序脚手架&#xff0c;为了兼容老项目和旧项目&#xff0c;做了vue2taro,vue3taro两个模板&#xff0c;发现terser-webpack-plugin在vue2和vue3中的使用方式并不相同&#xff0c;同样的配置在vue3webpack5中生效&#xff0c;但是在vue2webpack4中就…

sql monitoring 长SQL ASH AWR 都没有 未Commit or export to csv

Duration 4小时&#xff0c; Database Time 22.5&#xff0c; Session Inactive&#xff0c; 1.未Commit原因, 2.慢慢导出成csv文件&#xff1f; How is v$session status INACTIVE and v$sql_monitor status EXECUTING concurrently 2641811 Posts: 8 Jan 11, 2016 6:47P…

git安装使用gitlab

第一步&#xff1a;下载git 第二步&#xff1a;安装 第三步&#xff1a;配置sshkey 第四步&#xff1a;处理两台电脑的sshkey问题 第一步下载git 网址&#xff1a;Git点Downloads根据你的操作系统选择对应的版本&#xff0c;我的是Windows&#xff0c;所以我选择了Windows …

Apple Intelligence将如何重新定义iPhone上的Siri使用方式|TodayAI

经过多年的讨论和批评&#xff0c;苹果&#xff08;Apple&#xff09;终于在今年秋季承诺推出更智能版本的数字助理Siri。此次更新得益于苹果智能&#xff08;Apple Intelligence&#xff09;&#xff0c;这是公司推出的生成式AI产品&#xff0c;并与OpenAI合作开发。 Siri将迎…