去哪儿-Java开发-一面

2024/10/15 11:45 30min

部门是基础架构部,面试官迟到了20多min,也没开摄像头

- 自我介绍
- Java集合介绍
- ArrayList 和 LinkedList都有200个元素,在第100个位置插入一个元素,哪个更快
- HashMap主要用来做什么
- HashMap是线程安全的吗?
- 如何将其变为线程安全的
- 加了分段式之后的性能如何
- Java中如何实现线程安全?
- synchronized和ReentrantLock区别
- 给一段代码,是否会输出顺序结果
```java
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicInteger;

public class Main {
    private static int i= 0;
    private static final int NUMBER_OF_THREADS = 100; // 线程数量
    private static final CyclicBarrier barrier = new CyclicBarrier(NUMBER_OF_THREADS);
    public synchronized int add() {
        return i++;
    }
    private void print(String value) {
        System.out.println(value);
    }
    public static void main(String[] args) {
        ExecutorService executorService = Executors.newFixedThreadPool(NUMBER_OF_THREADS);
        Main counter1 = new Main();
        Main counter2 = new Main();
        for (int i = 0; i < 100; i++) {
            int finalI = i;
            executorService.submit(() -> {
                try {
                    barrier.await();
                    if (finalI % 2 == 0) {
                        counter1.print(&quot;Count1:&quot; + counter1.add());
                    } else {
                        counter2.print(&quot;Count2:&quot; + counter2.add());
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }

            });
        }

        executorService.shutdown();
    }
}
```
- 开源项目介绍
- OTP码、2FA介绍及原理
- OAuth2.0中的access_token生成算法
- 秒杀业务如何保证高并发下的正确性

反问:
- 面试结果一天出吗?
- 部门介绍

#去哪儿##去哪儿求职进展汇总##去哪儿旅行秋招#
全部评论

相关推荐

不愿透露姓名的神秘牛友
03-16 11:31
点赞 评论 收藏
分享
03-09 17:42
已编辑
福州大学 Java
给准备投这家公司的友友提供一下面经作为参考八股顺序不太记得了。1.自我介绍2.项目介绍(这块答得很烂,感觉面试官不感兴趣,都没怎么追问细节)3.讲讲mysql&nbsp;b+树(提到b+树基本结构,减少磁盘OI)4.事务的隔离级别(四个都提到了)5.讲讲JVM内存模型,双亲委派机制(基本都回答上来了)追问类加载器能不更改掉双亲委派&nbsp;(这个回答了无法轻易更改,因为安全问题)6.线程池的类型(这个忘记了)线程池核心参数(这个答上了)7.syn和reen的区别(这个当时只记得后者可以实现公平锁,现在才意识到还有很多不同)8.谈谈spring的IOC&nbsp;&nbsp;&nbsp;&nbsp;(讲了一下控制反转,解耦)9.讲一下如何处理循环依赖(提到了三级缓存,和只能解决单例下的循环依赖)10.容器了解吗(不太了解,只了解了一些docker但没真的部署过)11.大模型开发软件cursor和trae有使用过吗(没使用过)补充一点:追问了项目中事务是怎么实现的(这个确实不了解,只会用@Transactional)面试官建议:了解一些前端的知识,在校要主动多使用大模型开发,了解前沿技术。提到我代码能力还是基础不是很充足。一共面了20分钟,面完就知道大概率无了,感觉还是项目都没有怎么细问,个人感觉像是因为没有上线过的原因。有点疑问想咨询一下:这是我第一次面试,感觉面试官都是让我主动谈谈项目啊,八股啊。我感觉我如果一下把点都回答了,那面试官问的就都是我没准备的,但如果刻意讲讲的时候没有答完整,留一些让面试追问的又可能不会追问而是跳过,再觉得你基础不行。所以我很纠结这种讲讲谈谈要怎么回答合适,怎么把握那个度。也可能是我太菜了,前面项目那回答太差就挂了,后面只是走流程,所以才会这样。平常自己找AI面试都是AI会追问细节和具体内容,今天实际面一下发现差别还是好多。
查看14道真题和解析
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
03-16 14:14
点赞 评论 收藏
分享
评论
4
17
分享

创作者周榜

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