杭州某国企 Java 面经

杭州某国企 Java 面经

面试官:这边收到你的xxx简历,现在方便做一个简单的面试沟通吗?

我:方便的方便的,内心OS:面经+1。

1)

面试官:先做个自我介绍吧

我:常规操作,比八股背的熟多了,主要突出我全栈的一个学习过程,并且做了一个开源项目,我这边给大家的建议,尤其是双非同学,如果没啥亮点的话,个人博客和喜欢写一些笔记,画一些思维导图,喜欢看技术书籍,是比较好的亮点,如果不是电话面,可以直接给面试官共享屏幕,或者让他访问你的博客,这是一个很大的加分项,92 的同学直接学历碾压了,本身学历就是亮点,所以可能没有什么产出的话,问题也不是很大,千万别说自己的缺点…

2)

面试官:把你的项目给我简单介绍一下

我:阿巴阿巴,介绍项目的主要两个亮点功能,从需求分析、技术选型、业务实现,一步步讲下来,在重点和难点的时候再多加以阐述即可。

3)

面试官:你的数据是存在哪里的?

我:MySQL 数据库,面试官追问查询优化方面,我主要阐述了慢查询日志的使用,和利用索引覆盖的特性,加快查询速度,这块结合具体的业务场景去讲就好了,可以把 Jemter 的参数跑出来会更可信。

4)

面试官:所有的情况都可以用索引覆盖吗?

我:no,只有 Where、Group By、Join 这些后面的字段如果没有加索引,才能够利用索引覆盖,而且索引并不是加的越多越好,阐述下索引在变动过程中需要维护,这部分时间也需要进行考虑。

5)

面试官:缓存你用过哪些?

我:我的项目主要是用了 Redis,然后面试官追问 Redis 的数据结构底层原理,比如字符串的 SDS,对比原有 C 语言字符串的好处,比如 O(1) 获取长度,不会缓冲区溢出,二进制安全,减少修改字符串的内存重新分配次数(惰性空间释放,空间预分配)

6)

面试官:缓存过期策略了解吗?

我:惰性删除机制在取出 key 时进行过期检查,对 CPU 友好,定期删除机制会每隔一段时间抽取一批 key 执行删除过期 key 操作,对内存更加友好, Redis 采用的是定期删除+惰性删除,此外利用内存淘汰机制进行兜底,数据淘汰策略在 Redis 4 版本以前有 6 种,4 以后新增了两种 LFU 的算法。

7)

面试官:你用过哪些设计模式?

我:阿巴阿巴,主要包括门面模式(外观)、适配器模式、注册器模式、模版方法模式、策略模式等等,结合业务代码区讲就好了。

8)

面试官:你觉得什么时候需要用到单例模式?

我:频繁实例化被销毁,频繁 new 对象,保证全局只有一个对象实例,创建对象耗时过多或者耗费资源过多,经常使用该对象,频发访问 IO 的对象,比如数据库连接池,SpringBean 的单例注册表也是有一个缓存池。

9)

面试官:解释下线程安全和不安全

我:阿巴,多线程竞争一个共享资源,这边可以介绍下临界区等,操作系统的知识,还可以介绍下死锁等等,可以结合具体的超卖问题。

10)

主要问了下能多久到岗,实习多久等等,我反问了工作时间和待遇,然后直接拒了,实习生还要加班,而且待遇太低了,直接面经+1。

开源 AI 项目 Gitee 地址:https://gitee.com/falle22222n-leaves

欢迎老铁们 Star 下!累计总后端 700 + Star ,最近在写详细的文档,后续将会推出。⭐⭐⭐

北京某科技数字有限公司 Java 面经

1)

面试官:先讲一下 RESTFUL 风格怎么使用?

我:阿巴阿巴,四种方法讲一下,然后配合 @PathVariable 注解讲一下,路径占位符讲一下,RESTFUL 的好处讲一下,比如路径更简洁、安全(不暴露参数),高效(支持缓存),差不多就行。

2)

面试官:Post 请求的数据是放在哪里?

我:呃呃呃,表单用一个对象存,然后请求有请求头,请求行,请求体,请求体存储表单数据,简单的前端问题,可以对比下 GET 和 POST 区别,比如安全方面,数据长度限制方面等等,只要你会的,都可以按逻辑进行阐述,简单的问题其实去做一个完整的阐述,表达这块建议大家多面试练练。

3)

面试官:文件这块是怎么传输的?

我:我项目是上传过 Excel 文件主要利用了,MultiPartFile 这个工具类 SpringMVC 提供的,用 IO 读取就可以了,我写了个 Excel 工具类读取。

4)

面试官:你项目的安全框架用了什么?

我:阿巴阿巴,这边没用 SpringSecurity、Shrio、Sa-Token ,我就简单用了 AOP 底层代理模式+适配器+一个 JWT,主要用 Token 令牌进行一个,Token 存 Redis,然后动态刷新 Token 机制,用户无感知,这边要听 Redis 的过期策略和内存淘汰机制就更好了,能输出一波。

