快手java【一、二、三面】

##车祸现场记录 :本以为一面都过不了,结果还安排了后面的面试,感恩!

【一面】
java基础:
1.集合的体系,ArrayList和LInkedList区别
2.ConcurrentHashMap

java并发:
1.java锁机制(sychronized和Lock)
2.volatile
3.线程池三个参数(追问 如果1w个任务,10个线程,如何设计来处理这些任务)
4.Future  (应该是用这个回答3)
5.Threadlocal

框架:
1.spring和springboot
2.追问:bean初始化完成之前(或者之后),想要执行一段代码,应该怎么写
3.spring事务(如果在事务A的方法中,调用了B,那么B会形成事务吗??不太理解,不怎么用事务,大佬给解答一下啊)

mysql:
1.介绍一下索引,我说的MyISAM和InnoDB都是B+树实现的,还没等我说区别,面试官逼问我。“MyISAM是b+树实现的吗?”之后解释区别 聚簇和非聚簇 ?到底是不是b+树啊😭
追问:在我说InnoDB是聚簇索引的时候,问是吗?! 那InnoDB的非主键索引是什么!
2.讲一下b+树,为什么要使用它
3.mysql事务(说了下并发安全问题、隔离级别)

算法题:
1.汉诺塔(题没理解,面试官也不想看了,换了一道题)
2.一个包含很多单词的数组,寻找给定两个单词的最短距离,可能有重复的单词(暴力法求解,本来想下一种思路,面试官感觉时间太长了,面试结束)

##回去等通知吧,GG。感恩!

【二面】
java:
  1. 集合框架
  2. java锁

框架:
  1. Springboot有了解过吗?和Spring有什么区别?其中starter实现原理
  2. spring中如何解决bean的循环依赖的

mysql:
  1. 事务四大特性
  2. 事务这四大特性都是怎么来保证的

算法题:
  1. 输出链表倒数k个元素 -快慢指针
  2. 字符串字母组合(字符串中包含重复元素,但无重复组合)  -回溯
二面面试官评价:理解和掌握深度可以,但是广度差点,可以多看一点,多学一点,比如springboot、redis都没怎么用过。

【三面】

本以为是HR面了,后来才发现应该不是。。。
大概聊了下项目,其中遇到的困难。
作为程序员你觉得应该具有哪些特质。

【HR面】
有点小压力面的味道,我简历的项目与业务可能有一点出入,所以问了一下怎么看待:不会就学!

