面试半年,总结了 1000 道 2023 年 Java 架构师岗面试题

news2024/10/7 18:29:21

半年前还在迷茫该学什么,怎样才能走出现在的困境,半年后已经成功上岸阿里,感谢在这期间帮助我的每一个人。

面试中总结了 1000 道经典的 Java 面试题,里面包含面试要回答的知识重点,并且我根据知识类型进行了分类,可以说非常全面了~

基础篇

  • 1、 Java 语言有哪些特点

1、简单易学、有丰富的类库 2、面向对象(Java 最重要的特性,让程序耦合度更低,内聚性更高)3、与平台无关性(JVM 是 Java 跨平台使用的根本)4、可靠安全 5、支持多线程

  • 2、面向对象和面向过程的区别

面向过程:是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,然后在使用的时候一一调用则可。性能较高,所以单片机、嵌入式开发等一般采用面向过程开发

面向对象:是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。面向对象有封装、继承、多态的特性,所以易维护、易复用、易扩展。可以设计出低耦合的系统。 但是性能上来说,比面向过程要低。

JVM 篇

  • 说说堆和栈的区别

栈是运行时单位,代表着逻辑,内含基本数据类型和堆中对象引用,所在区域连续,没有碎片;堆是存储单位,代表着数据,可被多个栈共享(包括成员中基本数据类型、引用和引用对象),所在区域不连续,会有碎片。

1、功能不同栈内存用来存储局部变量和方法调用,而堆内存用来存储 Java 中的对象。无论是成员变量,局部变量,还是类变量,它们指向的对象都存储在堆内存中。

2、共享性不同栈内存是线程私有的。 堆内存是所有线程共有的。

3、异常错误不同如果栈内存或者堆内存不足都会抛出异常。 栈空间不足:java.lang.StackOverFlowError。 堆空间不足:java.lang.OutOfMemoryError。

4、空间大小栈的空间大小远远小于堆的

Spring 篇

  • 1、什么是 spring?

Spring 是个 java 企业级应用的开源开发框架。Spring 主要用来开发 Java 应用,但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java 企业级应用开发,并通过 POJO 为基础的编程模型促进良好的编程习惯。

  • 2、你们项目中为什么使用 Spring 框架?

这么问的话,就直接说 Spring 框架的好处就可以了。比如说 Spring 有以下特点:

轻量:Spring 是轻量的,基本的版本大约 2MB。

控制反转:Spring 通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。

面向切面的编程(AOP):Spring 支持面向切面的编程,并且把应用业务逻辑和系统服务分开。

容器:Spring 包含并管理应用中对象的生命周期和配置。

MVC 框架:Spring 的 WEB 框架是个精心设计的框架,是 Web 框架的一个很好的替代品。

事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)

异常处理:Spring 提供方便的 API 把具体技术相关的异常(比如由 JDBC,Hibernate or JDO 抛出的)转化为一致的 unchecked 异常。

MyBatis 篇

SpringBoot 篇

MySQL 篇

  • 说说 InnoDB 与 MyISAM 的区别

  1. InnoDB 支持事务,MyISAM 不支持,对于 InnoDB 每一条 SQL 语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条 SQL 语言放在 begin 和 commit 之间,组成一个事务;

  2. InnoDB 支持外键,而 MyISAM 不支持。对一个包含外键的 InnoDB 表转为 MYISAM 会失败;

  3. InnoDB 是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而 MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。

  4. InnoDB 不保存表的具体行数,执行 select count(*) from table 时需要全表扫描。而 MyISAM 用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;

  5. Innodb 不支持全文索引,而 MyISAM 支持全文索引,查询效率上 MyISAM 要高;

SpringCloud 篇

Redis 篇

  • 为什么 Redis 单线程模型效率也能那么高?

  1. C 语言实现,效率高

  2. 纯内存操作

  3. 基于非阻塞的 IO 复用模型机制

  4. 单线程的话就能避免多线程的频繁上下文切换问题

  5. 丰富的数据结构(全称采用 hash 结构,读取速度非常快,对数据存储进行了一些优化,比如亚索表,跳表等)

部分内容展示

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

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

相关文章

Linux5.5 Mysql索引、事务与存储引擎

文章目录 计算机系统5G云计算第四章 LINUX Mysql索引、事务与存储引擎一、Mysql索引1. 索引的概念2.索引的作用3.索引的副作用4.创建索引的原则依据5.索引的分类和创建1)普通索引2)唯一索引3)主键索引4)组合索引5)全文…

验证attention是否在图像分类问题上起决定性作用

来源:投稿 作者:摩卡 编辑:学姐 Motivation 现阶段出现了大量的Transformer-style图像分类模型,并且这些模型在ImageNet上取得了不俗的成绩,这些Transformer-style模型将取得高性能的功劳归功于Multi-head attention注…

【软件设计】模块设计耦合的其中类型

