基本介绍:普通985本+海外渣硕,大二转到CS专业,大三项目交流3+2,19年10月留学毕业,有工程项目,无实习无额外加分项,主Java研发岗,非battmd级别选手,加一起拿了4个offer,最后准备去星环了。
字节跳动一面12.24(游戏研发秋招补招)
程序:
1.实现优先队列
2.设计2D游戏功能输入两个角色位置输出射击转向角
3.环形buffer设计
提问:
1.二叉树与堆的关系
2.B+树
4.内积点乘叉乘
5.CAS机制
6.重载重写和多态
字节跳动二面12.28
1.内积点乘叉乘
2.堆
3.排序各种数据结构
5.集合类中为什么不用int(为什么Java集合不能存放基本数据类型,只存放对象的引用)
6.同步和异步
7.多态
8.TCP表头
9.四次挥手
字节跳动一面3.30(服务器研发春招)
1.链表k次反转
2.DB语句查询比平均分高的学生总数
3.如何查询IP地址是否在国内网段
4.线程池
5.Reentrantlock
6.synchronized
7.组合索引
8.JVM内存结构,类加载信息存储在哪
9.数据库的隔离级别
字节跳动二面3.30
1.磁盘文件到JVM的加载过程
2.类存在的意义
3.如何确定session存放值比如用户id
4.手写生产者消费者模式
5.a数组用b数组顺序排序
字节跳动7.17(研发秋招提前批)
1.查找树中连接两个节点最大路径
2.进程间通信效率最高的方式
3.共享内存怎么实现
4.Mysql四种隔离级别
5.MysqlInnoDB和MyISAM区别
6.Mysqlprofile是做什么的
7.Redis负载均衡热键和大键的影响
8.Redis主从机制分片分布式
9.缓存怎么实现
10.LRU和FIFO
11.分页原理
12.tcp拥塞控制
字节跳动8.18(秋招)
2.time-wait和close-wait
3.最左看二叉树第一个节点
4.mysql左前原则
5.innodb索引b+树子节点一定存表行信息吗
6.redis持久化主进程和子进程
7.有序集合数据结构怎么实现
8.jvm判断回收
9.minorgc和fullgc
10.类加载过程
11.java四种引用
12.方法区
13.项目
14.队列集合怎么实现的,有哪些
15.类加载过程的不足
16.blockingqueue怎么实现阻塞
17.哪些对象可以作为gcRoot
字节跳动8.18二面
1.dns过程
2.dns递归调用和叠代调用
3.tcp可靠性含义
4.tcp可靠性应用
5.拥塞机制
6.长连接短链接
8.select函数,epoll函数
9.静态链接库和动态链接库
10.进程和线程
11.编译和链接的区别
12.最大连续和dp解法
面试总体体验很好很全面,我基本都是二面挂,每次都是面挂之后总结重新刷新知识库,然后学习很多。
阿里巴巴7.24(一二面在一天,秋招提前批)
1.项目
2.大数据优化内容
3.口述程序整数反转
4.zk的作用
5.kafka的partition
6.kafka中一个broker故障,会怎么办
7.flink如何实现exactly-once语义
8.flink的实现原理
9.其他流处理框架与flink的区别
10.spark如何处理流处理
11.storm如何处理流处理
12.lambda框架原理
13.如何解决超卖问题
14.如何用算法解决高并发
15.如何大数据快速查询一条数据
16.redis存储数据,在工程中的作用
17.怎么做evaluation验证flink效果
阿里准备的最多,面试官安排了三面,不过和三面面试官商量了下,我10月毕业,他们招11月之后的,为了怕被泡池子(因为能力并不突出)还是放弃了。
腾讯3.7一面(春招实习)
1.Java多态的实现
2.TreeMap和HashMap的区别
3.MySQL索引底层的实现
4.什么是NoSQL,NoSQL的常见应用
5.Redis的数据结构
腾讯3.8二面
1.GC是怎么判断年代的
2.浮点数怎么存储
3.什么是TTL,什么是TraceRoute
腾讯3.20三面
1.项目,大数据框架了解
2.GC回收
3.网络查找命令
4.Linux磁盘命令
5.网络第二层和第三层有什么区别
6.linux的常用指令
面试官说理论还可以,具体操作能力不行。。
腾讯8.9(秋招提前批)
自己讲:
1.JVM
2.linux内核
3.zookeeper
4.kafka消息队列
5.数据库mysql和redis
6.分布式事务
7.微服务框架
8.网络攻击
9.代码耦合性
10.项目完成背景
11.TCP,UDP
期间提问:
1.Zab协议
2.进程地址存储
3.网络编程IO多路复用
4.网络传输模型
5.IO过程
6.新的微服务框架
王者荣耀项目组。。。我还说我不喜欢玩王者哈哈哈(一个半小时脑子晕掉了)
拼多多3.25一面(春招java岗)
1.jsp到servlet过程,servlet生命周期
3.hashmap结构,concurrenthashmap结构
5.JVM内存模型,垃圾回收
6.Tomcat运行原理
7.手撸死锁模型
8.流处理与批处理区别
9.storm和flink的区别
10.怎么学习的
拼多多3.28二面
1.手撸适配器模式
2.手撸代码并查找边界错误
3.SpringMVC框架
4.BASE原则
5.分布式原理CAP原则
6.Java反射
7.private属性,final类型举例
8.ReadWriteLock
9.数据库-四种隔离级别-脏读/幻读/-索引
晨星3.26(一面)
1.网络:tcpudp区别
2.面向对象抽象类和接口区别
3.单例模式实现
4.数据库索引
5.Js怎么面向对象
6.装饰器模式原理
7.静态类和单例模式有什么区别
8.设计一个股票推送的设计模式
9.容错分析题:页面加载慢原因
晨星二面(留的作业)
1:请在数据库设计两个表,分别存储股票每天的交易数据表,和上市公司的运营数据表
,画出相应的数据表和对应关系。
3.聊人生
然后就是hr面了
BiGo一面12.20
1.原始项目介绍
2.JavaHashMap/TreeMap
3.多线程方法
3.JVMGC算法
4.死锁
5.Flink
6.static关键字
7.数据库常见支持类型
8.char和varchar的区别,优缺点
9.索引的种类
10.联合索引最左原则
11.索引底层:B+树,散列,位图
12.javahashmapput操作
13.hashmap扩容,承载因子
14.设计模式在自己工程中使用举例
二面
聊项目
2.zookeeper怎么实现分布式锁
3.分布式锁作用
4.Hashmap,concurrentHashmap
5.redis分布式配置
6.redis持久化
7.redis单线程作用
8.单例模式
9.项目中遇到的OOM问题
10.怎么监视JVM数据
海康9.21现场二面
1.hbase读写过程
2.flink工程
3.设计通过flink查找9点10分各个路口通过车辆的信息
4.学习flink的方法和途径
6.十个kafka消费者线程消费,如何设计在多线程场景下完成统计
7.工程
bilibili8.6一面
1.redis预热
2.redis存储数据
3.zookeeper原理ZAB协议
4.zookeeper加节点
5.分布式锁种类
6.zookeeper分布式锁,redis分布式锁
b站8.14二面
2.怎么做项目测试
3.javaThreadlocal类(线程变量本地化)
4.mysql存储引擎
5.sql优化
6.进程线程区别
7.SSM框架常用注解
7.自定义注解
1.工程flink的checkpoint的具体过程
2.checkpoint对系统有什么影响
3.int和integer的区别,装箱与拆箱
4.怎么调用integer的方法,具体过程
5.java内部类和静态内部类
6.二叉树前序遍历
7.besttimetobuyandsellstock最多二次买卖
8.常见设计模式
星环8.27视频一面
1.c++static
2.javastatic
3.操作系统栈和堆区别
4.存储代码段
5.缓存,缓存不一致性
6.tcp与udp应用场景
7.聚簇索引与非聚簇索引
8.join的种类以及实际操作
9.编程:二叉树按层遍历
10.尬聊了一会儿工程
1.子数组和为0dp算法
2.flink怎么保证exactly-once语义
3.高并发环境怎么做测试
4.常用的检查系统failure的方法
5.java堆怎么排查错误
6.工程
感觉主要是临场写代码,还问了我好多测试的内容?
三面
0.c++虚函数
1.fibbonacci算法改进
2.redis怎么存储数据
3.redis存的key是什么值
4.MySQL的ORM方式
5.mybatis怎么对应实体
6.applicationcontext逻辑
7.bean的生命周期和种类
8.flink的检查点机制怎么改进?
9.flink窗口
10.flink的任务失败模型
11.还有很多工程上的细节
狂怼项目,大佬知识量储备极高,我实为弱鸡
有道8.24
1.网络可靠传输
2.tcp报文结构
3.网络传输模型
4.拥塞机制
5.流量控制
6.linux内存磁盘转化
7.linux线程状态
8.linux页表结构
9.内核怎么处理线程(初始化,加锁)
10.操作系统与jvm的不同
11.类加载过程
12.线程怎么去访问jvm里的类信息
13.pthread
网易游戏8.28一面
1.操作系统进程分配区,内存管理
2.io多路复用
3.操作系统层面怎么实现互斥锁
4.数据段组成
5.网络tcp建立与释放
6.tcp长连接heartbeat
7.tcp半连接
8.图的遍历算法迪杰斯特拉算法
9.上楼梯
10.64匹马赛跑,8个跑道,选出最快4匹马
11.java单例模式一套
12.java多线程原子锁,cas机制,aba问题
13.缓存置换lru实现
14.图形学了解
15.快排实现
16.堆排序实现,怎么建堆
网易互娱10.15二面
2.输入整数n,输出1-n的随机数组(约瑟夫环?)
3.链表成环,并找到入口节点,数学推导
种种原因面试拖了好久
深信服8.17
1.4个项目挨个问
2.C++的new和malloc
3.C++重载
4.进程间通信的互斥方法
5.堆和栈的区别
6.介绍进程和线程区别
7.linux内核
8.介绍每种设计模式以及应用
9.单核cpu多线程
10.指针有了解吗
11.文件软链接硬连接
1.linux怎么进shell
2.linux的swap分区
3.网络tcp四次挥手
5.jmeter集合测试
6.大数据有哪些failure怎么应对
7.分布式架构的性能优化
8.mysql存储引擎
9.xss攻击,sql注入
10.网络虚拟化技术是什么,常用平台
值得一提的是深信服hr真的知识面好广,给我讲的业务划分和概念很细hhh佩服
依图9.4
2.zk用途,分布式锁
3.redis分布式锁
4.括号匹配编程
5.树节点z-order打印
二面重感冒,写了个3-sum的变型题,状态太差了,不过很喜欢这种考察方式,上来没说几句就写代码,写完就完事hhh
招银9.29
1.java基本数据类型
2.java对象生命周期
3.mysql和redis区别
4.线程生命周期
5.多线程好处
6.线程池作用
一面:
数据库mysql的隔离级别
怎么实现多线程安全
jvm的类加载机制和垃圾回收原理
b+树和红黑树区别
二叉树的遍历方法写按层遍历二叉树
flink和spark的区别
单例模式和适配器模式
二面:
工程达到的效果,输入是什么输出是什么
有点像毕业答辩
感觉比较水。。。
考过的面经提取的基础知识点,便于查缺补漏。
算法:双指针,排序,贪心思想,二分查找,分治,回溯法,动态规划,高级算法
数据结构:数组,链表,树,栈和队列,图,堆,散列表
JavaSE:static,装箱拆箱,多态,设计模式(单例模式,适配器模式,工厂模式,装饰器模式,迭代模式,至少会3个),集合(HashMap,LinkedListQueue,ArrayList,PriorityQueue,JUC包里的集合),NIO
多线程:CAS机制,volatile,synchronized,JUC包(CountDownLatch,Reentrantlock,FutureTask,ReadWriteLock)
JVM:垃圾回收算法,垃圾回收器,类加载,内存模型,OOM处理,工程优化
JavaEE:SpringBoot,SpringMVC,AOP,IOC,MyBatis,Hibernate,微服务框架
分布式理论:CAP,BASE,2PC和3PC,Paxos,ZAB协议
操作系统:linux,进程与线程,IPC方式,PIV,shell,页表结构,同步异步,epoll函数
数据库:MySQL,ACID,索引,InnoDB,MyISAM,MVCC,NoSQL,Redis
网络:网络架构,tcp可靠性,窗口,UDP,HTTP,DNS,IP,ARP,Ping,TraceRoute
1.写博客是很好的习惯,各大博客网站多看多想
2.每个知识点掰开揉碎要讲的东西很多,不能浅尝辄止。
3.看书很重要,知识体系会有一个完整的整合过程。
基本好书可以多看几遍,比如一些经典教材,深入理解JVM,EffectiveJava,java并发和深入剖析tomcat,图解系列,MySQL技术内幕,从paxos到zk一致性,有些书内容有些过时不过有些部分很精彩可以参考,操作系统我没找到什么好理解的书,有想要资源的可以私信。
先从算法导论那本书入手,熟悉基本算法和基础集合的初始化,刚开始会很艰难,尤其是排序算法,我建议还是多练多会,对以后的提升很重要。
然后在leetcode上找题,刚开始我先找easy题做,做了50道左右感觉可以完整的解出一道题,开始按顺序从头做。一般我每道题会解至少3遍(因为刚开始不太会,先早上按照答案抄一遍,然后凭借印象自己A一下,晚上的时候再A一下,三天之后再A),每天做3道题左右,这种情况持续了一个半月吧,当时效果其实不太明显,不过后期还是有收获的。
leetcode上刷了200+之后转战牛客,因为企业面试现在用牛客比较多,而且我比较喜好牛客什么都没有写的ide,比较舒服。牛客上开始刷剑指offer,其实第一阶段我就偶尔有刷,不过这一次是有底气的刷,刷完之后觉得剑指offer应对笔试面试还是神器,所以以后每次要面试写代码的时候我都有看这个。
后来就懒了,每天在牛客的题库找两三道题做,直到把经验值刷到10为止。
以上过程仅供参考,请理智食用
最后关于笔试作弊,请不要拿社会什么的做借口,作弊可耻是基本常识,并不会因为形势或人数的因素而改变,扎实的代码能力肯定有用的,现在多吃点苦是值得的。
有技术只是入场券,拿offer还是要一定的运气。当然,很多大牛之所以为大牛是因为平时积累的就足够多,会议论文,acm竞赛,大厂实习,科研创新成绩等等,非大牛的我们就要做好任人挑选的准备,态度端正到最后一刻,有比较烦人的面试官是常事,保持心态很重要。
面试官:“最后有什么问题要问我的吗?”
不要给自己太大压力,找工作和考试不一样,要顺着自己的心意在自己可达的范围内找合适的,不是追高(当然有上进心是好事)。努力很重要学会放下和生活也很重要。研发岗位有游戏研发,服务器研发,客户端研发,面向各种语言的研发,大数据研发,网络工程研发,安全研发等等,不同机构和公司业务要多少了解一点再选比较好。比如游戏岗几个经典考题(洗牌算法,搭配算法,动态规划,经典数据结构树,链表的考察),服务器研发针对各部门要求会有变化,感觉操作系统会多一些
如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙: