20210311阿里面经

投的阿里广州JAVA开发岗
一面:
打开邮箱的连接,使用阿里的伯乐面试平台进行视频面试:

  1. 上来先自我介绍
  2. 手写快排算法(有点紧张,排序逻辑写出来了,最后递归时入参写错了)
public class TestMain {
    public static void main(String[] args){
        int[] input = {4, 7, 6, 5, 3, 2, 8, 1};
        quickSort(input);
        printInt(input);
    }

    public static void quickSort(int[] input) {
        quickSort(input, 0, input.length - 1);
    }

    public static void printInt(int[] input){
        for(int i=0; i< input.length;i++){
            System.out.print(input[i]);
        }
        System.out.println();
    }

    public static void quickSort(int[] input, int start, int end) {
        int mark_index = start;
        int mark = input[mark_index];
        boolean isForward = false;
        int i = start;
        int j = end;
        while (i != j) {
            printInt(input);
        if (isForward) {
                if (input[i] > mark) {
                    input[mark_index] = input[i];
                    mark_index = i;
                    isForward = false;
                    j--;
                } else {
                    i++;
                }
            } else {
                if (input[j] < mark) {
                    input[mark_index] = input[j];
                    mark_index = j;
                    isForward = true;
                    i++;
                } else {
                    j--;
                }
            }
        }
        input[mark_index] = mark;
        printInt(input);
        if(mark_index - start > 0){
            quickSort(input, start, mark_index);
        }
        if(end - (mark_index + 1) > 0){
            quickSort(input, mark_index + 1, end);
        }
    }
}
  1. 讲一下工作中遇到的最大的难题?最终用的什么技术方案实现的?
  2. JAVA基础知识:
    a. 讲一下所知道的JAVA集合类型,简单介绍一下所知道的东西
    b. 引申问题a,讲一下HashMap的原理,java1.7 1.8有啥区别之类的?
    c. 讲一下JAVA异常处理?运行时异常和检出异常有啥区别?讲一下经常碰到的运行时异常和检出异常?
    d. JVM相关知识讲一下?有没有相关的JVM调优经验?
    e. redis缓存相关(缓存击穿、缓存穿透、缓存雪崩)
    f. redis分布式锁怎么实现?要注意啥?(我的项目跟redis相关,这一块问的比较多)
    g.redis持久化策略?淘汰策略?
    还有一些关于微服务的问题忘了。。。感觉问题都比较开放,不会说是那种一问一答类型的。
  3. 最近有没有看啥书?或者其他资源?简单讲一下?
  4. 英语自我介绍?交流一下?

二面:
二面是由项目负责人直接联系,电话面试;面试官给人感觉很好,知识面很广,且深入。面试交接很详细,二面面试官直接上来就问一面没有问过的问题,都是开放式的场景题,很好的一次面试体验。

  1. 如果给你一个字符串类型的数字,怎么转化为整型?(这个问题一上来没啥头绪,给我问懵了。我回答:a. 脑海中首先想到的方法是直接调用Integer.parseInt方法;b. 遍历String的char数组,根据char的ASICC码,把char转换成数字,根据个十百千十进制转换成整型;c. 或许可以利用一些位运算的方法,提高转换效率,具体的方法没想出来,实际是可以用位运算代替除法运算,提高除法效率)
  2. 类似脑筋急转弯题目:1000瓶水,其中一瓶有毒药,怎么使用最少的试纸找出来?
  3. 现在有多个任务,任务之间没有互相依赖,没有顺序,怎么能最快的执行完这多个任务呢?(聊到了线程池,展开了一大段,底层实现细节说错了)
    10.怎么收集多个任务的结果?(我回答了用Future阻塞获取,或者使用CoutDownLatch之类的工具类?)
  4. 设计一下微信群聊天里面已读信息?
    这个问题没回答好,感觉扣了不少分,脑袋卡机;仔细想了一下应该要考虑以下几点:a. 群聊天已读信息数据庞大,记录已读信息的结构必须是轻量化的,占用内存少——只有已读和未读两种状态,使用bit存储;b.群成员可能发生变动,存储结构对于增删场景是灵活的——使用链表结构?;c. 有用户已读时修改状态效率高——树结构?红黑树?;d.方便统计已读人数、未读人数——使用额外的内存存储已读人数?
  5. 英语水平咋样?飙了一段英语紧张得很
  6. 最后聊了一下人生规划,然后就结束了

三面:
三面是交叉面,由隔壁部门的大佬来面试,总时长大概20分钟左右。

  1. 自我介绍,讲一下最近做过比较有挑战性的项目
  2. 如何理解并发?多线程?Java里面多线程相关的知识讲一下?
  3. 怎么理解微服务?为何要使用微服务架构?微服务架构的优势和挑战?
  4. 为何要换工作?职业规划?
  5. 讲一下自己的几个缺点和优点?

HR面:

  1. 自我介绍
  2. 目前所在团队的结构是怎样的?你在里面处于啥位置?如果排序你是排第几?
  3. 讲一下最深刻的项目?遇到啥挑战? 怎么克服的?是否享受这个过程?为什么?
  4. 对面试部门有啥了解?以后职业规划?
  5. 为何要换工作?

总结

hr面试后一周左右通知我通过了,然后就是定薪谈offer~~阿里的面试官都很nice,问的问题都是比较开放性的问题,大部分都是给你个主题或者场景,让你讲自己的想法,然后根据你讲的内容再逐步深入,直到你说不出来为止,总的来说是一个很不错的的面试体验。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值