技术面试轮次论

  首先其实各个公司的面试流程几乎是大同小异,分为多轮面试,许多初入职场的同学可能觉得多论面试无非就是多个人一起把把关,或者公司的hr要求面试流程使然,其实这些理解都太片面了,为什么需要技术面试多轮次,更深一层次的原因在与不同的面试轮次其实考察求职者的侧重点根本不同,如果无法理解其中侧重点三字的本质,则会对自己陈述的内容完全打不中面试官心里,可能许多面试官觉得差不多就这么过了,但掌握真正的精髓可以让你一击即中。

  基础能力面试

  一般公司的技术面试不考虑hr分为三轮,第一轮是最“基础”的技术面试,只所以叫基础绝对不是其面的技术很基础的意思,而是一般会找一个团队中相对高级或资深的程序员来面你一下,这个人有可能是个小team leader,也有可能是个普通的能力强一点的开发而已。当时我去某一电商大厂内面试,一面是一个看似就有点干货的眼镜男程序员。首先最最通用的java基础:

  HashMap的实现结构原理,java8对HashMap的结构做了哪些优化?

  考察数据结构知识以及你是否用过java8

  java线程池中coreSize,maxSize,queueLength,keepAliveTime,rejectStrategy那么多参数之间的联系和相互作用的影响是什么?

  考察多线程知识

  java并发处理的方式有哪些?

  考察并发处理知识

  jvm分为哪几个区,他们之间的关系如何,gc时会做哪些事情

  考察jvm和gc知识

  其实这些题若平时工作或学习中从来没有在意,仅仅只是用用框架或者改改别人写的代码,做做小demo的程序员,面试前一定要复习准备多遍,而且必须深入理解掌握,大厂对人的基本素质看的是很重的,若你连基础原理都讲不清楚立马会给你打上一个loser或者浮躁者的标签,然后深入到java web的知识:

  http协议get和post的区别

  考察http基本协议

  servlet的原理是什么?讲一下它的一个完整的生命周期?

  考察servlet知识

  多个http的请求若要访问同一个变量的时候一般怎么处理,是用threadLocal还是直接用单例访问,各有什么优缺点?

  考察你对web项目多线程处理中单例及threadLocal的理解

  紧接着就是java框架,给大家的忠告,若时间不够不要去搞ssh或者ssm的结合体框架,专心学好spring原理,springboot和mybatis:

  spring的DI,AOP,IOC的原理和应用分别是什么?

  大家看清楚,首先要谈好原理(动态代理,cglib代理,扩展等),然后再谈应用,不要上来就举例说你在项目上的应用

  spring bean有哪几种作用域,bean的生命周期是怎么样的?

  bean的理解一定要到位,不然答不好

  springboot有接触吗,谈谈你对它的理解,它为什么好?

  这题是你的加分项,可以谈谈以前没有springboot时配置一个东西有多么坑,有了springboot后多么简单,然后一定要从原理上说为什么springboot简单了,这样又可以体现你研究过springboot的原理,又能用它去解决问题

  mybatis的orm相关知识?

  着手从orm的原理到mybatis的应用开始谈,然后讲讲mybatis的sql自动生成以及分页插件等,体现你在项目中的实战一点都不少

  以上一些问题若你都可以从容回答,且答案正确的话,非常恭喜你,你在这位基础能力的面试官眼中基础能力很好,可栽培,然后他会用心的去考察你的下一步相关域的能力,于是这位面试官就开始考察我的数据库技能了:

  mysql的事务隔离级别分别有哪几种,每种分别可以解决哪些问题,又不能解决哪些问题

  考察你对数据库事务的理解能力,在理解这个问题之前大家要先理解清楚什么叫读快照,什么叫读当前,大家可以先学一下这篇文章 传送门1 传送门2

  mysql索引的结构是什么样的,查询效率又如何

  学完上述内容再谈索引结构和查询效率,大家要记住,主键查询即便上亿数据都可以无压力,唯一键查询和主键基本相当,非唯一索引区分度好的千万级别数据无压力,区分度差一点的百万级别能凑活,再上去一点就不行了

  若这些都回答的不错,再次恭喜你,这位资深技术同学开始会跟你聊分布式了:

  有没有用过什么rpc框架,rpc的基本原理是怎么样的,如何实现一个自己的rpc框架

  聊聊dubbo,聊聊springcloud,看你用过哪个,可以先简单的讲一讲具体的应用和解决的问题,再深入原理讲其实现方式,若你了解实现方式那么怎么实现一个rpc框架就不算是问题了

  分布式环境下如何解决事务的问题

  最最show你能力的时候到了,什么都别说,先聊cap和base理论,讲明分布式环境下要么确保一致性牺牲可用性,典型(二阶段提交性事务),要么确保可用性牺牲一致性但要确保最终一致性,例如(最大努力提交性事务,可用消息中间件确保消息最终成功消费实现。tcc型事务,可用事后回滚型方式解决。补偿性事务,可以谈谈异常定时处理机制等)

  以上这些你都答好了,那真正恭喜你,第一面“基础面试”你通过了

  项目能力面试

  终于谈到了项目经历,一般问题会以讲一讲你在自我介绍或者简历中写的一个项目吧,我记得当时被问到的是我简历中写的一个日租办公室的类交易网站,可能跟他们的电商业务有些许联系,这个时候你一定要梳理一下思路,一旦聊到项目对于面试官而言肯定是不清楚你整体的业务逻辑的,你不能上来就说一个点,而是要在全盘的角度出发去介绍你的项目,最好是在面试教室的白板上画一下你的介绍框架及步骤

  用三到四句话介绍你这个项目在产品维度是做什么的

  例如:这个项目是在线提供了一个以天为单位出租办公位的电商平台,分为用户端app和admin运营后台两块,运营在线发布工位服务,用户通过app浏览、交易购买出租工位

  画一下你的系统架构图

  不是每个小白程序员或资深开发可以画出整个的系统划分的,没有关系,我现在告诉你,你需要对你自己简历中写的一个项目提前了解清楚全面的系统设计,有多全面就要多全,了解不到?那就编吧,按照你在产品形态上看到的去划分你的模块,比如我当时就画了这个项目分为用户模块(有用户登录,注册服务),工位模块(创建发布工位,排期查询服务),交易模块(下单购买,第三方支付对接)这三块

  澄清技术选型

  你的系统是不是用springboot做的,是不是用的dubbo的rpc,数据库用的是不是mysql,前置是否有nginx反向代理等,有没有用缓存redis

  我负责的是其中哪一块,把他讲清楚

  我负责的是其中下单购买这一块的流程,画一张时序图,讲清楚你在其中的业务逻辑实现的细节等。

  讲完了这些我已经口干舌燥,可以考虑喝一口水然后问一下面试官是否有什么问题,见招拆招,问到答不上来的要说:“这一块实现由于涉及的系统离我比较远,并不是十分清楚,但是如果是我来做的话我会*****”,大家记住后面那句话非常重要,既体现你的诚实又体现你的主动思考的能力,老板都喜欢这样的员工。

  终面

  最终我被带到了对应部门的团队负责人的办公室里,不是每家公司的都有机会让你见cto面试的,尤其是大厂,不过如果有机会见到cto,也不必紧张,其实和部门总监面试过程差不多。到最终一面的时候总监一般考察的是这个人的思考能力,抗压能力,全局观等,尤其是面试高级程序员或者架构师之类的,全局观就非常重要,因此到这一环节在聊一些问题的时候千万不要聚焦于一些技术细节上反复的说,还要更全面的解释问题,体现自己的思考,抗压等,最典型的问题例如:

  你在工作中遇到过一次最难解决的问题是什么,你当时是怎么解决的?

  提前准备好这一类的问题,十有八九都会被问题,可以讲一个技术难题,时间又紧张的要死,你最后费了九牛二虎之力,查资料,做实验演习,咨询专家,加班深入等,最后解决了它

