2022届秋招|校招 阿里蚂蚁 Java开发 一面二面挂

一面(50min):

1.Java: JVM原理

里面的加载器和加载模式

加载器的加载顺序

2.堆栈区别

String s = “123” Student s = new Student 这两个代码运行过程是什么(放在堆还是栈)

String s = new String(“123”) 这个在哪

3.Java: 说一下GC回收机制

垃圾回收器一直在演进 你知道这个演进过程吗

CMSG1了解吗 它们两个的区别

垃圾回收策略 你觉得这几个算法中哪个是最好的

垃圾回收器停顿和并发的指标(不知道)

4.怎样理解多线程的

线程中锁有几种

实现锁的形式有哪几种(其实就是说那两个关键字)

实现线程的方法

线程池有几种实现方式

newscheduledThreadPool用过吗 从字面意思上看它是什么

5.讲一讲CAS

讲一讲AQS

LinkedBlockedQueue底层实现了解吗

6.ReentrantLockSynchronized区别

非公平的解释

什么是自旋锁/可重入锁

7.进程间通信方式有哪些

体现在具体的方法上呢(问到这里面试官才知道我Java是自学的(意思是学校里没有专门的课 我寻思学校课也没法教那么深) 我说我们学校就只用C教大家入门 后面不限定语言 我寻思大多数学校不应该都这样的吗)

因为上面那个问题 问了你知道我们阿里的背景吗 大多数系统都是Java实现的 你用过哪些阿里的东西吗(sofa)

8.Java:常见的集合

讲一下HashMap HashMap的大小是可以限定的吗 它是怎么扩容的 扩容算法有哪些

HashTable了解吗

ConcurrentHashMap怎么实现的 具体实现呢

Synchronized操作的对象是什么 Node节点在什么地方存

说一下Segment 1.7ConcurrentHashMap怎么用它实现的

LinkedHashMap用过吗

9.排序算法里面你最熟悉的哪个

快排原理说一下 用它实现查找的原理是什么

图你学的怎么样(早忘了)

10.简单介绍一下实习项目

11.了解微服务吗

12.机考复盘

13.你们学校对于竞赛或者项目的政策是什么

14.手撕代码: https://leetcode-cn.com/problems/largest-number/ 中等难度 大概10min写出来了

二面(40min):

忘了录音了 只能凭记忆说了
首先大多数都是开放问题 比如怎么学Java的 有没有自己的方法 介绍一下实习项目 做的时候怎么学习新东西的
然后开始问正式内容 问你用过哪些中间件 原理 特点 知道的简单说一下
最后问了开放问题:设计一个足球投票系统 票数时刻显示在大屏幕上 大概会有几百个球队 还问一些具体接口怎么实现 比如投票(保证用户不丢票) 热门球队查询(用户能够查询前几名的球队的名称和票数)
开放题答的不怎么好 因为我确实没做过这种项目 也没什么概念 而且只知道redis和数据库怎么处理 面试官看我一直说这两个特意说不局限于这两个 我只能说在上游部分尽量做些过滤 抛弃无用数据让下游数据量少一些
那两个接口:第一个说了redis怎么高可用 持久化机制 雪崩穿透击穿怎么解决 什么时候降级
                      第二个我只知道用redis的sorted-set 其他的就不会了
#阿里巴巴##蚂蚁集团##面试题目#
全部评论
挂了的挂会显示流程终止么
点赞 回复 分享
发布于 2021-12-12 11:15
同学 请问是蚂蚁的什么部门呀?
点赞 回复 分享
发布于 2021-11-15 00:47

相关推荐

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道真题和解析
点赞 评论 收藏
分享
评论
3
32
分享

创作者周榜

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