硕士211,零基础自学Java,一年拿到BAT三家offer(附面经)

 

硕士211,零基础自学Java,一年拿到BAT三家offer(附面经)_第1张图片

 

引言

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

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

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

4、个人学习方法,并不一定适合每个人。

5、 学习都是自己挤时间的,过程不表。


背景

本人本科一本双非垫底的那种,硕士211。本硕电子通信,完全0基础,转行一年。


起步

1、实话说,刚决定转行的时候完全零基础一开始真的啥也不会,甚至不知道怎么去学习。的确,计算机资源很多,自学足够的但是完全不知道怎么去用去学习啊!

啥是leetcode?

啥是github?

啥是IDEA?

各种疑问,怎么操作啊?点哪个啊?身边没有人教啊。

有时候真的只是懂的人点两下的事情,自己搞要一下午。妈个鸡,第一个月真是完全浪费时间,差点原地放弃。

 


调整战略

1、战略上坚定信心:既然那么多人都可以做程序员,甚至高中生都可以,别人可以我肯定也可以。

2、战术上制定计划:培训班看视频我也看视频咯,对,就是各种视频。(现在想想自己甚至就是培训班出来的)

视频的好处是快速入门,犹如身边有老师手把手教,一步一步操作给你看。很重要一点,培训班老师上课非常认真,真的是面向高中生水平讲课。完全不用担心有卡顿,看不懂。记得某门课老师还在讲啥是二进制和排列组合,,,,

这样,我先把面经给大家:

腾讯云

面的CSIG下面的腾讯云,技术栈是Java,不过几乎不咋问Java。

一面(电话)(50分钟)

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. volatile的底层如何实现,怎么就能保住可见性了?

2. 三个线程如何实现交替打印ABC

3. 线程池有哪些创建方式和安全性问题

4. 有哪些线程池的类型

5. 线程池中LinkedBlockingQueue满了的话,线程会怎么样

6. 线程池的底层原理和实现方法

7. 线程之间的交互方式有哪些?有没有线程交互的封装类 (join)

8. 算法:堆排序、栈实现队列、反转链表

9. Java锁机制,都说一下~

10. 除了@ResponseBody,controller层如何标准返回给前端所要的数据类型?你会怎么实现?

11. 异常捕获处理

12. Spring MVC的原理和流程

13. HashMap和ConcurrentHashMap哪个效率更高?为什么?

14. Redis的缓存淘汰策略有哪些?

15. Java内存模型说一下

16. mybatis如何进行类型转换

17. mybatis的xml有什么标签

18. MySQL锁机制

19. 如何修改linux的文件权限

20. jvm的回收算法

21. 你会怎么设计数据库表结构

22. 数据库有哪些索引?

23. 如何防止sql注入

24. 抽象类和接口有什么不同

25. myql间歇锁的实现原理

26. future的底层实现异步原理

27. SpringBoot Starter原理

28. rpc原理

29. 多个服务端上下线怎么感知

30. 缓存和数据一致性,怎么处理。流式计算

31. 多线程讲一下,FutureTask

32. Java和mysql的锁介绍,乐观锁和悲观锁

33. 分布式一致性讲一讲

34. 分布式锁的实现方式,zk实现和redis实现哪个比较好

35. 多点登陆怎么实现

36. 把乐观锁加在数据库上面,怎么实现

37. 项目介绍

38. 降级处理hystrix了解过么

39. 两次点击,怎么防止重复下订单

40. ioc原理详细讲讲,源码看过么

41. 静态代理和动态代理的区别

42. JUC说说你知道的东西

43. B+树的叶子节点

 

菜鸟

一面

1. Java内存模型

2. full gc怎么触发

3. gc算法

4. 高吞吐量的话用哪种gc算法

5. ConcurrentHashMap和HashMap

6. JDK8的stream的操作

7. volatile原理

8. 有参与过开源的项目

9. 项目介绍

10. 线程池原理,拒绝策略,核心线程数

11. 1亿个手机号码,判断重复

12. 是否有写过小工具

13. 单元测试介绍一下,多模块依赖怎么单元测试。Mockito

 

二面

1. 项目介绍

2. dubbo、netty介绍原理

3. 限流算法

4. zk挂了怎么办

5. 秒杀场景设计,应付突然的爆发流量

6. redis的热点key问题

7. redis的更新策略(先操作数据库还是先操作缓存)

8. 分布式数据一致性

9. 一致性哈希

10. 消息队列原理介绍(不太会)

11. full gc问题,怎么排查

