面试前的准备:

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

项目介绍:

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

面经分享:

美团面经分享:

美团一面:

  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了解么,有什么好处,如何使用,怎么实现的?
  • 支付宝到银行的转账业务怎么实现?

美团四面(hr):

  • 先介绍一下你自己吧
  • 说一下四种IO模型
  • 平时怎么去学习的?
  • 为什么你说学习了要去实践?
  • 说一下的最大的优点和缺点
  • 举一下你缺点的例子
  • 想象一下你几十年后是怎样的生活?
  • 你觉得最痛苦的一段时间
  • 对你影响最大的一件事情

需要资料可以   点击此处  凭截图获 即可获取~

美团面经答案整理

字节面经:

字节跳动一面:

  • 实习项目就聊了差不多30分钟
  • 问了MySQL的索引
  • redis的string类型
  • 为什么使用RabbitMQ?
  • RabbitMQ有哪些部件?如何保证准确性跟一致性?
  • hashcode和equals?
  • 动态代理
  • 快排
  • 无序数组计算每个位置大于前面的多少个数字(归并排序)

字节跳动二面:

  • 谈谈项目?
  • mongodb底层原理或者数据结构是什么,务处理,插入和mysq有什么区别,为什么会慢
  • 如载过程(Java) ,每一步做了什么
  • 子类和父类的实例变量和方法有什么区别
  • 重载和覆盖区别,返回值类型不同,可以重载吗,为什么,底层如何实现的
  • java多线程,状态图,画出来,阻塞的状态有哪几种,运行顺序,多线程的一些方法
  • java泛型
  • ThreadLocal, Concurrent 下面的包,原理是什么,
  • AtomicInteger,原理是什么,如何做到高效率的,有什么优化措施
  • 悲观锁和乐观锁
  • @Transaction的原理,还有比如在一个类中两个方法, -个是B方法,-个是C方法, B. 上没有注解,C上
  • 有那么在外面调用B**有事务,为什么,根据底层原理能不能推断出来(给提示问你能不能推断出来)
  • 查询学生成绩不及格的所有人的姓名和编号,根据这个语句,如何建立索引,为什么,
  • mysq底层是什么,为什么效率高,主键能不能太大,为什么,如果太大,底层数据结构会不会变化,为什么

字节跳动三面:

  • 数据仓库,雪花模型和星型模型区别和用处,数据仓库的过程(分层) ,如何设计
  • 数据仓库和数据湖的区别
  • 分布系统的设计,分布式系统CAP,分布式系统的模型
  • linux环境下的线上业务管理有没有,如何管理
  • redis的集合有没有限制,限制是多少
  • redis的1w条的插入和更新有什么区别
  • mysql join的底层原理是什么,有哪几种(不是左右连接这种)
  • linux命令查询一个文件内出现重复最多的数字的
  • linux命令查询一个文件的行数

字节跳动HR:

  • 自我介绍,对公司面试的评价,实习时间
  • 为什么转专业?
  • 你认为你有什么优点?有什么缺点?有什么兴趣爱好?
  • 在团队中习惯充当什么样的角色?
  • 遇到过比较困难的事情是什么?觉得自己很幸运的事情是什么?
  • 对于未来的规划?有没有使用过公司的其他产品?有没有转正想法?
  • 你还有什么想问的?

更多面经分享

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

京东物流

  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. 怎么设计一个安全的对外接口

开通金融

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

  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 堆栈,区别,线程共享还是线程私有的

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

以上面经答案,和其他部分面经分享已整理成PDF文档,有需要完整文档资料的朋友,可以   点击此处  凭截图获 即可获取~

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

01.阅读实战文档

02.读一些源码

03.读一些技术笔记

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

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

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

需要资料可以   点击此处  凭截图获 即可获取~