2020年JAVA大厂笔经面经

2020-02-28 16:02:42来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

2020年JAVA大厂笔经面经

个人简介

? Java后台开发方向。
非计算机专业硕士,专业涉及到一些开发。
实验室项目主要是Java Web系统,挖掘小亮点。
无实习经验。

闲话唠嗑

? 回顾这几个月,宛若梦一场。
一开始心态不好,看到要学习的东西一大堆,沉不下心来学习,看什么东西都是看着看着就很浮躁,开始疯狂抖腿,沉迷幻想,以为找工作只看少量面经重点即可。
实验室原因无法实习,四五月份春招的时候参加了阿里和网易的实习招聘提前感受面试,惨败。可以说是一塌糊涂。当头一棒,脑子清醒了,既然想要从事互联网行业,早学晚学还是要学,不如现在踏踏实实好好学,一生受用(室友的面试官对她说的原话,感觉很有道理)。开始分阶段制定学习计划,每碰到一个知识点就来牛客查相关面经问题,逐个攻破。
总共投了三十多家公司,大小公司都有,想给自己多几个机会,到提前批结束为止只有十家左右有回复。目前收到阿里盒马、腾讯在线教育、网易严选、头条抖音、华为Cloud BU这几个意向offer。
易紧张体质,一紧张就肠道蠕动汗如雨下,题目答得歪七歪八了,编程题也做不出来了,但面试面多一些紧张感就好一些,不考虑结果,只思考问题,就会好很多了。
能够拿到offer得益于牛客上大家的面经分享和在线编程练习,是时候回报牛客啦,当然是恭喜各位收到offer的小伙伴们,但是暂时没收到offer的小伙伴们也不用着急,沉下心来好好学习,offer总会有的。
分享一句鸡汤:越努力越幸运

阿里巴巴(盒马,收到意向书)

? 全程电话面试。
故意比其他公司晚投大半个月,却是收到的第二个面试。

? 一面(约一个半小时)

  1. ? 自我介绍
  2. ? 印象最深的项目?承担职责?学到了什么,技术、业务都可以说?项目里的blabla是怎么实现的,用到了什么技术?项目分工?项目工程数量?项目分区和分层?
  3. ? Servlet规范了解吗?Servlet的整个业务流程?session和cookie的区别?session怎么变成cookie,怎么变回session?谁来实现整个流程?
  4. ? 项目提到的SSM框架里面了解哪些?Spring IoC中Bean的生命周期?谁来管理Bean的生命周期?BeanFactory和ApplicationContext的关系?@Autowired和@Resource的区别? Spring的自动扫描怎么实现的?谁实现的?
  5. ? MyBatis介绍一下?你说到这是一个持久层框架,那你了解JPA规范吗?(不知道)
  6. ? UML了解吗?(不会)设计模式?
  7. ? Zookeeper了解吗?(不会)
  8. ? 刚才提到的分布式实现多个应用的Session共享问题?
  9. ? 数据结构了解吗?链表结构说一下?
  10. ? 算法了解吗,比方说红黑树、二叉树的算法?
  11. ? 学了这么久的Java,你的技术栈规划是怎么样的?

? 二面(部门主管面,约二十分钟)

  1. ? 你是专业的,你知道你报的是Java应用开发工程师吗?你平常是怎么学Java的?
  2. ? 面向对象有了解吗?三个特性?
  3. ? 设计模式有了解吗?单例模式、工厂模式、模式……单例模式有什么需要注意的吗?(多线程并发问题:synchronized+volatile)你写单例的时候如果这个单例对象有字段值,你会去改变这些字段值吗?为什么呢?
  4. ? 平常用到全局变量吗?为什么不用呢?
  5. ? 平常会做单元测试吗?
  6. ? 。。。