12. jvm的回收策略

13. ClassLoader原理和应用

14. 注解的原理

15. 数据库原理,数据库中间件,索引优化

16. aop原理和应用

17. 大数据相关,MapReduce

18. 机器学习有了解么?

19. Java的新技术,以及技术最新进展

20. Docker的原理

 

三面

1、全程项目

2、讨论了一下数据库表设计

 

四面

1、项目介绍

2、分布式事务

3、Java三大特性

4、数据库表设计

5、RPC原理

6、netty原理

7、降级策略和降级框架

 

HR

都是基础问题

 


百度

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

信息中心

一面

算法:字符串反转 、 倒着打印链表(为什么用递归比用栈差?) 、 单例模式

线程start 、 run方法区别

可以不通过构造函数创建对象吗? object.clone() 反序列化

volatile关键字

Spring AOP原理(cglib 和 JDK的动态代理实现有什么区别?)

重写equals方法,为什么一定要重写hashcode方法?

字符串 == 比较。输出true还是false;

看了七八个程序,然后问输出什么?

HashMap 能不能存储 null 能,放在第一个格子里?concurrentHashMap 能不能存储 null?

分布式系统设计:现在有一个方法,可以给10台服务器调用,如何统计一天内10台电脑调用的次数和?

分布式锁的设计:每天早上8:00输出前一天的业务报表发到老板邮箱。如果现在有10台服务器,如果设计这个定时任务?

法1:分布式锁。法2:通过外部发来一个http请求,传给ngnix,通过ngnix自动进行分配到某一台服务器上。

 

二面

你对哪方面知识比较自信?

HashMap初始容量多少?(16)为啥要设计初始为16?如果传入容量10会怎么样?(还是会构建16容量的);

知道什么异常?(说几个)

http的状态码说几个。403是什么状态? 

String有什么方法? 

list,set集合在iterator输出的时候能删去值吗? 

SimpleDateFormat是线程安全的吗? 

手写左连接。

聚合函数有哪些? 

 

三面

算法题:数组A和数组B,求 A并B - A交B;(说了几种,好像不满意不是最优解)

算法题:矩阵搜索(说完之后问优化,没想到,提示二分搜索);

SSM的运作流程,说说你做的项目难点。

GET POST请求,url里面的参数

说说索引,如果对每一列都建索引有什么不好?

白盒测试、黑盒测试

Linux会吗?

 

凤巢

一面

算法题:手写堆排序

Spring IOC原理 AOP原理,如何利用AOP实现日志,写过吗?

Spring bean创建的方法 注解 @Service  xml配置  @bean

Java反射原理?

SpringBoot 里面 @bean 解释一下

Java内存模型和运行时数据区

Spring 中事务@Tranctional,出现异常回滚是怎么实现的

数据库MVCC原理

乐观锁和悲观锁概念

悲观锁的实际例子。 select * from table for update ...

乐观锁实际上有没有加锁?

用两个线程去操作数据库,乐观锁具体是什么实现的?演示一遍,画一画

数据库常用存储引擎,区别,锁范围。

写过单纯的非web项目的 Spring工程, 用main实现的吗?例子。

SSM 三层技术架构的总体流程

@component @service @controller 三个区别

mybatis中 # 和 $ 的区别?哪个会出现SQL注入?

JVM 新生代,老年代。survival是不是在任意时刻都只有一块有对象?

JVM 垃圾收集器了解哪些?

二面

算法题: 实现一个四则运算计算器(两个栈 + 优先级) , 冒泡排序

输入一个网站的全过程。从计算机网络到服务器内部技术实现流程。

日常怎么学习。

 


头条

去年找的面经,整理了一下。三面算法没写出来,挂了。

一面

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

 


一些补充

学习方式

我比较喜欢视频快速入门-->书籍慢慢深入-->再动手实操。

个人认为,学习不分方式,适合自己的就是好的,有些人比较歧视培训班出来的,我关注的某技术大佬就是培训班出来的,感觉非常强。

 

搜索资源

有些人学的不够快是找的资源方式不对。

多向师兄师姐打听(这点就不用我多介绍了)

多加技术QQ群讨论(大家没有好环境的话,可以找我,我拉你)

 


有什么问题,欢迎留言沟通,在这里也祝大家都能找到一个合适的工作~

特别声明:本文素材来源于网络,仅作为分享学习之用,如有侵权,请联系删除!

 

你可能感兴趣的:(硕士211,零基础自学Java,一年拿到BAT三家offer(附面经))