三月招聘季,充电拿offer,珍贵面试资料泄露

文章讲述了面试者在技术面试中关于事务隔离机制、JVM内存管理、线程池原理、Redis缓存优化、并发库如Netty和Redis数据结构、序列化、网络通信、Android高级工程师所需技术等方面的知识分享和面试经历。
摘要由CSDN通过智能技术生成
  1. 你平时用的是哪种事务隔离机制,简单说说原理

  2. 聊聊jvm,jvm内存划分说一下

  3. jvm堆的分代思想说一下

  4. 大对象的分配流程说一下

  5. 多线程有用过吗?你简单说说

这里,我详细说了一下线程池,把线程池的原理说了一下

追问:有自己实现过线程池吗?你是怎么实现的,里面的参数你是怎么设置的。

这里真的给自己挖了一个大坑,没想到会问这么深,当时就顺口说了线程池,其实根本就没怎么用,都是自己写的小玩具,没有考虑这么多!

  1. Lock包下的类有了解吗?说说你经常使用的一些并发类库

  2. Redis缓存穿透、缓存击穿、缓存雪崩了解吗?详细说说,并给出解决方案

  3. 说说Redis的基本数据类型

  4. Netty了解吗,你说说他为什么高性能

  5. Netty零拷贝了解吗?

  6. Netty可以自定义序列化机制吗?有自己实现过自定义的序列化机制吗

  7. 有自己实现过chandlehandler吗?就是有自己去处理过一些数据包吗

总结一下,面试官全程根据简历来问,基本上都是自己熟悉的点,面试体验非常棒,许愿二面!

阿里云存储一面-2.10


今天是年二十九,没想到阿里面试官还在工作,致敬阿里!!!面试官很nice,不断提醒,态度也很好,只可惜我水平有限

  1. 自我介绍

  2. 问一下什么时候能实习

  3. jvm内存模型

  4. 重载和重写的区别

这里可能答得不太好,面试官就不断提醒

重载跟重写在方法参数上有什么区别?

面试官:还有吗?

我:额额。。。。。。没有了吧,其实还有的!(超不自信)

追问:

那他们分别在哪个阶段发生?(这里问的是在编译期还是运行期)

再追问:

构造器可以重写吗

我:不可以,构造器是不能被继承的,因为每个类的类名都不相同,而构造器名称与类名相同,所以根本谈不上继承。 又由于构造器不能继承,所以就不能被重写。

继续追问:

那构造器可以被重载吗?

我:可以,bbbbbb说了一堆原因

  1. 深拷贝和浅拷贝说一下

  2. 程序,进程,线程说一下

  3. hashcode和equals有没重写过?说一下,比如说,你重写了equals,那hashcode要不要被重写?

  4. 获得键盘输入是什么方法

  5. BIO,AIO,NIO了解吗?

追问:AIO有哪些应用吗?有见过吗

我:???? 反套路了,怎么问起了AIO。

  1. 做题目:

第一道是反转链表

还有一道是二叉树的右视图

阿里云原生一面-2.20


首先当然是点赞阿里面试官啦,准时,态度友好!再一次感谢阿里给的机会!

  1. 上来直接怼项目。

面试官;我看你项目难点只写了怎么实现,但是难在哪里没有提到,你能说一下难在哪里吗?