转载于:https://juejin.im/post/5cfe0201f265da1b8b2b52cb

JAVA面试--电商业内大厂相关推荐

  1. 网易内推java 面试_网易内推面试

    9月5日晚收到拒信,这是秋招以来最大的打击,感觉越想得到的东西越得不到,现在还没有满意的offer,真的好想留在杭州啊,,为什么这么难啊!!! 真的很想留下来,可是老大说至少要两个月后才有机会转正答辩 ...

  2. 产品图批量翻译,支持全球小语种翻译 - 产品图批量抠图白底 - 产品图尺寸批量自动无损缩放跨境电商业内常用图片处理一键批量完成

    图片批量抠图变白底 图片为何要扣白底? 像亚马逊等平台的某些类目政策要求图片必须为干净的白底图,且尺寸必须1000像素以上才行,因此我们开发了可以批量扣去背景变白底的功能,方便处理大量产品图. 抠图变 ...

  3. 【2022最新Java面试宝典】—— Java虚拟机(JVM)面试题(51道含答案)

    目录 一.Java内存模型 1. 我们开发人员编写的Java代码是怎么让电脑认识的 2. 为什么说java是跨平台语言 3. Jdk和Jre和JVM的区别 4. 说一下 JVM由那些部分组成,运行流程 ...

  4. 【2022最新Java面试宝典】—— 设计模式面试题(14道含答案)

    目录 1.什么是设计模式 2.为什么要学习设计模式 3.设计模式分类 4.设计模式的六大原则 5.单例模式 1.什么是单例 2.那些地方用到了单例模式 3.单例优缺点 4.单例模式使用注意事项: 5. ...

  5. 【2022最新Java面试宝典】—— Java并发编程面试题(123道含答案)

    目录 一.基础知识 1. 为什么要使用并发编程 2. 多线程应用场景 3. 并发编程有什么缺点 4. 并发编程三个必要因素是什么? 5. Java 程序中怎么保证多线程的运行安全? 6. 并行和并发有 ...

  6. 【2022最新Java面试宝典】—— Redis面试题(70道含答案)

    目录 一.概述 1. 什么是Redis? 2. Redis有哪些优缺点? 3. 使用redis有哪些好处? 4. 为什么要用 Redis / 为什么要用缓存 5. 为什么要用 Redis 而不用 ma ...

  7. 【2022最新Java面试宝典】—— MySQL面试题(40道含答案)

    目录 1.MySQL 中有哪几种锁? 2.MySQL 中有哪些不同的表格? 3.简述在MySQL 数据库中 MyISAM 和InnoDB 的区别 4.MySQL 中InnoDB 支持的四种事务隔离级别 ...

  8. 【2022最新Java面试宝典】—— MyBatis面试题(37道含答案)

    目录 一.MyBatis简介 1. MyBatis是什么? 2. Mybatis优缺点 3. Hibernate 和 MyBatis 的区别 4. 为什么说Mybatis是半自动ORM映射工具?它与全 ...

  9. 【2022最新Java面试宝典】—— Spring面试题(75道含答案)

    目录 1. Spring概述 1.1 什么是spring? 1.2 Spring的俩大核心概念 1.3 Spring框架的设计目标,设计理念,和核心是什么 1.4 Spring的优缺点是什么? 1.5 ...