一.什么是高内聚、低耦合? 在结构化分析与模块设计方法中,模块化是一个很重要的概念,它是将一个待开发的软件分解成为若干个小的模块,每个模块可以独立地开发、测试。使得复杂问题的“分而治之”,令程序的结构清晰、易…

vue3+router4的基本使用

一、安装router npm i vue-router二、路由跳转 2.1 创建路由实例 在src目录下创建router文件夹,在其中创建一个index.js文件,创建路由实例。 通过vue-router的createRouter方法创建一个router对象。其中有history和routes 1.history: histo…

微机保护的数据采集系统(2)

(二)采样保持电路(S/H)和模拟低通滤波器(ALF) 1.采样保持电路(S/H) (1)采样保持原理。 S/H电路的作用是在一个…

Linux进程间通信 - 共享内存

之前的文章中我们讲述了匿名管道与命名管道相关的知识点,在本文中我们将继续讲述一种进程间通信的方式:共享内存。 systemV共享内存 共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到…

Downie 4 4.6.18 MAC上最新最好用的一款视频下载工具

Downie for Mac 简介 Downie是Mac下一个简单的下载管理器,可以让您快速将不同的视频网站上的视频下载并保存到电脑磁盘里然后使用您的默认媒体播放器观看它们。 Downie 4 下载 Downie 4 for Mac Downie 4 for Mac软件特点 支持许多站点 -当前支持1000多个不同的…

间接采购管理中常见的五大挑战

间接采购,有时也被称为间接费用或尾部支出,这些商品或服务不是制造产品直接必需的,而是日常运营所需的。 ● 办公室和行政用品 ● 商店地点的消耗品(例如,清洁用品) ● 设施管理费用 ● 专业服务 ● 旅行…

Linux 服务器重启之后执行指定脚本文件

有些时候,我们部署服务、中间件、数据库等应用的机器可能会因为机房停电、断电而宕机,这样大部分服务就随之关闭了,可能会需要手动去进行重启,我们可以通过 Linux 的开机启动来实现服务自动重启。 一、配置 /etc/rc.d/rc.local 文…

VOSviewer软件的基础与应用

VOSviewer是一款免费且专业的文献计量分析软件,也是一个知识图谱可视化工具,由荷兰莱顿大学开发,主要用于构建和查看文献计量知识图谱,基于文献的共引和共被引原理,具有可视化能力强、适合于大规模样本数据的特点&…

抖音矩阵系统源代码开发部署--源码搭建

抖音矩阵系统是一个具有强大功能的开放性平台,通过数据挖掘技术能够实现精准的用户画像和个性化推荐,这也是抖音成为国内最受欢迎的短视频平台之一的原因之一。矩阵系统的开发需要大量的技术支持和数据分析,同时也需要综合运用大数据、机器学…

Mysql主从复制及读写分离

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

华为OD机试 JavaScript 实现【密码验证合格程序】【牛客练习题 HJ20】,附详细解题思路

一、题目描述 密码要求: 长度超过8位包括大小写字母.数字.其它符号,以上四种至少三种不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行) 二、输入描述 一组字符串。 三、输出描述 如果符合要求输出:OK&…

A stochastic parrot in every pot 每口锅里都会有一只随机鹦鹉? | 经济学人社论双语精翻

本期双语文章来自《经济学人》2023年5月13日周报社论:《人工智能经济学》(The economics of AI) A stochastic parrot in every pot? 每口锅里都会有一只随机鹦鹉? What does a leaked Google memo reveal about the future of A…

软文营销,如何写出优质的新闻稿

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 一,什么是软文营销? 软文营销是一种通过撰写和发布具有信息性、有趣性和可读性的文章,来推广产品、服务或品牌的营销策略。软文是指以一种较为隐晦、…

【默认端口】市面上各种中间件、软件、服务的默认端口汇总

常用软件,中间件,服务的默认端口汇总 常用软件默认端口汇总 市面上各种中间件、软件和服务的默认端口众多,下面列举一些常见的默认端口: SSH(Secure Shell):22 Telnet:23 FTP…

AI在零售行业的应用

原创 | 文 BFT机器人 如今,零售商已经体验到使用人工智能 (AI) 的诸多好处,随着行业不断创新,人工智能的重要性只会越来越大。随着人工智能越来越被广泛接受,它的实施也越来越广泛。 查看这些用例,了解零售业中的 AI如…

一文掌握linux基本操作命令

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和…

Selenium元素定位的八种方法(建议收藏)

自动化一般需要四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告。Selenium提供8种元素定位的方法:id,name,class name,link text,xp…

三维点云机器学习检测定位圆心,三维圆检测,拟合轴线(基于open3d和python)

0.任务描述 背景:从端面拍摄大型圆筒工件,该工件周向尺寸大于相机视野,只能拍摄到1/3左右的圆周,且无法保证相机与端面垂直拍摄 任务:需要拟合圆周与轴线位置 难点:三维圆拟合与检测都很复杂&#xff0c…