零基础学习一年,拿到BAT三家offer(Java岗)

引言

1、本文没有公众号和博客推广,请放心

2、Java后台开发的经验,其他岗位没有借鉴意义

3、纯发经验攒人品,不装不宣传,有问题留言大家一起讨论,互帮互助!!

4、个人学习方法,并不一定适合每个人。不喜欢看视频学习的就不用继续往下看了。

5、 由于读研都是自己挤时间的,过程不表,实验室的内容就没叙述了。

一面(电话)(50分钟)面的CSIG下面的腾讯云,技术栈是Java,不过几乎不咋问Java。

1. 算法题:六七道,都是剑指offer难度
2. 半小时项目介绍 & 问答
3. 分布式相关:rpc原理、微服务架构
4. 海量数据问题:套路题
5. 计网:传输层、网络层(必须要非常熟,ping的原理,tcp的三次握手、四次挥手、拥塞控制。UDP的不可靠、一对一、一对多)
6. 操作系统:虚拟内存、段式、页式、进程调度算法
7. 数据一致性: 分布式数据一致性、缓存数据一致性
8. Java相关:线程池、HashMap、CopyOnWriteArrayList
9. Redis相关:复制原理、持久化原理
10. 杂谈:最近看什么书,实习地点。

二面(85分钟)

1. 算法题:最长不重复字串
2. 半小时钟项目介绍 & 问答
3. 操作系统:Linux的namespace(不会)、进程线程、线程通信方式、进程通信方式
4. 计算机网络:传输层和网络层,因为我项目做了链路层,也讲了一下。
5. Java相关: 线程池
6. 数据库相关: 一条连表查询语句。数据库索引原理
7. 海量数据问题: 套路题
8. 杂谈:介绍了部门业务

三面(电话) (20分钟)

1. 应该是大老板面试了,问的都很哲学:技术背景、学习方法、项目介绍
2. 问了一些简单技术问题。主要考察逻辑表达和整体的素质。
2. 杂谈:介绍了部门业务

hr(电话)(15分钟)

1. 家庭情况
2. 面腾讯原因,还有面其他公司么
3. 兴趣爱好
4. 业务介绍
5. 口头offer

百度是去年找日常实习的面经,面了两个部门,整理了一下

信息中心

一面

  1. 算法:字符串反转 、 倒着打印链表(为什么用递归比用栈差?) 、 单例模式
  2. 线程start 、 run方法区别
  3. 可以不通过构造函数创建对象吗? object.clone() 反序列化
  4. volatile关键字
  5. Spring AOP原理(cglib 和 JDK的动态代理实现有什么区别?)
  6. 重写equals方法,为什么一定要重写hashcode方法?
  7. 字符串 == 比较。输出true还是false;
  8. 看了七八个程序,然后问输出什么?
  9. HashMap 能不能存储 null 能,放在第一个格子里?concurrentHashMap 能不能存储 null?
  10. 分布式系统设计:现在有一个方法,可以给10台服务器调用,如何统计一天内10台电脑调用的次数和?
  11. 分布式锁的设计:每天早上8:00输出前一天的业务报表发到老板邮箱。如果现在有10台服务器,如果设计这个定时任务?
    法1:分布式锁。法2:通过外部发来一个http请求,传给ngnix,通过ngnix自动进行分配到某一台服务器上。

二面

  1. 你对哪方面知识比较自信?
  2. HashMap初始容量多少?(16)为啥要设计初始为16?如果传入容量10会怎么样?(还是会构建16容量的);
  3. 知道什么异常?(说几个)
  4. http的状态码说几个。403是什么状态?
  5. String有什么方法?
  6. list,set集合在iterator输出的时候能删去值吗?
  7. SimpleDateFormat是线程安全的吗?
  8. 手写左连接。
  9. 聚合函数有哪些?

三面

  1. 算法题:数组A和数组B,求 A并B - A交B;(说了几种,好像不满意不是最优解)
  2. 算法题:矩阵搜索(说完之后问优化,没想到,提示二分搜索);
  3. SSM的运作流程,说说你做的项目难点。
  4. GET POST请求,url里面的参数
  5. 说说索引,如果对每一列都建索引有什么不好?
  6. 白盒测试、黑盒测试
  7. Linux会吗?

