声明:文中面试并非本人,面经,学习笔记都是真实存在,不喜勿喷相互尊重的都是大佬!

本人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,项目实战

  • 微服务电商项目