我:。。。。这里我只能勉强从实现方案上吹了一波,这里还要回去再想想要怎么说才好!(这里真的充分体现了你平时对项目的思考的重要性!

面试官继续追问**:**看你用的Redis比较多,你解释一下缓存雪崩吧!你在项目中是怎么解决缓存雪崩的?**

面试官:本地缓存你是怎么做的,你具体说说,热帖是怎么存储的!

面试官继续追问:那这个本地缓存实时性如何保证你是怎么解决的。

面试官:那这个缓存雪崩问题还有别的解决方案吗?

我:还可以通过随机化Key的过期时间来解决;请求限流和服务降级:通过限制 DB 的每秒请求数,避免数据库挂掉。对于被限流的请求,采用服务降级处理,比如提供默认的值,或者空白值

好了,我们继续下一个。

说说Redis持久化机制吧,你在项目中是怎么配置的。

说说jvm内存结构的划分和GC算法

我看你简历上写了docker,那K8S了解吗

分布式有了解过吗?

说说进程通信有哪几种方式

说说进程同步机制

手撕LRU

字节教育业务一面-2.22


自我介绍

项目介绍

Redis的HyperLogLog的底层实现

为什么不用HashSet,而用 HyperLogLog

说说Bitmap的底层实现,为什么要采用Bitmap

我看你项目也用到了zset,说说zset的底层实现

说说为什么Redis采用跳表而不用红黑树来实现zset

说说有什么开源项目是红黑树实现的

为什么jdk的HashMap要用红黑树

说说红黑树的性质

说说红黑树和AVL树的区别

说说红黑树的红黑节点的数量

说说键盘敲入字符时,操作系统期间发生了什么

说说系统调用的流程 写算法序列化与反序列化

阿里淘系基础架构一面-2.23


自我介绍

开始怼项目

为什么统计DAU的时候不用HyperLogLog

因为前面吹到了有一个统计用户连续登录的需求,所以你说说怎么实现这个需求

你说说这个redis缓存跟这个本地缓存是怎么设计的(热帖模块)

redis在热帖模块用到的数据结构是什么,你是怎么设计的

本地缓存是内存缓存?本地缓存和redis之间是怎么读写的(一致性)?

你的项目是集群部署还是单机部署,如果是集群部署,那有没有优化的空间,也就是说集群部署的话,你这个定时任务的启动时间怎么来统一呢?因为部署时间不一致,很可能会导致定时任务拉的数据会不一致。

那如果数据更新得比较频繁怎么办那怎么做?也就是删除缓存导致缓存失效,就要改变策略!

说说Redis的持久化方案,优缺点、应用场景

你项目实现的feed流是怎么更新的,是实时更新吗,因为数据是有可能一直在变化的。

你做的社区平台的最核心的几个模型是怎么样的,你是怎么设计的,就是问领域驱动模型你是怎么做的?

你MySQL里面主要存的是哪些对象!

有没有进行过SQL优化,说说你怎么做的,比如你拿到一个SQL语句,你要怎么分析?

索引的数据结构一般会有几种

说说B+树

MySQL的日志了解吗,说说binlog

binlog的主要应用场景

说说主从同步的原理

在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?

HTTPS和HTTP的区别

HTTPS的TLS握手详细说一下

问ThreadLocal,ThreadLocal的应用场景、synchronized,volatile原理和应用场景,原子类跟volatile的区别请举一个场景说说,线程池、concurrentHashMap、HashMap原理

equals和hashcode的关系

springioc和aop

spring怎么解决这个循坏依赖

RPC实现原理(最后强行吹牛逼)

[阿里云原生(别的团队)一面-2.23


自我介绍

开始怼项目,你在做项目的过程中有没有遇到什么问题,可以突出你的思考能力的。

哪些东西要放到本地缓存里面,哪些东西要放到redis里面?

TCP是怎么保证可靠传输的

重传机制详细说一下

详细说说快重传

你理解TIME_WAIT状态吗

为何一定要等 2MSL ?

如果四次挥手最后一个包丢失了怎么办

在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?

DNS怎么递归查询

本地域名服务器访问之后,更上一级的DNS服务的ip地址知道吗,是多少

可以配多个DNS服务器吗?它的访问顺序是怎么样的

**我:**不了解

好,继续,假设已经知道IP地址了,下一步怎么做

通过IP地址怎么找到MAC地址,会找到谁的MAC地址

你觉得阿里的公网IP地址会存到我们学校的局域网里面吗

进程跟线程的区别,进程之间怎么通信的,线程之间怎么通信的

为什么线程开销比较少

进程、线程的上下文切换是怎么样的

哪些场景下用到了软中断、哪些场景用到了硬中断(请举场景)

好吧好吧,你好像对网络比较熟,再问你一个网络的问题,你了解吗?*

不知道说啥!

最后问了一个HashMap的底层,为什么链表长度大于8就转成红黑树

支付宝一面-2.23


第一次遇到小姐姐来给我面试,非常nice,声音超好听!

自我介绍

问了一下平时怎么学习

jdk源码看了多少

都有看,哈哈哈哈

先怼网络,TCP和UDP的区别

TCP为什么要进行三次握手

HTTP和HTTPS的区别

sql调优的思路

除了增加索引,还有别的方法来进行sql调优吗?

你要快速查询到一个结果,除了SQL调优还有什么方案可以解决的吗

这里我提到了缓存

好了,上面我提到这个缓存,开始问redis了

redis为什么这快

本地缓存的是怎么实现的

什么情况下用redis缓存,什么情况下用本地缓存

这里我答非所问了,

本地缓存和分布式缓存的优缺点

redis的应用场景,除了你项目中用到的

好了,这里又挖坑了,说了消息队列

你对消息中间件有了解吗?

重点提了一下RocketMQ

那你用这个RocketMQ是解决什么样的问题

怎么保证redis和数据库的双写一致性

消息队列怎么实现的

你在项目中怎么解决这个缓存雪崩

了解过缓存穿透吗,说说他跟缓存雪崩的不同

怎么解决这个缓存穿透的问题

说说MySQL事务的特点

说说Redis事务

MySQL锁的类型

MySQL的悲观锁是怎么实现的

文末

初级工程师拿到需求会直接开始做,然后做着做着发现有问题了,要么技术实现不了,要么逻辑有问题。

而高级工程师拿到需求会考虑很多,技术的可行性?对现有业务有没有帮助?对现有技术架构的影响?扩展性如何?等等…之后才会再进行设计编码阶段。

而现在随着跨平台开发,混合式开发,前端开发之类的热门,Android开发者需要学习和掌握的技术也在不断的增加。

通过和一些行业里的朋友交流讨论,以及参考现在大厂面试的要求。我们花了差不多一个月时间整理出了这份Android高级工程师需要掌握的所有知识体系。你可以看下掌握了多少。

混合式开发,微信小程序。都是得学会并且熟练的

这些是Android相关技术的内核,还有Java进阶

高级进阶必备的一些技术。像移动开发架构项目实战等

Android前沿技术;包括了组件化,热升级和热修复,以及各种架构跟框架的详细技术体系

以上即是我们整理的Android高级工程师需要掌握的技术体系了。可能很多朋友觉得很多技术自己都会了,只是一些新的技术不清楚而已。应该没什么太大的问题。

而这恰恰是问题所在!为什么别人高级工程师能年限突破30万,而你只有十几万呢?

就因为你只需补充你自己认为需要的,但并不知道企业需要的。这个就特别容易造成差距。因为你的技术体系并不系统,是零碎的,散乱的。那么你凭什么突破30万年薪呢?

我这些话比较直接,可能会戳到一些人的玻璃心,但是我知道肯定会对一些人起到点醒的效果的。而但凡只要有人因为我的这份高级系统大纲以及这些话找到了方向,并且付出行动去提升自我,为了成功变得更加努力。那么我做的这些就都有了意义。

喜欢的话请帮忙转发点赞一下能让更多有需要的人看到吧。谢谢!

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
相关技术的内核,还有Java进阶

[外链图片转存中…(img-T0nUrrQS-1714990580909)]

高级进阶必备的一些技术。像移动开发架构项目实战等

[外链图片转存中…(img-QRHYvf6L-1714990580910)]

Android前沿技术;包括了组件化,热升级和热修复,以及各种架构跟框架的详细技术体系

[外链图片转存中…(img-ASzNkhdz-1714990580911)]

以上即是我们整理的Android高级工程师需要掌握的技术体系了。可能很多朋友觉得很多技术自己都会了,只是一些新的技术不清楚而已。应该没什么太大的问题。

而这恰恰是问题所在!为什么别人高级工程师能年限突破30万,而你只有十几万呢?

就因为你只需补充你自己认为需要的,但并不知道企业需要的。这个就特别容易造成差距。因为你的技术体系并不系统,是零碎的,散乱的。那么你凭什么突破30万年薪呢?

我这些话比较直接,可能会戳到一些人的玻璃心,但是我知道肯定会对一些人起到点醒的效果的。而但凡只要有人因为我的这份高级系统大纲以及这些话找到了方向,并且付出行动去提升自我,为了成功变得更加努力。那么我做的这些就都有了意义。

喜欢的话请帮忙转发点赞一下能让更多有需要的人看到吧。谢谢!

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值