栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

合肥-NIO蔚来汽车JAVA开发

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

合肥-NIO蔚来汽车JAVA开发

面试
  • 一面电话
  • 二面视频(需要写代码)
    • 视频一
    • 视频二
    • 视频三

一面电话

时长:30分钟
实际:25分钟的样子
难度:一般

  1. Nacos注册中心原理

从raft选举到pull、push整个流程

  1. Dubbo调用原理

首先跟面试官说了dubbo怎么把服务注册到nacos中,再到从nacos中获取注册服务列表,调用的几种方式和负载均衡算法

  1. Dubbo中3个消费者、4个提供者共建立了多少个连接

这个题回答了好久,主要是前面问了nacos,还以为dubbo跟nacos建立了多少链接,后面面试官说消费者和提供者怎么连接的
我:默认是dubbo协议
面试官:dubbo底层用了什么
我:TCP
面试官:难道发送一次请求就立马断掉连接吗
擦… 秒懂,所以面试的时候一定要细心听清楚问题

  1. Redis中什么是缓存穿透和缓存击穿,怎么解决

…说了很多,面试来了句缓存击穿用分布式锁那不等于后面请求都是串行的,后面说了好几种方式发现都不行… 这个问题就这么过了

  1. Redis为什么这么快

数据存储在内存中、多路复用…说了每个数据结构比如string用的是SDS、zset用了跳表和压缩列表…

  1. 在高版本中Redis用了多线程怎么保证线程安全的

命令解析用的是多线程,其它还是单线程处理

上午面试的,下午HR就给预约了二面,说需要电脑要写代码,慌的一塌糊涂

二面视频(需要写代码) 视频一

时长:60分钟
实际:50分钟的样子
难度:一般
晕了。。。。问了些什么都忘记了,只记得两道编程题

大约问了10分钟的八股文就开始写代码,我说用IDEA可行,他说太麻烦了,直接用的是腾讯文档共享写的, 慌。。。。。。

  1. 二分查找

这个简单^ ^

public int binSearch(int[] array, int value) {
    int lng = array.length;
    int median =  lng >> 1;
    if (array[median] == value) {
        return median;
    }
    int start = 0;
    int end = lng - 1;
    while (start <= end) {
        median = ((end - start) >> 1) + start;
        if (array[median] < value) {
            start = median + 1;
        } else if(array[median] > value) {
            end = median - 1;
        } else {
            return median;
        }
    }
    return -1;
}

面试官: 你写的这个方法有什么问题
我:array没判断空、value需要判断大于等于0
面试官:为什么用int value 而不用Integer value
说了各自使用场景和存储方式

  1. 单例
public class Test {
    private Test() {}
    public static final Test getInstance() {
        return TestHolder.LAZY;
    }
    private static class TestHolder {
        private static final Test LAZY = new Test();
    }
}    

面试官:实现单例有几种方式
我:懒汉、饿汉、枚举、容器化…
面试:为什么用双重检查锁
从指令重排序、可见性开始说起…

上午面的试 中午就给了二面视频二

视频二

时长:60分钟
实际:55分钟的样子
难度:有点难度
额。。。。问了些什么也给忘记了,都挺简单的问题

  1. 二叉树中序遍历转双向链表
static class Node {
    private Node pre;
    private Node next;
    private Object obj;
    public Node(Object obj) {
        this.obj = obj;
    }
}
static class TreeNode {
    private TreeNode left;
    private TreeNode right;
    private Object obj;
}
public static Node recursiveTraversal(TreeNode treeNode, Node node) {
    if (treeNode != null) {
        recursiveTraversal(treeNode.left, node);
        if (node == null) {
            node = new Node(treeNode.obj);
        } else {
            node.pre = node;
            node.next = new Node(treeNode.obj);
        }
        recursiveTraversal(treeNode.right, node);
    }
    return node;
}

汗…没写对,应该把中序遍历结果保存到list中,然后list再转双向列表就简单多了…

上午面的试,算法没写对以为结束了,没想到给过了,估计八股文回答的还不错,中午就给了二面视频三

视频三

时长:60分钟
实际:90分钟 严重超时了
难度:有点难度

  1. Mysql中B+树原理
  2. B+树和B树有什么区别
  3. Mysql中为什么不使用红黑树
  4. SQL优化
  5. RC和RR区别

    说了RC、RR解决哪些问题、MVCC实现原理
    面试官:你平时用的是那种模式
    我:一般都是RC,并且说了为什么会用RC
    面试官:什么情况下用RR
    我:想了下,实在没想到那种场景会用到RR
    面试官说了一个场景,我也没听明白,-_-|| 这里聊了很久,没get到点

  6. spring 循环依赖是怎么解决的
  7. spring bean生命周期
  8. SpringBoot启动原理
  9. AQS中使用哪些设计模式

    没回答上来

  10. AQS原理
  11. 有没有自己实现过AQS

    没自己实现过

  12. JVM 内存模型
  13. 有哪些垃圾回收算法
  14. 垃圾回收器有哪些
  15. CMS和G1有什么区别

此时时间已经过了一个小时了,还以为没算法题了

  1. 爬楼梯

面试官:最近有刷算法题吗,有的话就写个有意思的算法
我:别…没有,面试公司貌似只有贵公司需要写算法
面试:那就写个爬楼梯 每次只能走1或者2个台阶
我:…
还好这题之前瞅了眼,不然什么叫爬楼梯都不知道

public static int climbStairs(int n) {
    if (n <= 2) {
        return n;
    }
    return climbStairs(n - 1) + climbStairs(n - 2);
}

此时面试官说这是递归形式,能优化下吗

public static long climbStairs2(int n) {
    if (n <= 2) {
        return n;
    }
    int x = 1;
    int y = 2;
    for (int i = 3; i <= n; i++) {
        int t = x + y;
        x = y;
        y = t;
    }
    return y;
}

面试官:上面递归会有什么问题
我:超过int最大值、不能为负数
面试官:还有能
我:额… 想不起来
其实还有一个比较重要就是会导致栈溢出

下午4点半面试的,等了一周HR说没过,问了为什么,说上面没写… 回想下整个面试过程就两块没回答好 一个是RC、RR还有一个是递归查询没说具体问题

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/336384.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号