5)

面试官:JWT 密钥放在哪里?

我:服务端配置文件编写,我这边每个用户注册有 AK,SK,SK 就是密钥,可以根据密钥生成不同的 Token。

6)

面试官:Token 的参数构成有哪些?

我:Header(签名算法和令牌类型),PayLoad 负载包含用户信息、令牌颁发时间、过期时间等等,Signature 是根据头部、负载、密钥加密后合成的结果,一般的 xxx.xxx.xxx。

7)

面试官:Token 存放在哪里?

我:LocalStorage 这边,发送 Axios 请求时,多一个 Authorization 请求头携带 Bearer 空格 + Token

8)

面试官:Token 是怎么生成的?

我:JWT 工具类,用户登录之后,前端会得到一个我后端 Generate 的一个参数,前端获取后存下来就好。

9)

面试官:ArrayList,LinkedList,HashMap 各自的优缺点和使用场景讲一下

我:这边不作赘述了,常见的八股文,按自己的实践和单列集合和双列集合使用场景就可以了,考源码也无所谓都是简单题,比如 Map 的 Put 流程,为什么链表大于等于 8 并且数组长度>=64 树化,为什么从 8 到 6 后退化,Hash 冲突有几种解决方案,各自有什么好处,多线程 HashMap 安全吗,Key Value 为 Null 问题等等,可以讲的东西太多了,可能一个问题讲好几分钟也是正常,只要面试官想听,其实可以一直讲。

10)

面试官:ArrayList 和 LinkedLIst 获取数据的时间复杂度

我:O(1) 和 O(N),数组和链表…

11)

面试官:你数据库掌握能力怎么样?

我:比较弱,只做过几个多表连接,然后说一下,左右连接的区别,内连接,再说一下实际项目怎么写的 SQL,怎么做 SQL 优化等等,索引数据类型,索引失效,事务,隔离级别,三大日志,刷盘时机,MVCC 怎么实现的?行锁,表锁,意向锁,共享锁,独占锁,InnoDB 引擎对比 MyISAM 的优势等等,数据库要是问起来半小时起步了。

12)

面试官:输入 URL 后的一系列流程是什么?

我:URL 检查、缓存查询(计算机网络)、DNS 解析、获取 MAC 地址、TCP 三握、HTTPS 握手、返回数据、页面渲染(DOM)、TCP 四挥,其实这里面每一个都可以阐述,基本是计算机网络的基础知识。

13)

反问技术栈、主要做的业务,以及工作时间和待遇,总体来说面试比较简单,比较浅层,没啥深度考究,过了一天电话说 OC 了,然后是经典流程,拒了…未完待续

开源 AI 项目 Gitee 地址:https://gitee.com/falle22222n-leaves

欢迎老铁们 Star 下!累计总后端 700 + Star ⭐⭐⭐

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

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

相关文章

文件流的操作常识与限制

C语言的C库提供了文件流的各种操作方法&#xff0c;在这里介绍一些操作常识与限制。 示例&#xff1a; /*brief whats the limits of stream? show you hereauthor wenxuanpeiemail 15873152445163.com(query for any question here) */ #include <stdio.h>//<cstdi…

【音视频开发好书推荐1】《RTC程序设计:实时音视频权威指南》

1、WebRTC概述 WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个由Google发起的实时音视频通讯C开源库&#xff0c;其提供了音视频采集、编码、网络传输&#xff0c;解码显示等一整套音视频解决方案&#xff0c;我们可以通过该开源库快速地构建出一个音视频通…

HTTP代理出现错误是什么原因?如何解决?

HTTP代理是一种常见的工具&#xff0c;可以帮助我们隐藏真实的IP地址&#xff0c;提高网络访问速度&#xff0c;突破网络限制等。但是&#xff0c;在使用过程中&#xff0c;HTTP代理可能会遇到各种问题&#xff0c;导致HTTP代理出现错误。这些错误是什么原因造成的&#xff0c;…

牛客练习赛122

D:圆 正着求删除的最小代价不好做&#xff0c;采用逆向思维&#xff0c;求选择一些不相交的线段使得构成一个圆的代价尽量大&#xff0c;最后答案就是所有线段权值之和减去最大代价。 那么如何求这个最大代价呢&#xff1f;显然区间DP 老套路&#xff1a;破环成链&#xff0…

详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法

集合的概念 当我们需要保存一组一样&#xff08;类型相同&#xff09;的元素的时候&#xff0c;我们应该使用一个容器来存储&#xff0c;数组就是这样一个容器。 ● 数组的特点&#xff1a; 数组是一组数据类型相同的元素集合&#xff1b; 创建数组时&#xff0c;必须给定…

Discuz IIS上传附件大于28M失败报错Upload Failed.修改maxAllowedContentLength(图文教程)