? HR面(约二十分钟)

  1. ? 自我介绍
  2. ? 你们专业和软件开发是不是不太相关?为什么报这个岗位?
  3. ? 你平常有做商业项目吗?还是都是实验室的项目?有没有实习?
  4. ? 你感觉大学期间最有成就感的事情是什么?
  5. ? 你有遇到过什么特别大的挫折吗?
  6. ? 你父母对你有什么期望吗?
  7. ? 你未来的职业规划是如何?
  8. ? 你喜欢什么样的工作?
  9. ? 加班压力能承受吗?
  10. ? 未来的职业规划?

网易(邮件,收到意向书)

? 公司现场面试。
蜜汁面试,一面比一面短。

? 一面(约三十分钟)

  1. ? 自我介绍
  2. ? 项目是否碰到特殊网络环境?
  3. ? ArrayList和LinkedList区别?
  4. ? ArrayList和LinkedList是线程安全的吗?为什么说他们不是线程安全的,举实际场景?
  5. ? 有什么线程安全的List?(CopyOnWriteArrayList)讲一下怎么实现线程安全的?(读时复制,写时共享,加锁机制)
  6. ? 线程A和线程B同时针对一个共享变量进行操作,如何实现线程安全?
  7. ? 平常怎么创建线程?线程池里闲置线程怎么保活?(不清楚,说了自己的想法)那怎么唤醒?如果用wait()和notify(),对谁加锁?
  8. ? 给一个数据库表,ID、score两个字段分别代表学生ID和成绩,写SQL语句求ID=?的学生排第几名?
  9. ? 假设是InnoDB,给上述SQL语句加索引怎么加?为什么这样建立?聚集索引和非聚集索引有什么区别?

? 二面(约二十分钟)

  1. ? 自我介绍
  2. ? 介绍一下觉得做得最好的项目?画一下项目的框架结构图?Nginx用来做什么?采用了什么负载均衡策略?万一某一个服务器挂掉怎么办?(一致性hash)如果添加一个节点呢?
  3. ? Spring中Bean生命周期?提到的Aware相关接口指的是什么?平常会自己会用Aware相关接口吗?Bean生命周期这么长是为什么?
  4. ? JVM内存模型?如果给一个类,里面只有一个main方法,方法里面只有一句System.out.println(“helloworld”),问运行这个类会在Java内存模型里发生什么? “helloworld”存储在哪里?
  5. ? MySQL数据库,给一个用户表格,ID、用户名、性别、用户信息…,假设经常对性别字段进行查询,问怎么建立索引?为什么?假设用户名需要是唯一的,问怎么建索引?

? HR面(十七分钟)

  1. ? 自我介绍
  2. ? 介绍一下自己的专业?为什么找IT开发工作?
  3. ? 介绍一下最有成就感的项目?为什么觉得这个项目最有成就感?
  4. ? 为什么报了这个部门?
  5. ? 你觉得自己有什么优势,能给这个部门带来什么?
  6. ? 讲自己的三个优点?
  7. ? 说一下自己的不足?
  8. ? 。。。

今日头条(抖音,收到意向书)

? 牛客网视频平台面试,算法题在线编程一下午走完三面流程。
不涉及部门面试,面试官说三轮面试都是统招的。

? 一面(约五十分钟)

  1. ? 自我介绍,主要讲讲做了什么和擅长什么
  2. ? 看你项目做Spring比较多,问一下Spring相关的东西,IoC是什么概念?
  3. ? Bean的默认作用范围是什么?其他的作用范围?
  4. ? 索引是什么概念有什么作用?MySQL里主要有哪些索引结构?哈希索引和B+树索引比较?
  5. ? 平常用线程主要是怎么写的,会用一些线程框架吗?(没有用框架)Java线程池的概念?线程池有哪些?线程池工厂有哪些线程池类型,及其线程池参数是什么?
  6. ? ConcurrentHashMap讲一讲?
  7. ? Java GC机制?GC Roots有哪些?
  8. ? Java bin包下面的工具用过哪些?
  9. ? 算法题:红蓝两种球,总共N个, N>2, 排列组合,连续3个颜色一样是非法的,求合法的排列数量

