整理了这些最新java面试时可能问的问题,之后可以根据自己的弱点来进行强化学习。
一面,以考察基础为主,同时也会有笔试题的考察。面试官,一般都比较好沟通,对于基础问题都会有所探讨。因为这一面的面试官,大概率是自己以后的同事。主要会从以下几个维度考察:
- JS基础
- CSS基础
- 网络层
- 常用技术栈
- Java基础问题
- ArrayList和Linked区别
- HashMap实现原理
- HashSet的原理
- ConcurrentHashMap的原理
- equals和==区别IO和NIO的区别
- HashMap和HashTable区别?
- Object中常见的方法
- Java中的异常体系
- JDK8新特性
- Java类加载器类加载器的双亲委托模式
- public、private、protected以及不写时候的区别
- String是基本类型吗
- float i = 1.1正确吗
- ConcurrentHashMap的增删改查如何保证线程安全
- final、finally、finalize区别抽象类和接口的不同区别
CSS基础 - 什么是盒模型,如何进行不同盒模型的切换
- 样式的优先级排序,如何去获取一个样式的相邻元素
- position的属性值有哪些,它们的区别是什么
- 列举一下移动端适配方案
- flex的布局了解么,什么是主轴,如何控制主轴和副轴
- Flex的优点和缺点,如何用flex布局两边固定,中间自适应;同时其他方式能实现么
- 如何实现水平垂直居中
- 如何清除浮动,清除浮动的原理
- 什么是BFC,它的作用是什么,什么行为会产生BFC
- 父元素浮动了,子元素形成BFC能清除浮动么
- css的动画如何实现
- 为什么使用transform写动画,不用left写动画
- 回流和重绘的区别,什么行为会导致回流,什么行为会导致重绘
- 了解CSS3么,CSS3里面新增了哪些属性
- 1px的问题可以如何去解决
- less和css的区别,less的函数有了解过么
网络层 - 在浏览器输入一个URL的整体过程是怎么样的
- 描述一下浏览器页面渲染的过程
- 浏览器白屏是什么导致的
- 浏览器存储Cookie、localstorage、sessionStorage的区别
- cookie如何进行设置的,JS能改变哪些值
- 描述一下浏览器缓存
- HTTP的状态码有哪些
- HTTP的请求头包含什么
- 解决跨域的方法有哪几种
- 描述一下JSONP的原理
- 描述一下CORS的过程
二面
二面,一般都会考察一些项目问题,性能优化,也会对基础的原理部分进行综合考察。二面面试官,往往是以后自己的leader,或者其他部门更加资深的技术。考察的维度比较多变,需要多对项目这个部分进行准备。
基础部分 - Http状态码有哪些
- HTTP1.1/HTTP2.0的区别
- 描述一下浏览器缓存
- cookie和Session的区别
- 描述一下xss和csrf,如何防范
- 请求超时timeout的原理
- 描述一下进程和线程
- node内存泄漏的原因
- 了解过vue迁移到小程序的原理
- 虚拟列表的实现原理
- 骨架图的实现方案
- React hooks的优点
- Dva的同步状态管理,异步状态管理,是如何实现的
- 描述一下vue的nextTick的原理
- webpack常用插件,以及dev和product有啥差别
- webpack打包原理
- 小程序页面之间的通信怎么处理
- webview组件和原生组件的区别
性能优化 - 移动端的性能优化
- webpack的性能优化如何做
- 如何进行首屏加载优化
- 平时如何做小程序部分的性能优化的
- 编程题
- 写出3种水平垂直居中方案
- 手写实现bind方法
- 手写promise的sleep函数实现
- 手写Promise.all的实现
- 算法题 - 寻找最长不重复子串
- 算法题 - 计算年龄
二面面试过程中,会涉及到项目的问题,我这里不进行列举。因为每个人的项目不太一样,参考意义不大。可以多对项目中的难点和亮点进行展开叙述。
三面
三面,一般会考察项目,个人规划,提供技术方案的能力。三面的考察,开放程度更大,每个人根据自己的情况,酌情回答。同时,也会有笔试题的考察 - 聊项目,项目中遇到的问题,如何解决的
- 回头看,项目中还有什么需要改进的地方
- 平时如何去做性能优化的
- 在公司有啥技术贡献
- 在原公司,自己最大的成长是什么
- 自己觉得在原公司的开发流程上,还有哪些可以改进的
- 代码的注释,数组的解构,整体的思路,如何进行函数的封装,如何使用设计模式,如何你进行代码调试
- 希望公司能够提供你什么
- 自己未来的职业规划是怎样的
- 平时如何进行学习的
- 目前在学习什么
- 离职的原因是什么
- 编程题
- 算法题 - 实现一个二分查找
- 实现一个异步缓存请求算法题 - {} [] ()三个判断是否闭合
hr面
hr面,一般比较轻松。主要围绕着你的基本信息、薪资情况、个人发展、性格、和他人相处、团队协作等方面展开。题目本身开放性程度比较大,每个人的答案也不相同。按照个人情况作答即可。 - 你为什么离职,对上一家公司的印象如何
- 你的优点是什么,缺点是什么
- 你在别人眼里是怎么样的一个人
- 你对未来的规划是怎样子的
- 你的期望薪资是多少
- 有没有女朋友 哈哈哈
这些是我整理了一下大公司面试时候大致会问的问题和方向,认为自己还有什么不太明白的可以加这个java交流 群934623944