声明:文中面试并非本人,面经,学习笔记都是真实存在,不喜勿喷相互尊重的都是大佬!
本人20年毕业,双非硕士,软件工程专业,1年工作经验,Java后端开发

新浪微博提前批(已凉)
-
先问自我介绍,说一下你认为的团队合作?
-
用过Linux系统吗?常用指令(我说不太了解,就没问)
-
说一下虚拟内存?
-
介绍一下hashmap?
-
hashmap和hashtable的区别?
-
算法题:10万行数据,每一行都是一个int类型的数,按数字出现的频次取出现次数最高的10个数
-
输入是一个整形数组,输出:数字+频次
-
思路:可以自己定义一个类,里面key为出现的数字,value为出现的频次
-
然后新建一个容量为10的小顶堆,按照value进行排序。
-
我是用hashmap统计的,然后再对value用小顶堆(priorityqueue)排序,需要把value和key绑定。如果下一个的value小于堆顶则丢弃,大于堆顶则插入。
滴滴提前批面经(已凉)
-
JDK JRE JVM的区别?
-
JVM是用来执行字节码文件的
-
浏览器输入一个网址会发生什么变化?
-
详细说一下DNS域名解析服务器?DNS用的是什么协议(UDP)
-
TCP三次握手,那四次挥手呢?为什么要四次挥手?
-
TCP怎么保证可靠通信?
-
超时重传和确认机制
-
TCP和UDP的区别?
-
TCP是面向连接的,TCP传输的是字节流,TCP只能点对点,保证传输的可靠性
-
Spring事务传播机制?(不知道)
-
Spring事务隔离级别?(只知道有五种)
-
OSI分层模型
-
TCP/IP分层模型?
-
网络拥塞一定会导致丢包吗?为什么?

字节教育提前批面经(已凉)
-
线程进程,怎么进行上下文切换的,进程切换的过程?中断?谁去执行中断呢?
-
讲一讲内存分页,怎么进行内存分页
-
100个0~1000的正整数,怎么找到第一个缺失的数
-
两个链表交叉,怎么找交叉点
-
已知rand(5)={0,1,2,3,4,5},怎么生成rand(7)
-
一个1g的数,空间复杂度最小找最小的10个
-
一个10g的文件,内存空间200M,怎么按照出现次数排序。考虑内存。。
-
说一下hashmao,线程安全的hashmap
-
说一下Java中的锁是怎么实现的
-
算法题:
-
1、找一个数字在非严格递增数组中的位置,比如234456找4出现的位置返回{2,3},如果没有返回{-1,-1},因为不太确定先用了二分然后用了中心扩展法,被吐槽时间复杂度太高,后面说了一下单纯二分找左右边界的方法
-
2、链表翻转的递归算法,不会递归的写了非递归,后面尝试递归失败了

阿里六面面经
一面(1h45min)
-
1.自我介绍一下
-
2.介绍一下参与的项目
-
3.问了一下OpenStack与Docker的区别
-
4.问了一下KVM和OpenStack的区别
-
5.spring的IOC底层实现原理
-
6.HashMap的底层原理
-
7.GC策略
-
8.JVM内存模型
-
9.MySQL索引结构
-
10.事务的四大特性
二面(2h)
-
1.自我介绍;
-
2.介绍项目;
-
3.KVM和XEN虚拟化的区别
-
4.如何用JAVA生成永远的ID:UUID(Universally Unique Identifier)
-
5.树的遍历,并非二叉树的遍历
-
6.堆排序的问题
-
7.多线程轮流执行用什么锁??
-
8.AOP的底层原理(动态代理,GClib)
-
9.Object类的方法
-
10.循环依赖如何解决,自己设计几种算法
-
11.快速排序原理,随机快排口述
-
12.iptable实现反向代理
-
13.OVS流表创建
三面(四十分钟)
-
1.自我介绍
-
2.项目
-
3.项目中遇到的难点
-
4.自己平时如何学习的
-
5.Spring源码级的一些理解
-
6.职业规划,未来的发展
-
7.还有什么问题?
四面(交叉面,1h)
-
1.首先问了我发表的论文具体的内容是什么
-
2.虚拟内存知道么?什么时候使用虚拟内存?虚拟内存除了扩大内存还有什么用?
-
3.Spring的上下文切换,如何优化上下文优化来做到减少系统资源消耗
-
4.函数调用约定了解么?Function calling convention
-
5.进程线程的区别,除了包含关系之外的一些区别,底层详细信息
-
6.TCP/UDP 全部内容:三次握手、四次挥手、为什么不能两次,为什么三次,TCP的可靠是怎么实现的,滑动窗口,为什么是2MSL
-
7.边缘网关协议了解么?简单描述一下
-
8.Docker容器相关
-
9.LRU手撸,说下时间复杂度空间复杂度
五面(hr面)
-
1.自我介绍
-
2.项目遇到的难点,如何解决
-
3.如何看待在校阶段
-
4.怎么学习的
-
5.父母如何教育
-
6.如何评价自己的性格
-
7.喜欢自己的研发方向么
-
8.自己的coding语言是什么
-
9.自己认为自己的coding是个什么水平
-
10.为什么选择钉钉
面试历程(点击此处获取文档的完整版)
目录:
-
1,大厂面试题都是我码出来的(有些忘记了)
-
2,简历优化(进过大厂的程序员真实简历参考)
-
3,java面试题核心笔记2020版(面试前刷题必备的宝典)
-
4,整合所学的技术栈,做一个实体的项目(学以致用才能提升整体实力)
1,整理总结的一线大厂面试题


2,简历优化


3,java面试题核心笔记2021版
-
目录

4,项目实战
- 微服务电商项目
