通过自己努力,斩获五个大厂意向书!

作者在金九银十期间收到多家互联网公司意向offer,分享面试经验。包括面试前准备自我介绍和项目介绍,还给出美团、字节跳动等公司面经,涉及Java、数据库、算法等技术问题。此外,讲述拿下offer前准备简历、提升技能、多刷面试题等成长笔记。

前言:

总有人说先拿出offer炸炸人,否则没人看...

咱不是那么庸俗的人,但也没有那么脱俗...

鄙人截止到目前止,开通、美团、阿里、京东、字节 都收到意向offer

跳槽时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽。切不可跟风,看到同事一个个都走了,自己也盲目的开始面试起来(期间也没有准备充分),到底是因为技术原因(影响自己的发展,偏移自己规划的轨迹),还是钱给少了,不受重视。
准备不充分的面试,完全是浪费时间,更是对自己的不负责(如果title很高,当我没说)。

秉着回报社会,坚持中国特色社会主义,挽救新一代码农的思想,整理了下各个公司的面筋、考点,希望能激励各位搬砖工,起到鼓足干劲,力争上游的作用O(∩_∩)O

面试,跳槽,每天都在发生,而对程序员来说即将到来的"金九银十"更是面试和跳槽的高峰期,跳槽,更是很常见的,对于每个人来说,跳槽的意义也各不相同,可能是一个人更向往一个更大的平台,更好的地方,可以通过换一个环境改变自己的现状。而我正是其中一员,投了十多家互联网公司,目前 已收到五个Offer,其实跳槽是把双刃剑,有好也有坏,要看你是因为什么原因跳槽。如果说你即将准备跳槽,是否准备充足了呢?小编即将分享的正是这些面经分享和我的成长笔记

面试前的准备:

面试的时候99.99%的公司都会让你做一下自我介绍和最近做的一个项目,所以自我介绍和项目要提前打好草稿,特别是不太会说话的。

自我介绍:

我觉得简洁一点就行了,一般面试官都会趁着你自我介绍的时候看简历,也没认真听你做自我介绍。

下面是我自己打的草稿:

面试官你好,非常荣幸参加贵公司的本次面试。下面我简单的介绍一下我的个人情况,我叫xx,xx年毕业于xxx学院xxx专业。目前在xxx公司工作,主要是从事xxx开发。 通过xxx招聘平台关注到贵公司岗位的招聘信息,这个职位比较符合我未来的职业发展,而且贵公司的业务对我都非常有吸引力,非常希望能够进入贵公司发展。
我对技术有浓厚的兴趣,专业知识面宽,技术也相对全面,责任心强,思路清晰,沟通能力好,熟悉JAVA体系, 对各种开发流程和主流架构模式,设计模式和UML,有较强的需求分析、架构设计、项目管理能力,并有丰富的实战经验; 出于对工程师文化的向往,我在研发团队管理期间,尝试了多种方法去建立良性的团队氛围,并有效的改善了研发效率; 技术是为产品支撑的,所以我现在也在熟悉产品设计过程,希望可以结合公司发展战略,营销策略,跟着团队打造出一个好的产品。

上面的可以适当简化一下,能说出来多少取决于你的记忆力。

项目介绍:

这个是真的要提前准备好说辞,不然你面试的时候边想边说,说起来磕磕巴巴的,你给面试官的第一印象就不好了,至少说明你的表述能力不强。

介绍项目的话可以不用太紧张,面试官才拿到你的简历看多久,所以肯定是对你自己的项目是最熟悉的。需要注意的地方就是不要只讲一些业务相关的,面试官不需要知道这些,他只关心你的技术能力是否足够,通过你的描述知道你使用了什么技术,再根据相关的技术进行提问。

贴一下我的草稿:

我在xx公司做的xx系统,客户主要是xx,项目的功能主要是提供代理雨伞,代理快递,代理订餐,图书借阅等服务,后台用的是主体架构是使用Spring Cloud,微服务模块划分为xxx,我主要负责其中xxx几个模块的开发, orm用的是mybatis,数据库是用的mysql,缓存是用的redis,前台用到了vue技术。共有xx个同事参与开发,整个项目持续了xx时间。

面试官会对他感兴趣的点进行提问。

面经分享:

(面试次数有点多,着重讲述几次经典面试。)

美团面经分享:

美团一面:

  1. 做一下自我介绍吧,简单说一下你的项目;

  2. 有遇到过内存泄漏吗?你们是怎么解决的?

  3. java的基本类型有哪几个?String是不是java的基本类型?String为什么要是final类型的?

  4. 反射机制的底层实现是什么?动态呢?动态的实现原理?

  5. hashmap了解吗?说一下hashmap相关的一些东西?hashmap是线程安全的吗?为什么是线程安全的?

  6. concureenthashmap了解吗?他是如何实现线程安全的?

  7. 你刚才说1.8基于cas?cas的ABA问题怎么解决?

  8. 说一下JVM的线程模型?这些区域都分别是干啥用的?

  9. 说一下java类加载器的工作机制?类加载在哪个区域进行的?

  10. 说一下java的线程模型?

  11. violate了解吗?它的原理是什么?violate是线程安全的吗?

  12. 保证线程安全的解决方法有哪些?说一说读写锁吧,读写锁的读

  13. 数据库的索引有哪几种?为什么要用B+树来做索引?组合索引和几个单个的索引有什么区别?数据库的大表查询优化了解吗?MVCC机制了解不?MVCC机制有什么问题?怎么去解决这个问题?mysql慢语句调优做过吗?说说你是怎么做的?

  14. redis了解吗?你说说怎么用redis实现分布式锁?

  15. spring中Bean的作用域,springMVC的controller是线程安全的吗?怎么去保证线程安全呢?

  16. 消息队列有用过吗?说说你怎么用的?

  17. 计算机网络了解吗?说一说TCP三次握手和四次挥手吧

  18. time_wait状态产生的原因是什么?,有什么危害?可以如何避免?

  19. 寻找旋转排序数组中的最小值

美团二面:

1、手撕算法

  • 10个多线程保证 i从0加到10 (差点翻车,主线程忙等另外10个线程完结)

  • 反转链表

  • 上台阶(n=80)

2、操作系统

  • 常用的linux命令说一下

  • 操作系统中的信号 和 信号量有什么关系

  • epoll 和 Selector 有什么区别?

3、计算机网络

  • 说一下拥塞控制

4、数据结构

  • 说一下红黑树,你平时用的技术哪里用到了它?

  • 哈希表怎么处理冲突?

5、项目相关

  • 把项目放到服务器上运行的时候有没有遇到什么问题?查看项目运行的状态怎么做?

  • spring 和 springboot的关系你是怎么理解的?

  • Spring IOC和AOP说一下你的理解

  • 为什么用消息队列?

  • 对于消息的重复消费你有什么设计方案吗?

美团三面:

  • 你怎么学的Java啊?

  • 设计模式了解吗?单例讲一下,懒汉饿汉double-check,怎么实现。策略模式,外观模式,适配器模式,装饰器模式,分别讲一下

  • 联合索引什么时候不会触发索引?

  • AOP了解么,有什么好处,如何使用,怎么实现的?

  • 支付宝到银行的转账业务怎么实现?

  • redis实现分布式锁

  • 三台机器集群,按不同权重访问,怎么做?

美团四面(hr):

  • 先介绍一下你自己吧

  • 说一下四种IO模型

  • 平时怎么去学习的?

  • 为什么你说学习了要去实践?

  • 说一下的最大的优点和缺点

  • 举一下你缺点的例子

  • 想象一下你几十年后是怎样的生活?

  • 你觉得最痛苦的一段时间

  • 对你影响最大的一件事情

  • 在安排活动的过程中有没有发生什么冲突?

  • 你有什么崇拜的人吗?

  • 你有什么想问的?

美团面经答案整理

字节跳动四面斩获Offer,定级P6(技术题,不含HR面)

  • 态类的关系,组合和聚合的区别、哪个关系更紧密?

  • 说一下反射,及你在项目中的应用

  • 线程池,线程池参数

  • 线程间的通信

  • 介绍ThreadLocal

  • ConcurrentHashMap,JDK1.7和1.8的不同实现

  • Hash算法

  • 什么是时间复杂度?

  • 问项目,项目中数据库的结构设计,整体框架等

  • 用过数据库索引吗?介绍如何使用,何时使用?

  • 介绍B树、B+树、红黑树

  • 数据库分页查询,如何分页,怎么实现?

  • 四种隔离级别,虚读和幻读什么意思发生在哪?

  • 使用的MySQL版本,和之前版本的区别

  • 使用什么版本的JDK(我答1.8)介绍和之前版本的不同

  • 1.7和1.8的JVM有哪些不同?

  • 1.8的垃圾回收算法,介绍你所知道的垃圾回收算法,CMS垃圾回收器简单介绍

  • ConcurrentHashMap的size()函数1.7和1.8的不同,或者介绍一下如果是你如何设计

  • 排序算法,介绍一下快速排序,快速排序时间复杂度,是不是稳定排序,介绍几种你所知道的稳定排序算法

  • UDP,TCP,HTTP介绍一下,OSI七层模型

  • Java的锁机制

  • 死锁产生的原因

  • 说说Spring的生命周期吧

  • 说说GC的过程

  • 强制young gc会有什么问题?

  • 知道G1么? 回收过程是怎么样的? 你提到的Remember Set底层是怎么实现的?

  • CMS GC有什么问题?

  • 怎么避免产生浮动垃圾?

  • 算法题:(1)最大子序列和;(2)反转链表;(3)数组中查找两数之和为K的序列对

  • 分布式追踪的上下文是怎么存储和传递的?

  • SpringMVC不同用户登录的信息怎么保证线程安全的?

  • 我们聊聊mysql吧,说下索引结构,为什么使用B+树?

  • Dubbo的RpcContext是怎么传递的?主线程的ThreadLocal怎么传递到线程池?你说的内存泄漏具体是怎么产生的?

  • 线程池的线程是不是必须手动remove才可以回收value?那你说的内存泄漏是指主线程还是线程池?

  • 什么是索引覆盖?

  • Java为什么要设计双亲委派模型?

  • 什么时候需要自定义类加载器?

  • 做题:手写一个对象池