? 二面(约五十分钟)

  1. ? 自我介绍
  2. ? 项目询问:问了简历上写得最早的项目的情况,项目QPS?数据来源和传输形式?
  3. ? 发起一个HTTP请求的过程?刚才提到DNS,DNS用的什么传输层协议?为什么说用的是TCP协议?(我说其实我不清楚是用的什么协议)他说那让你设计的话用什么协议比较合适?(思考了一下,说觉得UDP比较合适,比较轻量不占用服务器带宽,查了一下TCP和UDP都有,用在不同情境下)
  4. ? TCP协议的三次握手和四次挥手过程?
  5. ? 同步IO和异步IO的区别?
  6. ? 操作系统的blablabla?(懵)算了,直接问你好了,select和epoll?
  7. ? 线程如何实现同步?
  8. ? MySQL了解到什么程度?binLog知道吗?
  9. ? 描述一下堆排的过程?建堆的时间复杂度?最大堆中求前k个最大值的时间复杂度?
  10. ? 算法题:海岛面积计算题,给一个矩阵,0表示海水,相连的1表示海岛,上下左右表示相连。
    00011
    11011
    10001
    (1)求最大海岛面积。
    (2)求最大海岛面积和对应海岛的所有坐标。
    (3)求所有海岛的所有坐标,按海岛分。
    每小题讲思路,最后写第二题。

? 三面(综合面,约五十分钟)

  1. ? 自我介绍。
  2. ? ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用ConcurrentHashMap?
  3. ? 加锁有什么机制?
  4. ? ThreadLocal?应用场景?
  5. ? Web容器用的什么?你项目里涉及了SSM框架,一个请求到Tomcat容器了,怎么到SSM代码中去?
  6. ? 网络协议了解吗?
  7. ? **项目介绍一下是做什么的?讲一讲学到什么东西?
  8. ? 平常怎么学习?
  9. ? 大学到现在遇到的最大困难是什么?怎么克服?事情太多的时候会有压力吗?
  10. ? 未来的规划?
  11. ? 目前有offer吗?
  12. ? 设计一个系统:用来促成交易,有多种商品,有购买方和卖出方,促成买家价格大于等于卖出价格的交易。

腾讯(在线教育,面试通过,这两天两次错过电话,HR还会再给我打吗QAQ)

? 电话面+QQ远程桌面做题。

? 一面(电话面,约一小时十分钟)

  1. ? 自我介绍
  2. ? 觉得自己做得最好的项目?项目技术架构?
  3. ? HashMap有了解吗?HashMap的时间复杂度?HashMap中Hash冲突是怎么解决的?链表的上一级结构是什么?Java8中的HashMap有什么变化?红黑树需要比较大小才能进行插入,是依据什么进行比较的?其他Hash冲突解决方式?
  4. ? 实现线程安全的方式?ThreadLocal原理?线程池了解吗说说看?自己用线程池怎么定参数?
  5. ? Java堆中怎么分区?怎么判断对象是否需要回收?Java内存占用过大怎么查看?Java内存溢出有碰到过吗?Java内存溢出怎么定位?
  6. ? HTTP常见错误码?TCP三次握手?
  7. ? 进程和线程的区别?平常的开发环境是Windows还是Linux?Linux命令知道哪些?要在多个文本文件中找一个关键词用什么命令?(grep)网络相关的命令是什么?
  8. ? MySQL数据库引擎?应用场景?查询优化?NoSQL有用或了解吗?
  9. ? 排序算法了解哪些?Java里内置的是用什么排序方法?快排是稳定的吗?快排排对象的时候有什么问题?(提示我,三个字段,第一个字段和第二个字段做hash,第三个不做,还是不太懂)
  10. ? 十亿个IP,获得访问次数最多的十个。
  11. ? 五个单词,在一个长文本中查找是否存在。
  12. ? Github有用吗?平常有看一些博客和书籍吗?平常有用脚本语言做一些方便自己的事情吗?

? 二面(QQ远程桌面做题)

? 算法题:

  1. ? 快速排序算法
  2. ? 实现一个lru ***

