个人简介

​ 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地址

2020年JAVA大厂笔经面经的更多相关文章

  1. Java工程师笔试题整理[校招篇]

    Java工程师笔试题整理[校招篇]     隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打 ...

  2. Java大厂笔试&&面试集合大全目录

    面试技巧 掌握面试技巧,提升自身软实力! HR面试都会问什么问题?(上) HR面试都会问什么问题?(下) 作为一技术人员,面试前都需要做哪些准备? 面试题 Java各个阶段面试题,帮你提升自我,拿到高 ...

  3. 2020年Java程序员应该学习的10大技术

    对于Java开发人员来说,最近几年的时间中,Java生态诞生了很多东西.每6个月更新一次Java版本,以及发布很多流行的框架,如Spring 5.Spring Security 5和Spring Bo ...

  4. 非常全面的java基础笔试题

    下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...

  5. Java 面试/笔试题神整理 [Java web and android]

    Java 面试/笔试题神整理 一.Java web 相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并 ...

  6. 2020 年 Java 程序员应该学习什么?

    大家好,我相信大家在新的一年都有一个良好的开端,并准备好制定一个提升自我技术的目标.作为 Java 开发人员,我还制定了一些目标,希望在今年成为一名更好的 Java 开发人员. 如果你尚未制定目标,这 ...

  7. mybatis-plus的Could not set property 'updateDate' of 'class com.example.pojo.User' with value 'Fri Jul 24 10:29:39 CST 2020' Cause: java.lang.IllegalArgumentException: argument type mismatch解决方案

    按照官网在写mybatis-plus的自动填充功能一直报错,发现官网的解说不全,数据库是datetime类型,java程序又是date,类型不匹配 org.mybatis.spring.MyBatis ...

  8. 贝壳2020——Java校招笔试题

    算法题4道: 题目描述: 给出n个正整数,要求找出相邻两个数字中差的绝对值最小的一对数字,如果有差的绝对值相同的,则输出最前面的一对数.(2<n<=100,正整数都在10^16范围内) 输 ...

  9. 纯干货分享!2020阿里java岗笔试面试题总结(附答案)

    前言 2020金九银十马上结束,现为大家整理了这次金九银十面试阿里的面试题总结,都是我从朋友那拿到的面试真题,话不多说,满满的干货分享给大家! int a=10是原子操作吗? 是的.  注意点: i+ ...

随机推荐

  1. 吴裕雄--天生自然 pythonTensorFlow图形数据处理:数据集高层操作

    import tempfile import tensorflow as tf # 1. 列举输入文件. # 输入数据生成的训练和测试数据. train_files = tf.train.match_ ...

  2. Pooled genome sequence strategies |representative genome assembly approaches|Domestication|GERP|selective sweep|Hybridization|Introgression|iHS|SNP genotyping arrays|haplotype

    Design based on biology 通过比较基因组学的方法,将脊椎动物基因组的数据,解决生物学各方面问题.新的调控注释(在脊椎动物的进化过程中的出现的)可以丰富物种树(比如不同功能蛋白质进 ...

  3. JavaScript下判断元素是否存在

    1. 判断表单元素是否存在(一) if("periodPerMonth" in document.theForm) { return true; } else{ return fa ...

  4. [GX/GZOI2019]宝牌一大堆(DP)

    出这种麻将题有意思吗? 乍看很难实则很水,就是麻将式DP,想必大家很熟悉了吧.首先把“国士无双”和“七对子”两种牌型判掉,然后观察牌胡的形式,发现每多一张牌实际上就是把1个面子变成1个杠子,然后可以直 ...

  5. USB Reverse Tether (a dirty solution)

    Tether your android phone to your PC using USB cable could share your 3g Internet connection with PC ...

  6. Maven中settings.xml文件各标签含义

    原文地址:http://www.cnblogs.com/jingmoxukong/p/6050172.html?utm_source=gold_browser_extension settings.x ...

  7. win下PowerShell的簡單使用

  8. AdminWebSessionManager AdminAuthorizingRealm ShiroConfig ShiroExceptionHandler

    package org.linlinjava.litemall.admin.shiro; import com.alibaba.druid.util.StringUtils; import org.a ...

  9. C# 将多个DataTable添加到指定的DataSet中

    DataSet ds = new DataSet();//创建数据集 DataTable dt1=new DataTable(); //表1 DataTable dt2 = new DataTable ...

  10. vue表格业务

    https://www.jianshu.com/p/79f39f2c1382 https://blog.csdn.net/zhongshijun521/article/details/78390614 ...