下图&#xff1a;Discuz X3.5的系统信息&#xff0c;上传许可为1024MB(1GB) 论坛为局域网论坛&#xff0c;仅供内部同事交流使用&#xff01; 使用官方最新的Discuz! X3.5 Release 20231221 UTF-8 下图&#xff1a;选择上传附件&#xff08;提示可以最大上传100M&#xff09;…

【Python】新手入门(2):避免将关键字作为标识符

Python新手入门&#xff08;2&#xff09;&#xff1a;避免将关键字作为标识符 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1…

保护模式笔记九 中断门和IDT(中断描述符表)

段选择子&#xff1a; 先直观认识一下GDT和段选择子在逻辑地址转换为线性地址中的作用&#xff0c;例如&#xff1a; 给出逻辑地址&#xff1a;21h:12345678h&#xff0c;需要将其转换为线性地址 a. 选择子SEL21h0000000000100 0 01b&#xff0c;他代表的意思是&#xff1a…

Ruoyi框架上传文件

axios资料&#xff1a;axios中文文档|axios中文网 | axios axiosjson 默认情况下&#xff0c;axios将JavaScript对象序列化为JSON。 submit(data) {if (data && this.definitionId) {// 启动流程并将表单数据加入流程变量startProcess(this.definitionId, JSON.string…

ARM 嵌入式端算法加速

OpenCL 嵌入式端算法加速 1 嵌入式端算法加速架构 1.1 OpenMP 1.1.1 平台是否支持 简单理解&#xff0c;我们使用 OpenMP 就可以非常简单地实现多线程有多简单呢&#xff0c;查看是否支持 OpenMP在使用 OpenMP 完成多线程任务时&#xff0c;首先得查看当前编译器是否支持 OpenM…

数据可视化原理-腾讯-3D热力图

在做数据分析类的产品功能设计时&#xff0c;经常用到可视化方式&#xff0c;挖掘数据价值&#xff0c;表达数据的内在规律与特征展示给客户。 可是作为一个产品经理&#xff0c;&#xff08;1&#xff09;如果不能够掌握各类可视化图形的含义&#xff0c;就不知道哪类数据该用…

代码随想录刷题笔记-Day29

1. N皇后 51. N 皇后https://leetcode.cn/problems/n-queens/ 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数…

【Sql Server】C#通过拼接代码的方式组合添加sql语句,会出现那些情况,参数化的作用

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《Sql Server》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对…

JavaWeb JSP

JSP&#xff08;Java Server Page&#xff09;是J2EE的功能模块&#xff0c;是Java服务器页面&#xff0c;由Web服务器执行&#xff0c;作用就是降低动态网页开发难度&#xff0c;将Java代码与HTML分离&#xff0c;降低开发难度&#xff0c;本质就是Servlet。 Servlet的缺点&a…

pandas数据分析42——读取和写入stata和spss的数据格式

python就是胶水语言&#xff0c;啥文件基本都能读取&#xff0c;而且pandas作为数据分析最好用的包&#xff0c;其功能自然也很多&#xff0c;可以读取各种数据文件。 本次就来演示一下怎么读取stata文件&#xff0c;和spss文件&#xff0c;他们不仅储存了数据和变量&#xff…

C++--机器人的运动范围

目录 1. 题目 2. 思路 3. C代码测试 4. 测试结果 1. 题目 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动&#xff0c;每一次只能向左&#xff0c;右&#xff0c;上&#xff0c;下四个方向移动一格&#xff0c;但是不能进入行坐标和列坐标的数位之和大于k的格…

echarts折线图、面积图的重叠与堆叠的区别

问题&#xff1a;在使用echarts折线图和面积图时&#xff0c;需求上要求必须重叠或者堆叠&#xff0c;如何进行配置解决过程&#xff1a;当两条折线或者是两个部分的面积进行区分重叠或堆叠时 1.在外观上不同的是&#xff0c;重叠图是允许两者有交点重叠部分&a…

如何应对IT服务交付中的问题?

如何应对IT服务交付中的问题&#xff1f; 按需交付服务的挑战IT服务体系的复杂性恶性循环的形成学会洞察的重要性书籍简介参与方式 按需交付服务的挑战 一致性、可靠性、安全性、隐私性和成本效益的平衡&#xff1a;成功的按需交付服务需要满足这些要求&#xff0c;这需要服务…

html样式排版

<template><div class"box"><div class"header">头部</div><div class"main"><div class"left">菜单</div><div class"right"><div class"right-contentr"&g…

【C++】list模拟实现+反向迭代器

list模拟实现 list定义list用法list iterator的使用begin() end()rbegin()rend() reverse()sort()merge()unique()remove()splice() list模拟实现struct和class的区别list三个类模板默认成员函数构造函数拷贝构造函数赋值运算符重载析构函数 数据修改操作push_back()push_fron…