去哪儿java工程师一面、二面、HR面经社招面筋

去哪儿

一面:

自我介绍

你知道jvm虚拟机吗?说一说内存划分以及每个区域的作用。

你知道jvm怎样进行垃圾回收吗?把你知道的都说一下。serail+cms,parnew+cms,g1,分

别的算法。

新生代到老年代的条件?parnew是如何操作的?

g1分代吗?不分代。你确定?不知道。

说一下spring的aop。***模式,默认jdk 动态***,没有接口会转为cglib。

说一下cglib怎样实现的。

说说你知道的排序算法。

写一下堆排序。

看你简历用过mysql,讲讲innodb和myisam。

说一下mysql 的索引。hash 索引,b+树。区别?

你画一下b+树

b+树b树有什么区别?

为什么要使用b+树而不是二叉树?

innodb 支持事物,你知道是通过什么实现的吗?mvcc。说一下。

mysql,innodb,查询会锁表吗?

知道哪些数据库的优化,都说一下。

来写一道题,找出一个数组内超过%50 的字符,最快用什么?hash。如果我不申请额外空间呢?排序,二分。

你去xxx等一下。我看你好紧张,要不你出去转转?我们这面试官都是很好的。

二面

特别热情的面试官,走进去先叫我名字,我说那我做个自我介绍吧,他说不用,都知道。一

直在笑,我也不紧张了。

记得笔试的题吗?那道求平方根的,你来实现一下。

再来一道题,我这有两个相同长度的链表,没个节点都是string,你能想到最快的方式判断

这两个链表是否等价,等价就是说string 都有,但是顺序可以不一致。

我看你的简历你有不少web后端的开发经验,现在一个单机部署的tomcat(因为我问了服务器是分布式还是单机),怎样记录每个url的被访问次数?

一开始没懂,后来大概懂了是问存到什么地方。数据库?可以,还有呢?缓存?也行,还有

呢?io 写到文件里面?也可以,还有吗?.....想了一两分钟,ServletContext?嗯对,介绍一

下这个对象,然后说一下你要怎么实现。

现在我们要设计一个缓存,一方面要提供用户访问的接口,一方面这个缓存要限制大小,你

来画一下?lru?我画了个队列,他说时间复杂度太高,我说加个数组,先hash映射到数组是,再通过指针指到队列节点上。

然后他说好吧,你是想继续做java开发对吧?嗯,那你去xxx等一下。

hr面

为什么想去北京,有女朋友吗,父母怎么看,期望薪资是多少。

 

#去哪儿##java工程师##社招##面经#
全部评论
大二学子求问:不问一些分布式微服务方面的吗
点赞 回复 分享
发布于 2021-06-21 07:48
线下?
点赞 回复 分享
发布于 04-14 22:08 广东

相关推荐

2024/10/15 11:45 30min部门是基础架构部,面试官迟到了20多min,也没开摄像头- 自我介绍- Java集合介绍- ArrayList 和 LinkedList都有200个元素,在第100个位置插入一个元素,哪个更快- HashMap主要用来做什么- HashMap是线程安全的吗?- 如何将其变为线程安全的- 加了分段式之后的性能如何- Java中如何实现线程安全?- synchronized和ReentrantLock区别- 给一段代码,是否会输出顺序结果```javaimport 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             int finalI = i; executorService.submit(() -> {                try {                    barrier.await();                    if (finalI % 2 == 0) {                        counter1.print("Count1:" + counter1.add());                    } else {                        counter2.print("Count2:" + counter2.add());                    }                } catch (Exception e) {                    e.printStackTrace();                }             });        }         executorService.shutdown();    }}```- 开源项目介绍- OTP码、2FA介绍及原理- OAuth2.0中的access_token生成算法- 秒杀业务如何保证高并发下的正确性反问:- 面试结果一天出吗?- 部门介绍#去哪儿##去哪儿求职进展汇总##去哪儿旅行秋招#
查看16道真题和解析 去哪儿求职进展汇总
点赞 评论 收藏
分享
11-05 18:26
门头沟学院 Java
点赞 评论 收藏
分享
6 38 评论
分享
牛客网
牛客企业服务