? 智力题:

  1. ? 一个五升桶,一个三升桶,怎么倒出四升水,水可以无限量使用
  2. ? 从4亿qq号码中,统计出出现次数top 10的号码

? 三面(电话面,约一小时)

? 晚上十点钟的电话,面试官声音透露着疲惫。

  1. ? 目前有哪些Offer?地域倾向?怎么选择?
  2. ? 滴滴派发订单功能设计?
  3. ? 有声小说音频自动匹配字幕情景题,有大量的音频文件,非人力能够做到,语音识别匹配生成字幕文件,字幕文件中语音和字幕的时间需一致,如何设计?
  4. ? Linux里查看CPU占用的命令?怎么看CPU占用?
  5. ? 。。。

? 四面(电话面,约一小时)

  1. ? 场景设计题:英雄联盟H5小游戏排名,实时动态更新,如何实现?
  2. ? 场景设计题:杭州G20形象工程需要擦窗子,估计杭州擦窗子要多少费用?
  3. ? Java虚拟机相关问题

? HR面

? 常规问题。

华为(Cloud BU,收到offer call)

? 酒店现场面试。

? 一面(业务面,约半小时)

? 项目从后开始问,越早的项目问越多。

  1. ? 自我介绍
  2. ? 数据量多大?项目PG(PostgreSQL)版本?非结构化数据指的是什么?有没有考虑过nosql?分库分表怎么分?查询的表会合并在一起吗?
  3. ? 项目性能有没有考虑过?(我是做服务端的,主要考虑请求并发量)数据库性能呢?(了解一点,MySQL主从结构)
  4. ? 请求到SSH框架的流程图画一下?远程调用Shell脚本用到哪些命令?
  5. ? Nginx原理了解吗?(只用到负载均衡,介绍了一下负载均衡策略)

? 二面(综合面,约半小时)

  1. ? **项目介绍一下?用到了Nginx,用的七层还是四层Nginx? HTTP还是TCP?负载均衡策略用的是什么?
  2. ? 项目负责主要做了哪些事情?学到了什么东西?项目几个人?怎么样分工?
  3. ? 业余活动?日常时间安排?
  4. ? 为什么参加学生工作?学生工作带给你最大的收获是什么?
  5. ? 华为有什么吸引你的地方?
  6. ? 为什么报**?

CVTE(HR面挂)

? 一面(电话面)

  1. ? 自我介绍
  2. ? Spring Cloud用到什么东西?如何实现负载均衡?服务挂了注册中心怎么判断?
  3. ? Spring的优点?Spring AOP实现原理?AOP应用场景?拦截器用来做什么业务?
  4. ? MySQL数据库引擎和应用场景?
  5. ? MySQL行锁是否会有死锁的情况?
  6. ? MySQL事务隔离级别?
  7. ? MySQL平常有索引优化吗?怎么去知道一个SQL语句需不需要优化?一个表,建立了索引(B,A),问where A=1 and B=2索引是否能够生效?
  8. ? Java为什么说是面向对象的?
  9. ? Java的三大特性?如果说有两个方法,同名同参数但不同返回值,问是重载吗?
  10. ? 平常用到哪些集合类?ArrayList和LinkedList区别?HashMap内部数据结构?ConcurrentHashMap分段锁?
  11. ? Volatile关键词?是线程安全的吗?
  12. ? 如何实现synchronized一样的效果?

? 二面(视频面,面试二十五分钟)

  1. ? 自我介绍?
  2. ? 你是专业的为什么来面Java后端?
  3. ? 印象最深的项目?为什么印象深?
  4. ? Nginx负载均衡策略?
  5. ? ip_hash的优缺点?
  6. ? Nginx和其他负载均衡框架对比过吗?
  7. ? Tomcat集群Session共享问题?
  8. ? MySQL采用了什么存储引擎,为什么?
  9. ? 乐观锁和悲观锁了解吗?JDK中涉及到乐观锁和悲观锁的内容?
  10. ? 分布式锁?
  11. ? SQL题
    t_subject
    ——————————
    c_id
    c_student_uid 学生uid
    c_teacher_uid 教师uid
    c_subject_uid 科目uid
    c_score 分数
    平均分排名前三的学生uid和平均分数
    给这个SQL语句建索引怎么建?
  12. ? 算法题
    输入一个字符串String str,求重复次数最多的字符的第一个索引值
    例如
    输入:"aabcbcbc"
    输出:2(b和c都出现了3次,但b在c前面)

