10年Java开发经验,超过500人面试阿里的同学,总结出这108道面试题

01 Mysql

1. 数据库三范式及判断、E-R图

2. innodb和myisam存储引擎的区别

3. 索引分类(主键、唯一索引、全文索引、覆盖索引等等),最左前缀原则,哪些条件无法使用索引

4. B树、B+树区别,索引为何使用B+树

5. 聚集索引与非聚集索引(使用非聚集索引的查询过程)

6. 事务的ACID(原子性、一致性、隔离性、持久性)

7. 事务隔离级别和各自存在的问题(脏读、不可重复读、幻读)和解决方式(间隙锁及MVCC)

8. 乐观锁和悲观锁、行锁与表锁、共享锁与排他锁(inndob如何手动加共享锁与排他锁)

9. MVCC(增加两个版本号)及delete、update、select时的具体控制

10. 死锁判定原理和具体场景

11. 查询缓慢和解决方式(explain、慢查询日志、show profile等)

12. drop、truncate、delete区别

13.查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序

14. mysql优化,读写分离、主从复制

15. 数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)

02 Redis

1. Redis如何做高可用、集群

2.Redis和Memcached的优劣势比较

3.Redis的数据存储类型有哪些?

4.Redis的应用场景有哪些?

5. Redis的持久化方式,以及项目中用的哪种

6.Redis的缓存雪崩怎么解决?

7.Redis与数据库MySQL的双写一致如何解决?

8.Redis的缓存穿透怎么解决?

03 计算机网络

1. OSI七层协议、TCP/IP四层协议

2. 各层对应的网络设备(路由器、交换机、网关、网桥、集线器等等),各层对应的协议

3. 数据链路层的CSMA/CD协议,笔试可能会用到

4. IP地址分类,子网划分(笔试常用)

5. TCP和UDP的区别

6. TCP三次握手和四次挥手,为什么三次握手,为什么四次挥手

7. TCP精髓问题:停止等待协议、连续ARQ协议、滑动窗口、流量控制、拥塞控制(慢开始、拥塞避免、快重传、快恢复)

8. HTTP状态码

9. HTTP缓存机制(cache-control、Expires之类的一系列请求与相应报头字段)

10. session和cookie的区别,禁用cookie后怎么办

11. DNS解析的过程

12. 常用协议的端口

04 数据结构与算法

1. 数组、链表(单向、双向、双端)、栈和队列、二叉树、红黑树、哈希表、堆(最大和最小)

2. 个人经验:栈和队列、哈希表、链表、二叉树的题较多,图的较少

3. 查找:二分查找及其变形

4. 二叉树:前序、中序、后序遍历,按规定方式打印,两个节点之间操作(最近公共祖先、距离)等问题。

5. 最大堆和最小堆:大数量级数据找最大几个等问题、堆如何调整等问题。

6. 栈和队列:经常作为算法题要用到的数据结构

7. 八大排序:3个简单的:冒泡、选择、插入及其优化,5个高级的:快速排序、归并排序、堆排序、希尔排序、桶排序(快排、归并、堆很重要)

8.手写堆排序

9. 给阿里2万多名员工按年龄排序应该选择哪个算法?

05 Linux

1. 常用命令:用户控制、权限控制、进程控制、系统状态查询之类的

2. /etc/hosts文件什么做用?

3 Linux目录结构(尤其是/proc非常重要)

4. linux文件系统结构和启动流程)

5. Java服务端问题排查(OOM,CPU高,Load高,类冲突)

6. 如何查看Java应用的线程信息

7.Thread dump文件如何分析(Runnable,锁,代码栈,操作系统线程ID关联)

06 操作系统

1. 一个二进制文件运行出结果,操作系统做了什么(这是一个很全面的题)

2. 死锁的条件及银行家算法、资源分配图之类的

3. 进程间通信方式

4. linux的五种IO方式(阻塞与非阻塞、同步与异步的理解)

5. linux的select、poll、epoll的区别

6. 进程与线程区别、内核级线程与用户级线程

7. 页面置换算法,尤其是lru

8. 进程调度算法

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

权威指南-第一本Docker书

引领完成Docker的安装、部署、管理和扩展,让其经历从测试到生产的整个开发生命周期,深入了解Docker适用于什么场景。并且这本Docker的学习权威指南介绍了其组件的基础知识,然后用Docker构建容器和服务来完成各种任务:利用Docker为新项目建立测试环境,演示如何使用持续集成的工作流集成Docker,如何构建应用程序服务和平台,如何使用Docker的API,如何扩展Docker。

总共包含了:简介、安装Docker、Docker入门、使用Docker镜像和仓库、在测试中使用Docker、使用Docker构建服务、使用Fig编配Docke、使用Docker API、获得帮助和对Docker进行改进等9个章节的知识。

image

image

image

image

关于阿里内部都在强烈推荐使用的“K8S+Docker学习指南”—《深入浅出Kubernetes:理论+实战》、《权威指南-第一本Docker书》,看完之后两个字形容,爱了爱了!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
netes:理论+实战》、《权威指南-第一本Docker书》,看完之后两个字形容,爱了爱了!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 30
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值