感恩!等消息中
#面试##面试题目##快手#
全部评论
spring的bean初始化前、中、后想做一些事情,怎么办?http://www.yayihouse.com/yayishuwu/chapter/2010
2 回复 分享
发布于 2022-03-11 17:16
future类和countdownlatch
1 回复 分享
发布于 2022-02-23 16:27
spring允许开发者自定义扩展bean的初始化过程,可以通过实现BeanPostProcessor,重写前置和后置处理器,运行自己想要写的代码。
1 回复 分享
发布于 2022-02-24 15:57
lz,在哪里投的快手
1 回复 分享
发布于 2022-02-25 20:34
如果在事务A的方法中,调用了B,那么B会形成事务吗? 在一个Service内部,事务方法之间的嵌套调用,普通方法和事务方法之间的嵌套调用,都不会开启新的事务。是因为spring采用动态代理机制来实现事务控制,而动态代理最终都是要调用原始对象的,而原始对象在去调用方法时,是不会再触发代理了! https://baijiahao.baidu.com/s
1 回复 分享
发布于 2022-03-11 17:24
构建线程池的方法: 1.使用Executor框架提供的线程池、使用ThreadPoolExecutor自定义线程池,但前者也是通过ThreadPoolExecutor实现的。 2.创建实现Runnable或callnable接口的任务对象 3.将对象交给ExecutorService执行。通过excute(不需要返回结果的任务)或submit(需要返回结果的任务),submit会返回一个Future对象,通过future对象的get()可以获取任务执行结果。 4.最后shutdown回收线程,或者使用future.cancel()等方法来取消任务执行
4 回复 分享
发布于 2022-02-24 15:15
当一个事务方法被另一个事务方法调用时,必须指定事务如何传播。例如:事务可能在现有方法中运行,也有可能开启一个新事物来运行。
点赞 回复 分享
发布于 2022-02-24 19:51
集合需要看源码吗😉
点赞 回复 分享
发布于 2022-03-02 13:29
追问 如果1w个任务,10个线程,如何设计来处理这些任务 楼主,这个应该怎么回答呀😋,future了解得不太深
点赞 回复 分享
发布于 2022-03-11 09:37
lz,一面后多久通知的二面呀
点赞 回复 分享
发布于 2022-03-11 16:25
Spring如何解决循环依赖 spring中循环依赖有三种情况:   1、构造器注入形成的循环依赖。也就是beanB需要在beanA的构造函数中完成初始化,beanA也需要在beanB的构造函数中完成舒适化,这种情况的结果就是两个bean都不能完成初始化,循环依赖难以解决。   2、setter注入构成的循环依赖。beanA需要在beanB的setter方法中完成初始化,beanB也需要在beanA的setter方法中完成初始化,spring设计的机制主要就是解决这种循环依赖,也是今天下文讨论的重点。   3、prototype作用域bean的循环依赖。这种循环依赖同样无法解决,因为spring不会缓存‘prototype’作用域的bean,而spring中循环依赖的解决正是通过缓存来实现的。 下面主要说明第二种情况中循环依赖的解决方案   步骤一:beanA进行初始化,并且将自己进行初始化的状态记录下来,并提前向外暴露一个单例工程方法,从而使其他bean能引用到该bean(可能读完这一句,您仍然心存疑惑,没关系,继续往下读)   步骤二:beanA中有beanB的依赖,于是开始初始化beanB。   步骤三:初始化beanB的过程中又发现beanB依赖了beanA,于是又进行beanA的初始化,这时发现beanA已经在进行初始化了,程序发现了存在的循环依赖,然后通过步骤一中暴露的单例工程方法拿到beanA的引用(注意,此时的beanA只是完成了构造函数的注入但为完成其他步骤),从而beanB拿到beanA的引用,完成注入,完成了初始化,如此beanB的引用也就可以被beanA拿到,从而beanA也就完成了初始化。   spring进行bean的加载的时候,首先进行bean的初始化(调用构造函数),然后进行属性填充。在这两步中间,spring对bean进行了一次状态的记录,也就是说spring会把指向只完成了构造函数初始化的bean的引用通过一个变量记录下来,明白这一点对之后的源码理解至关重要。 https://www.cnblogs.com/myseries/p/11801097.html
点赞 回复 分享
发布于 2022-03-11 17:34
楼主面的哪里的,北京的吗
点赞 回复 分享
发布于 2022-03-11 19:58
lz现在收到offer了吗
点赞 回复 分享
发布于 2022-03-14 13:57
楼主好,请问你这是春招吗,还是暑期实习?投的具体是什么岗位呀
点赞 回复 分享
发布于 2022-03-19 09:35
我二面完被挂了,服了
点赞 回复 分享
发布于 2022-03-22 21:35
哪个工区老哥
点赞 回复 分享
发布于 2022-03-23 18:44
快手直接把我简历挂了....
点赞 回复 分享
发布于 2022-03-24 21:16
兄弟,实习还是校招呀?感觉难度够可以了
点赞 回复 分享
发布于 2022-03-29 20:58
我一面的面试官看我本科不是计算机,就瞧不上我,问了几个技术问题,答上来了,出道算法,也写完了,又问了几个生活问题,20分钟草草了事。
点赞 回复 分享
发布于 2022-03-30 14:28
大佬三面完了之后多久hr面的呢,我4月1号三面,到现在没有什么消息
点赞 回复 分享
发布于 2022-04-07 17:23

相关推荐

11-06 21:05
已编辑
门头沟学院 golang
点赞 评论 收藏
分享
评论
10
106
分享
牛客网
牛客企业服务