? HR面(视频面,挂)
CVTE的HR面题目大家都一样,未记录。

网易游戏(服务器端开发工程师-工具开发类,一面挂)

? 公司现场面试。
早上八点打车去滨江,巨紧张 QAQ 肠道一直蠕动,傻乎乎答错了好几个问题。

? 一面(挂)
9:40左右HR小姐姐让我开始手写编程题,说做半小时。
两个面试官,约11:10左右结束面试。
编程题

  1. ? 判断树对称
  2. ? 数组顺时针旋转90度
  3. ? 用wait和notify模拟生产者消费者模式

? 面试

  1. ? 自我介绍
  2. ? 项目问题
  3. ? 编程题:每题讲解一下思路?第一题判断树对称不用递归用栈怎么做?(卡住了)第三题没做完再写一下?多个生产者和消费者的情况下,你这个代码怎么修改?
  4. ? public protected private区别?final和finally区别?final可以用在方法参数上吗?RuntimeException和非RuntimeException?各举几个例子?比方说文件读写的时候会有什么异常?怎么实现序列化?除了Java原生序列化方法,序列化还有什么格式?
  5. ? JVM内存模型?每个区是做什么的?垃圾回收机制?
  6. ? synchronized 和 ReentranLock的区别?平常有用哪些集合类?Concurrent包有用吗?
  7. ? 添加索引的SQL语句?给一个abc三个字段的索引,where a=0 order by c能用到索引吗?where a=0 and b大于0 order by c能用到索引吗?Hash索引和B树索引的区别?Hash索引有区间查询吗?有没有用nosql?
  8. ? 平常用到哪些设计模式?介绍一下模式?模式和装饰器模式区别?
  9. ? NIO和BIO区别?NIO怎么写?阻塞和非阻塞,同步和异步区别?
  10. ? 平常用到的框架和库?有没有用到网络框架?Spring Cloud?中间件用到吗?
    电话+网页写代码,全程一个多小时

拼多多(一面通过,未继续后续面试)

? 约好现场面试时间和网易笔试时间冲突了 QAQ
联系人美心善的HR小姐姐帮我改成了线上面试,电话+网页写代码。
线上面试的原因,流程很缓慢,二面在前几天才联系我,想了想决定不参加了。

? 一面

  1. ? 项目介绍
  2. ? 项目问题
  3. ? HTTP协议是什么?HTTP格式?GET请求和POST请求的区别?
  4. ? TCP协议?TCP三次握手?TCP三次握手过程中什么阶段容易被攻击?DDos攻击?
  5. ? Java垃圾回收机制讲一下?
  6. ? Linux有4G的物理内存,问开一个Java进程可以给8G内存吗?物理地址和虚拟地址的区别?
  7. ? 有一个Safer对象,用来管理对象,调用里面的方法,不是线程安全的,怎么处理?(同步、乐观锁)同步并发量不行,乐观锁对多个对象字段的情况不行,除同步和乐观锁之外的方法?(ThreadLocal)
  8. ? 编程题(给20分钟):输入一个数组和一个整数,数组的长度、数组元素的范围、整数的范围都是1~20000,求数组中的某几项加起来等于整数的可能性组合数?
    四个注意点:数组未排序、可能有相同数、多个数相加也可以不局限于两项相加、情况总数。
    例如输入:10 5 3 7 5和15
    先描述一下思路,然后写。

IT交流学习请关注我的github项目:github地址


原文链接:https://www.cnblogs.com/IT-ZXB/p/12380187.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ID生成器之——别人家的方案and自家的方案

下一篇:《Java 8 in Action》Chapter 12:新的日期和时间API