阿里优酷二面

技术问题

1.问项目

2.JVM内存结构,静态变量放在哪(元空间),常规变量放在哪(不属于对象的放在栈里面)

聊了聊线程公有私有区域,堆的分区分代等等

3.MYSQL索引都有哪些?

说了哈希,B+树,全文,对B+树说了一下具体,聊了聊磁盘预读,IO次数等等

4.索引的优缺点?

索引适合数据量庞大的情景,如果数据量很小得不偿失

5.常用的集合有哪些?

从collections和map两个接口出发,说常用list的两个,以及hashmap

6.hashmap底层原理和线程安全?

老八股了,链表数组红黑树加载因子一套组合拳。线程不安全,concurrenthashmap

7.concurrenthashmap如何保证线程安全?

看版本,分JDK8前后两个版本去聊,老版本分段锁,新版本CAS+synchronized关键字

8.CAS实现类?

展开聊了聊CAS的原理,以及hotsport的源码,实现类就说了atomic那一些

9.ThreadLocal类有了解过吗?

这个真不咋熟悉,就讲了讲线程池以及核心参数

10.Linux系统用过吗

11.如果要做一个秒杀项目,并发量很高,如果要你实现你会怎么做,讲讲思路?

1)数据库设计:需要设计一个商品表和一个秒杀记录表。商品表中包含商品的基本信息,如商品ID、名称、价格、库存等

2)设计一个秒杀接口判断还有没有库存

3)并发控制:加锁,我的理念是牺牲效率上悲观锁,因为乐观锁本身自旋的原因有可能会不公平

(面试官表示实际上大多用乐观锁,悲观锁并发量实在不够)

4)缓存:可以使用缓存来优化系统。可以使用本地缓存或分布式缓存来缓存商品信息和秒杀记录等数据,以减少数据库的访问次数和提高系统的响应速度

12.这种海量并发情况下如何进行API限流?

讲了两种限流算法,令牌桶和漏桶

开放性问题:

1.平时学习渠道有哪些?

b站,CSDN,github,chatgpt

2.谈谈对chatgpt的看法,他会不会让人们失业?

本质上就是工具,就像手机让修BB机的失业了,但又促成了手机行业,我们要学会利用工具

反问:

q:  自己做开发70%的时间都在搭环境和调bug正常吗?

a:非常正常,每个人都要经历,要多看框架原理调bug会简单一些

q:TaoBaoVM用的是自己的垃圾回收器吗?

a:是的,不光垃圾回收,JVM很多模块包括一些中间件都是阿里自己研发的

q:现阶段学习重心放在理论和实践哪方面比较好?

a:实践,有经验了会对理论有新的理解,要不停的做项目

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值