菜鸟应该尝试阿里腾讯吗?微信支付一面+阿里一二面凉经
非科班菜鸟,为了找工作今年开始学Java,菜到什么程度呢?力扣简单题A出来也要看运气的程度,参加秋招两个月投递几十家一无所获,本着重在参与和不留遗憾的精神投了阿里和腾讯,面经如下:
微信支付一面:
选的无意向,没想到被这么好的部门捞了来面试,一面是个小姐姐,非常温柔耐心沟通非常友善,给了三道算法题来手撕:
其实对刷过题的人来说都不难,估计小姐姐也没想到竟然有人菜到一个题也做不出来吧。。。虽然我一个都没写出,但小姐姐仍然不停的让我别紧张,慢慢写不用看时间,我竟然浪费了人家一个半小时也一个都没A,哎
阿里一面:(46min)
一面老哥非常好,因为我的笔试0分,在一面前加了代码面,也是这位面试官给我打的电话进入伯乐测评系统选了一道题做。
做完这个代码面过了大概一个小时,老哥打来了电话进行电话面:
自我介绍
对于Java是如何学习的
场景:淘宝海量用户操作的场景下,对于数据库(比如交易订单这个表)如何设计,考虑哪些方面?
说了一些数据库设计的点,面试官说在淘宝的业务情况下,一个库是放不下这么多数据的,就回答了分库分表
然后问:如果分库分表的话,应该有个什么样的路由策略?如何考虑不应该让同一个用户每次访问不同的库??
服务端在开发时有什么考量(在架构上、技术上、层次上等等角度)?有哪些需要注意的点?
对分布式数据库了解什么?
分布式事务有了解吗?
开放题:对于线程安全有哪些了解呢?哪些手段可以实现线程安全?
线程池的原理是什么?
哈希表在多线程环境下不安全怎么办?
对于常见的开源框架,Redis、Kafka、Elasticsearch等,看过它们的源码吗?
看过spring源码吗?
springIOC是基于什么思想,能够解决什么问题?
AOP的底层原理
在数据库方面,了解悲观锁和乐观锁吗?它们有什么区别?
死锁是什么?如何避免?
乐观锁有哪些实现手段?
CAS的ABA问题如何避免?
对一致性哈希算法有了解吗?它的作用是什么?它与普通的哈希算法的区别在哪里?
介绍一下JVM虚拟机内存模型
有虚拟机调优经验吗?没有
了解RPC吗?不了解
职业规划
阿里二面:(35min)
二面小哥更严肃一点,问的非常底层
学习Java多久了?
申请的专利和应聘岗位有关系吗?
object类有哪些方法?
为什么要有equals和hashcode两个和比较相关的方法?如果只有一个会怎么样?
wait和notify在哪些场景中发挥作用?Java哪些地方或者哪些中间件的原理是基于它们的?
说了阻塞队列、Kafka等,然后细问使用阻塞队列的put和take方法,整个流程是怎么样的?这里记得不清楚了,就答的很糟糕,然后不也想乱猜了,就说具体不太懂
volatile是干什么的?回答保证内存可见性和防止指令重排序
为什么会有重排序?重排序有什么作用?回答提高性能和效率,又问具体怎么提高的?不会
Hashmap线程安全吗?如何设计一个线程安全的Hashmap?回答使用synchronized和CAS
又问:具体怎么操作?假如现在只考虑get和put两个方法,直接使用synchronized就可以实现线程安全了吗?不知道,说不能,然后问那应该进一步怎么设计?不会
CAS具体怎么操作?
redis这里假如进行集群部署,那么这里如何保证线程安全呢?应该回答分布式锁的,但是脑袋懵了说不会
你觉得你在学Java的过程中对哪一块比较熟悉,可以是基础也可以是其他的,都可以说?到这里就放弃了,说都太不熟悉
(小哥有点无奈了,问的几乎都不会)
小哥总结了一下我的表现,非常客气的先夸了夸我,然后说基础还是不够牢固,很直白的说应该不会给我过,我表示理解😉
面试结束