更多面经分享

以下面经就不具体详说,大致方向都差不多。

京东物流

  1. java特点描述一下,继承封装多态分别是什么意思

  2. synchronized和lock区别

  3. ConcurrentHashMap线程安全怎么实现的

  4. 创建线程的几种方式,创建线程池几个参数的含义,线程饱和策略

  5. sleep和wait区别

  6. spring是单例还是多例,多线程并发会出现什么问题

  7. SpringBoot如何解决跨域,具体怎么配置

  8. 全局异常捕获怎么做的

  9. SpringSecurity的前后端分离,登录怎么做的 我:拦截登录的url,然后获取到用户名和密码,把这个用户名和密码交给manager,manager会交给具体的provider处理,provider会调用UserDetailsService的方法完成验证。 这里是我失误了,他说用户名和密码时通过getattribute 获取到的吗,我说是的。

  10. 怎么设计一个安全的对外接口

  11. 单线程的redis为什么这么快

  12. redis持久化方式

  13. 什么是聚簇索引,什么是非聚簇索引

  14. mysql事务隔离级别

  15. 你觉得你能承担独立开发的任务吗

开通金融

做互联网金融的,公司总部在北京,我面试的时候是在成都的新网银行公司,看这个模式应该就是驻场开发了,但是公司本身不是外包。

  1. springboot和spring的不同

  2. springboot特性,自动装配怎么实现的

  3. spring用到哪些组件,具体场景

  4. spring默认是单例还是多例,全局变量会有什么问题

  5. spring事务传播行为、隔离级别

  6. aop实现方式,jdk动态代理和cglib动态代理区别

  7. jdk lambda表达式几种使用方式,取最大和最小值,list转map,list中有重复的怎么办

  8. 线程池 有哪些参数,各个参数的意义

  9. ioc容器有什么优点

  10. jvm 堆栈,区别,线程共享还是线程私有的

  11. springcloud组件、用途,负载均衡的几种算法

  12. 分布式事务怎么做的

  13. mybatis一对多,多对多怎么做

  14. jpa和mybatis区别

  15. vmstat命令干嘛的

  16. redis查看内存占用命令

  17. mysql导入大量数据怎么优化

  18. mysql有一条数据死锁了,怎么排查问题,mysql表死锁,怎么排查

  19. nginx反向代理是什么,正向代理呢

这次面试回答得挺好的,hr也打了好几次电话说面试官对我挺有意向的,就是一顿操作猛如虎,一问工资0.9。而且我当时还是在职,要求我一周到岗,我就没去。

以上面经答案,和其他部分面经分享已整理成PDF文档,有需要完整文档资料的朋友,可以帮忙三连支持一下

拿下offer前,我做了些什么?(我的成长笔记)

1.准备简历

之前已经说了,简历是门面,更是敲门砖,能否拿到大厂的面试机会,就要看自己的简历如何,抛开学历以外,大厂最看重简历是否有亮点,因此我们对简历内容要有准备,对自己的突出点,包括技术、个性上的亮点,要练习表达,避免临时组织语言。

2.提升技能

实际上我有个阿里的朋友很早之前就向我透露过,很多人认为大厂看重学历,但实际情况并不完全是,在阿里只以能力论英雄。所以,在日常生活中,通过不断地学习,提升自己的能力,努力去拉近自己与目标值的距离,这是很有必要的,也是未来的必然趋势。

关于提升自己的技术栈广度与深度,我的做法是:

01.阅读实战文档

02.读一些源码

03.读一些技术笔记

4.多刷面试题

对于base不是太好的人来说,刷面试题实际上是最具有“急救”效果的办法,因此在面试阿里前,我是刷了不少面试题的,目的倒不是希望面试时能被问到原题,而是对大厂面试有一个相应的了解,清楚阿里面试会问一些什么,涉及到哪些技术栈等。

01.Java核心面试知识点整理

02.算法部分(LeetCode+算法的乐趣)

03.BAT大厂面试真题+专题训练

总结:

以上便是我的学习笔记和方式,让我成功的在金九银十拿到多个offer,相信爱学习的你只要静下心来学习,更多的大厂offer会向你招手。

学无止境,学习是一种态度,无论你是小白菜鸟,还是技术大牛,日常都不能够落下学习这件事情,一旦落后下来,就容易遭到淘汰。

以上就是我的经历分享,和资料整理,全部都已打包好,均是免费分享的

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值