首页 > 蔚来 Java 一面面经
头像
keboom
编辑于 2021-08-20 14:25
+ 关注

蔚来 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%`

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

更多模拟面试

全部评论

(7) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