最新文章

  1. (转) 干货 | 图解LSTM神经网络架构及其11种变体(附论文)
  2. redis数据库入门
  3. stm32气压传感器 带探头的_ST SSC 频道 | 基于ST STM32F302R8T6 电机空气压缩机方案
  4. 关于二叉树的程序 c语言,请教关于建立二叉树程序(c语言的)
  5. Listview条目删除完,显示默认的图片的数据
  6. Homework-201521410028
  7. Unity3D - UGUI组件的中英文对照
  8. java 与 php 区别或异同(整理、整合)
  9. 免费开源的电路图和PCB绘图软件KiCAD
  10. 如何用计算机计算log除法,对数计算器_如何使用计算器计算对数
  11. word另存为html行距,word文档如何设置行间距
  12. Java基础 第一节 第一课
  13. 产品运营 第一章(黄有璨)
  14. aven 项目 pom.xml 第一行报错 Unknow。。。。。。。解决办法
  15. mysql 按首字母进行检索数据
  16. 狄拉克δ函数的数学迷思
  17. 如何实现外网访问内网ip?公网端口映射或内网映射来解决
  18. 【无标题】认知智能中国原生智能科技体系 一文看懂认知智能 道翰天琼认知智能奠基者领导者
  19. 马尔科夫链的一个例子:老鼠迷宫问题
  20. 特别报道:人工智能 让机器像人一般思考

热门文章

  1. c# 取余数 浮点数_浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源
  2. Vue中常见的性能优化
  3. android 自定义paint,Android自定义View中Paint、Rect、Canvas介绍(一)
  4. node mysql商城开发_GitHub - Ssipon/nideshop: NideShop:基于Node.js+MySQL开发的开源免费商城(api服务器端)...
  5. JavaScript 4行代码找出重复出现次数最多的元素及次数
  6. weblogic集群部署与负载均衡_集群,负载均衡,分布式的讲解和多台服务器代码同步...
  7. html中使用js、jQuery展示页面小结
  8. mysql 字段值保留2位小数
  9. pyspark的ALS协同过滤推荐算法-小结1
  10. 判断EXCEL表格某单元格值发生改变VBA代码