快手Java面试题分享,一二面(面经面试题附部分答案)

KLQ 2020-04-13 16:16:22 java常见问答 15556

下面要给大家分享的是一个快手的一面和二面的Java面经,其中包含了具体的面试流程、面试题以及部分面试题答案。

笔试:

总的来说,难度还是要比美团低一些,前面的三道题都并不是很难,只有最后一道题大概是leetcode的hard难度,当时写了一个模拟流程AC40%粗滚。

面试的时候,大致的记住了以下这些。

一面(一面的时间大概花费了30分钟左右)

先做自我介绍

之后就是正式进入面试题部分:

1、说一下Spring AOP

2、说一下Java的GC机制,讲一下讲G1

3、类加载过程包括什么?双亲委派模型的优缺点是什么?

加载过程:加载、验证、准备、解析、初始化、使用、卸载

优点:可以避免类的重复加载,另外也避免了java的核心API被篡改

4、讲一下hashmap

HashMap在Java开发中使用的非常频繁,可以说仅次于String,可以和ArrayList并驾齐驱.....。

5、了解kafka吗?讲一下kafka

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它能够处理消费者在网站中的所有动作流数据......。

6、说说聚集索引和非聚集索引,mysql的4种事务隔离级别,InnoDB在Repeatable_Read下为什么不会幻读,索引为什么用B+树,B+树和B树的区别

聚集索引是指数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同。一个表只能有一个聚集索引,非聚集索引是一种索引,该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同.......。

7、写代码的过程当中,你认为最重要的是什么?

8、设计一个秒杀系统

其他:

开放题:井盖为什么是圆的?

算法题:对一个不递减数组进行一次旋转操作的结果,查找数组中的数,就是对类似于[4,5,6,1,2,3]这样的数组,进行查找(二分)

以上就是整个一面的流程和部分面试题了,下面一起来看看二面的面试流程和面试题吧。

二面(二面的时间大概花费了50分钟左右)

首先进行自我介绍,之后谈论了一下项目。

面试题:

1、Spring IoC机制是什么?实现原理

2、讲一下你熟悉的Java设计模式

3、装饰者模式了解吗?

4、IoC机制符合了Java设计模式的什么原则

5、多个线程同时对volatile类型的变量进行i++操作,可以保证结果吗?为什么不可以,说一下volatile的原理

6、我们在什么时候使用volatile是正确的,刚才的场景怎么保证结果(synchronized),说说sync的原理,它和ReentrantLock有什么不同?

7、说一下AtomicInteger的实现原理,Atomic开头的类经常会有一个方法叫lazySet,讲讲它的作用

8、讲一下java中的集合类,Comparable接口和Comparator接口

9、讲一下线程池的工作流程,4种拒绝策略,4种队列,其中一个线程挂掉了会怎么样

其他:

算法题:表达式求值,“10+8*3-3*2-5”(双端队列)

以上就是二面的流程和面试题了。

更多快手Java面试题请继续关注本站了解。