凤巢

一面

  1. 算法题:手写堆排序
  2. Spring IOC原理 AOP原理,如何利用AOP实现日志,写过吗?
  3. Spring bean创建的方法 注解 @Service xml配置 @bean
  4. Java反射原理?
  5. SpringBoot 里面 @bean 解释一下
  6. Java内存模型和运行时数据区
  7. Spring 中事务@Tranctional,出现异常回滚是怎么实现的
  8. 数据库MVCC原理
  9. 乐观锁和悲观锁概念
  10. 悲观锁的实际例子。 select * from table for update …
  11. 乐观锁实际上有没有加锁?
  12. 用两个线程去操作数据库,乐观锁具体是什么实现的?演示一遍,画一画
  13. 数据库常用存储引擎,区别,锁范围。
  14. 写过单纯的非web项目的 Spring工程, 用main实现的吗?例子。
  15. SSM 三层技术架构的总体流程
  16. @component @service @controller 三个区别
  17. mybatis中 # 和 $ 的区别?哪个会出现SQL注入?
  18. JVM 新生代,老年代。survival是不是在任意时刻都只有一块有对象?
  19. JVM 垃圾收集器了解哪些?

二面

  1. 算法题: 实现一个四则运算计算器(两个栈 + 优先级) , 冒泡排序
  2. 输入一个网站的全过程。从计算机网络到服务器内部技术实现流程。
  3. 日常怎么学习。

###头条面试

一面

1. 算法题:二分搜索相关
2. 概念题:解释 分布式、微服务、负载均衡、高可用
3. http是有状态还是无状态? TCP是有状态还是无状态?
4. 客户端禁用cookie怎么办? 你说的实现方式安全吗?
5. SSL,http和https,https是有状态还是无状态?
6. String为什么设计成final不可变? 是怎么实现不可变的?
7. 自己能实现一个不可变的类吗?
8. equals 和 hashcode 为什么要一起重写?如果不重写hashcode会出现什么问题?
9. hashmap插入的时候,哈希冲突解决? 查找的时候,哈希冲突怎么解决?
10. hashset是怎么实现的? hashmap是怎么实现hashset的?
11. 多线程:并发和并行,原子类,CAS操作
12. mysql的索引:B+树底层实现?B树的底层实现?为什么要用B+树而不用B树?
13. 最左前缀匹配具体是怎么实现查找的?最左前缀匹配用了B+树的哪些特性?
14. (a,b,c)联合索引,为什么不能单用(b),而一定要用(a,b)?B+树是怎么实现的?
15. 什么是幻读,不可重复读?这些概念是在事务内还是事务外? 事务内
16. mysql怎么实现可重复读?设置了可重复读隔离级别底层是怎么实现的? (MVCC)
17. 了解MVCC吗?怎么实现的?什么是快照读?快照读能读取到最新的吗?快照读和当前读的区别?
18. synchronized和reentrentlock哪个效率高?

二面

1. 算法:实现一个缓存队列 ,二叉树的镜像
2. 进程和线程的区别?内存管理说一下你的了解。进程调度算法。
3. 为啥B+树最后叶子节点需要用链表相连接? 便于区间查找
4. TCP状态转换图,画一下。
5. 操作系统I/O模型了解吗?epoll模型了解吗?
6. CopyOnWriteArrayList的相关特性?
7. ArrayList遍历的时候能删除元素吗? 删除的时候会报什么异常?

三面

1. 算法题: (1)树的节点最大距离(2)区间覆盖 例 [1 3] [2 5] [3 6]能否覆盖[2 6]
2. Linux相关命令。
3. 手写SQL,join

最后针对于互联网公司java程序员涉及到的绝大部分难题我做成了文档和架构视频资料免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料),希望能帮助到且找到一个好的工作,也节省大家在网上搜索资料的时间来学习,也可以关注我一下以后会有更多干货分享。
资料领取方式:Java高级架构;603619042
零基础学习一年,拿到BAT三家offer(Java岗)_第1张图片

你可能感兴趣的:(java,JAVA,SPRING,MYSQL,REDIS)