前言
文章开始之前,容我先笑会儿!这是何等的缘分,一名群友分享了他堪称神奇的面试经历!
秋招先是投了饿了么的简历,去面试因为太菜而被直接pass掉,然后就向我吐槽,饿了么的面试多么多多么难!尤其是项目部分,基本答不上!
而后又鼓足了勇气去阿里,没想到的是,就是这么巧:竟然遇到了同一位面试官!(我就想问:大佬跳槽也这么勤快吗?)
估计当事人都傻了吧!!!不过好在大佬每天面试的人蛮多,应该没有认出来,不然面试题怎么跟上次的怎么都差不多呢?但是这次能不能过, 还得看后续通知了!
好了,以下就是面试题的分享(因为两次问的都差不多,就放一起了)
一面
- Java几种基本数据类型
- Java每种类型占多少字节
- int的上限是多少,32位和64位操作系统中int各占长度是多少
- 操作系统中符号是怎么表示的
- 重写和重载
- 封装、继承、多态,及分别的应用
- 设计模式有哪几大部分,简单工厂解释+手写,简单工厂中存在的问题(反射去解决)
- 网络分层协议有哪些
- 多进程编程和多线程编程的区别
- 进程分哪几部分,进程堆和进程栈,c中通过malloc创建的对象放在堆还是栈
- HTTP请求都有哪些,GET和POST区别
- 请求头中用哪个表示请求体的大小
- 聚簇索引,为什么要用聚簇索引
- 并发和并行
- Java中锁及原理
- 中间还问了好多,有点记不清了。。。
- 有100G数据,内存假设只有1G,如何排序(不用外排的思想,如果自己再设计一种)
二面
- 以往一个项目中某个模块介绍(数据库设计,功能实现等)
- 登录权限表结构如何设计的,权限数据结构怎么定义的,怎么存储的,前端怎么控制映射的,等等等(要把这个模块的每一个方面都讲全)
- cookie,session,JWT区别异同,session全局共享怎么做
- JWT认证授权过程,为什么要用到私钥,jwtToken中为什么要带signature,公钥怎么定义的
- Ajax请求头怎么设置
- HTTP请求方法有哪些,GET和POST区别
- 请求到tomcat处理的流程(分别从网络和tomcat方面回答)
- TCP滑动窗口原理,为什么要分组转发,发送和接收缓冲队列,优化
- SYN攻击,如何预防
- crsf攻击,如何解决
- MQ应用场景,能解决什么问题,RabbitMQ有哪些组件哪些模式
- Redis分布式怎么处理,哨兵模式
- 缓存击穿和缓存雪崩区别
- 之前项目用到什么设计模式,什么索引
- 手写工厂模式
- 聚簇索引页分裂问题,是不是一定要用主键索引
- 从磁盘角度回答页分裂问题
- 手撕代码1:归并排序
- 手撕代码2:二维背包问题
总结
看了大佬问的的面试题,确实不简单,而且能这么短时间内从饿了么直接跳到阿里,想必也是大牛!也可能是阿里本来就受够了饿了么,直接调过去的也说不定。
最后为大家分享我整理的最全的Java面试资料,需要的朋友可以收藏+关注后 添加西方图中VX即可获取