蔚来 Java 一面面经

自我介绍
项目相关问答
基本围绕项目问,比如会问redis,rabbitmq,虽然我没有做过,但是他仍然会问一下。
基本上都是有场景的,而且是一个女面试官,第一次遇到啊。

我不会的点,有些是看过忘了啊,,
spring循环依赖
Java的各种锁有什么区别呢?
比如信号量,reentrantlock有什么区别,我是用sychronize有啥区别呢?
mysql的各种事务隔离级别是怎么实现的?比如可提交解决脏读,是如何实现的呢??

最后给了两道题:
1.给你两个账户,实现转账操作,请你实现高效的多线程
我写的代码,我也不知道我这样写于用sychronize有啥区别,我不知道会不会发生死锁。求其他大佬 能够给点意见,如果让你实现一个转账方法,你会怎么实现呢?要考虑哪些呢?求牛油们多多再评论区讨论啊!!!
面试官说我这个代码如果a于b转账,c于d转账会有设么问题,我不知道啊。。
更新:我知道了,如果我用信号量,这样的话,只会有一个线程执行transfer方法,也就是说当a和b进行转账时,c和d就不能转账了。
        Semaphore sp = new Semaphore(1);
    public void transfer2(Account a1,Account a2,double money) {
        try {
            sp.acquire();
            a1.setBlance(a1.getBlance() - money);
            a2.setBlance(a2.getBlance() + money);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }finally {
            sp.release();
        }
    }
比如我之前有一次面试也是转账,是为了解决死锁,所以根据用户id大小来顺序获得锁,避免死锁,
更新:所以应该使用synchronized来获得锁,这样获得用户a和b的锁,不会对用户c和d的锁造成冲突,这样就可以同时转账了。。。
       public void transfer3(Account a1,Account a2,double money) {
        Account first = a1.getId() < a2.getId() ? a1 : a2;
        Account second = a1.getId() < a2.getId() ? a2 : a1;
        synchronized (first) {
            synchronized (second) {
                a1.setBlance(a1.getBlance() - money);
                a2.setBlance(a2.getBlance() + money);
            }
        }
    }




2.有一个表,id,name
请你写出创建表的语句
我们要找a开头的名字
我们要找z结尾的名字
我们要找a开头,z结尾的名字

这题让我写出见表语句,所以肯定就是想让我们建立索引了。
如下是我的答案:
create table `test`(
        `id` long AUTO_INCREMENT,
        `name` varchar(16) NOT NULL,
        `name_reverse` varchar(16) NOT NULL,
        PRIMARY KEY (`id`),
        key `name` (`name`),
        key `name_reverse` (`name_reverse`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

select name
from test
where name like `a%`

select name
from test
where name_reverse like `%z`

select name
from test
where name like `a%` and name_reverse like `z%`

如果有其他更好的答案,请多多评论!!!!!!!

#蔚来面试##面经##蔚来汽车##校招##Java工程师#
全部评论
lz没有二面吗?
1 回复 分享
发布于 2021-10-23 12:51
估计也是一个面试官,题目也有大致相同的,狠狠的问了项目
1 回复 分享
发布于 2022-01-06 21:43
保融科技
校招火热招聘中
官网直投
和你一个面试官😂
点赞 回复 分享
发布于 2021-09-29 20:16
手撕代码使用哪个在线编程工具,要全部AC吗
点赞 回复 分享
发布于 2021-11-07 12:40
请问是啥项目😂
点赞 回复 分享
发布于 2021-11-10 11:38
一个面试官啊,哎
点赞 回复 分享
发布于 2022-02-23 21:10
二面了嘛?
点赞 回复 分享
发布于 2022-07-12 16:59

相关推荐

10 80 评论
分享
牛客网
牛客企业服务