饿了么Java一面

今天面试真的是状态频发啊,首先是电脑没声音,之前笔试可能禁止了,然后忘记了调回来,用笔记本面试发现摄像头一直用不了,也是被禁止了,紧张的很,过了一会直接没网了,我吐了,校园网套餐到期了忘记续费了,真巧啊。最好和面试官电话进行面试的,不管结果如何,这次面试挺愉快的,面试官人很好,我以后领导要这样就好了,怪自己没提前准备好吧,好了开始进入正题。

1、自我介绍;2、介绍项目;3、问项目:场景1:注册时并发怎么解决?场景2:项目哪里用了缓存处理,是否会出现数据不一致问题?QPS多少?怎么测得?项目上线了吗?场景3:双十一这种高并发情况下,一个页面频繁被访问,如何从将这个缓存到不同的Redis服务器中,这里面试官给了提示,按IP设置key,我回答的是根据不同地区IP设置key,缓存到不同服务器。4、分布式下Java的锁还能使用吗?5、有哪些分布式锁实现?6、怎么解决并发问题,具体什么场景我忘了,然后我说可以使用悲观锁和乐观锁,问我Java有哪些锁、悲观锁,我说synchonized,瑞安吹Lock,AQS,其他的几个AQS相关锁我不会读,哭死我了;问我AQS实现原理;7、问自己的学习规划,以后对Java的学习,包括以前看过哪些java相关书?8、JVM内存区域?9、线上一直进行老年代垃圾回收什么原因,怎么进行排查,如何解决,卡顿如何找出原因?10、TCP三次握手四次挥手?11、冒泡排序算法,讲解思路。12、手写单例模式,我写了饿汉式双重校验单例模式,问我为什么进行第二次非null判断,除了我这种还有其他单例模式吗?我说还有饱汉式,但是线程不安全。问我如何实现线程安全单例模式?13、MySQL查询很慢是什么原因?如何加速?我回答使用explain,建立索引。追问为什么建立索引?把索引执行过程说了一下。

主要就是上述这些问题,其他的忘记了,最后和面试官疯狂道歉,但是面试官人很好,表示理解。今天是一次愉快的面试,全程大概一个小时,一直打电话问我,只有写单例模式使用电脑了,无论结果咋样,都是一次宝贵的经验。昨天的笔试也真的难,我反问环节问面试官业务方向,说的和第三题基本一模一样。说周一会和部门内部讨论结果。

以上就是今天面试过程,嗯,比较独特的一次面试经历吧,对自己的一次检验。

全部评论
项目不会是黑🐎点评吧
3 回复 分享
发布于 2023-08-19 09:39 北京
同学你好,阿里国际数字商业集团-数字零售技术部-供应链(base杭州)招聘24届校招生,感兴趣可以点击下方链接投递简历噢 https://www.nowcoder.com/jobs/detail/263381?jobId=263381
2 回复 分享
发布于 2023-08-20 21:00 浙江
同学,阿里控股集团JAVA开发岗投吗?我们和其他业务集团独立招聘,可以多次机会。需要的话,可以联系我。
1 回复 分享
发布于 2023-08-21 20:45 浙江
佬,场景第一题注册并发是弄个分布式锁锁住然后去注册吗。场景第三个有点没看懂,意思是一个页面根据hash算法分到redis槽中只能在一个redis节点上,加个ip(这个ip是用户的ip地址吗)前缀的话能使他分布到别的redis节点中吗。还是什么意思呀
1 回复 分享
发布于 2023-08-19 10:52 北京
姐妹,很看笔试成绩吗我心思约面了笔试没咋好好做
点赞 回复 分享
发布于 2023-08-29 09:35 北京
怎么这么多场景…老哥牛客项目有这样的面试题吗
点赞 回复 分享
发布于 2023-08-26 09:30 江苏
请问约二面了吗
点赞 回复 分享
发布于 2023-08-21 19:08 重庆
校友好,CPP选手后天来面java啦
点赞 回复 分享
发布于 2023-08-20 19:40 江苏
哪个部门
点赞 回复 分享
发布于 2023-08-20 14:17 上海
有点顶
点赞 回复 分享
发布于 2023-08-20 09:58 广东
什么时候笔试的
点赞 回复 分享
发布于 2023-08-19 20:18 上海
注册跟并发有什么关系吗
点赞 回复 分享
发布于 2023-08-19 11:53 广东
兄弟之前有电话面吗?
点赞 回复 分享
发布于 2023-08-19 09:40 湖南

相关推荐

05-23 12:00
门头沟学院 C++
5.22一面,总共时长125min1.如何保护用户的隐私2.int* createArray() {int arr[3] = {1, 2, 3}; return arr;} 这段代码有什么问题3.对上述代码进行改进,写出能想到的所有方法(我写了一个malloc,全局数组,静态数组)4.说一下三种方式的优缺点5.全局数组和静态数组有什么区别6.解释完美转发的作用及实现方式7.const int*,int const*,int* const, const int* const的区别8.实现一个无锁计数器9.调用C++11实现一个线程安全的有界环形队列(circular buffer),要求如下:支持多线程环境下的并发push和pop操作,队列有固定容量,满时push操作要阻塞,空时pop操作要阻塞。不允许使用第三方库,只能用C++11标准库,说明你的实现如何保证线程安全,并分析可能的性能瓶颈。10.unique_lock 和 lock_guard的区别,为什么你刚才给我的代码用的是unique_lock 而不是 lock_guard 呢11.你写的代码的性能瓶颈是什么?如果有大量得到生产者和消费者会怎样呢12.把第9个改成非阻塞的,写一下,为什么你这个非阻塞用lock_guard这个锁呢13.有一类二叉树用三叉链表来存储的时候除了带有指向左右孩子节点的两个指针,还有指向父节点的指针,那么这样一棵二叉树有n个节点,那么有多少指针指向NULL(对于不存在的节点表示为空)14.int n = 2019; int count = 0;  while(n){count++; n = n&(n - 1);} cout << count << endl;输出是多少,为什么15.给定一个递增循环整数数组,从里面找出最小的元素,使用的算法越快越好。特别地,最小的元素可能出现在数组中间。比如:50,52,63,90,3,8,15,44,49,int findmin(int array[]){}16.在二叉排序树上面找出第3大的节点。注意:不能把二叉树全量存储到另外的存储空间,比如存储到数组中,然后取出数组的第三个元素。class TreeNode {public:int value;TreeNode*left;TreeNode* right};TreeNode* find(TreeNode*root) {}17.动态规划题:给定一个长度为l的木棍,已知有n个切割点,要求在每个切割点都要切割,注意每次切割的开销为当前木棍的长度,例如一个10米的木棍,切割点为2,4,7。有多种切割方式,其中可以先切2,再切4,再切7,此时开销为10+8+6=24(第1次切木棍为10米,笑2次切木棍为8米,第3次切木棍为6米),也可以先切4,再切2,再切7,出约著销为10+4+6=20,这时开销更小你的任务是计算切割的最小开销。
查看17道真题和解析
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
21
177
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务