Zoom秋招软件开发两轮面经

一面

1、除了项目上写的序列化框架还了解其他序列化框架吗/p>

2、解释一下什么是粘包,什么是拆包

3、有没有了解过netty里自己解决粘包拆包的/p>

4、HTTP如何解决粘包问题的header字段

5、HTTP中的content-length和chunk(听着好像是这么读的)解决粘包知不知道/p>

6、这个RPC框架是基于看过别的框架的东西吗/p>

7、zookeeper作为注册中心是怎么存储的,存储了什么数据在zookeeper中/p>

8、服务端将服务注册进去,客户端请求服务,这个过程在项目中大概是什么样子的,描述一下/p>

9、为什么要把每个服务端注册成临时节点/p>

10、客户端发起调用的时候每次都去获取节点信息吗/p>

11、如果每次都获取的话性能就会比较低,有没有什么优化方案用watcher)

12、使用watcher的时候需要注意什么atcher回调完后还要做什么事情吗/p>

13、有自己搭了zookeeper集群吗/p>

14、zookeeper集群里会有哪些角色/p>

15、为什么要设计observer呢既不参与leader竞选,也不参与数据过半写成功/p>

16、rpc中应用线程池调用者发送调用后,请求跟响应是怎么异步关联的呢回调)

17、基于回调要怎么异步关联起来呢,有没有什么思路/p>

18、线程池的核心参数是什么/p>

19、如果线程池核心线程数设置为5,最大线程数设置为10,阻塞队列是一个无界队列,一直提交线程,线程数最大能达到多少/p>

20、如果线程池核心线程数设置为5,最大线程数设置为10,阻塞队列大小也设置的是10,线程池刚启动的时候有多少个线程/p>

21、看过Java线程池的源码吗果想监控线程池的资源,通过看它的源码,它有没有提供什么方式来实现这个功能/p>

22、redis部署的是单机还是集群/p>

23、redis哨兵模式和集群模式分别是用来解决什么问题的/p>

24、集群模式当获取数据时,可能会回复asyn、moved,了不了解这些回复分别代表什么不了解。。。)

25、使用集群模式的话会有什么限制吗不同节点上的数据无法使用事务)

26、如果想使用事务操作的话,希望key能分布在一个节点上,有没有什么办法可以让key分布在同一个节点上redis提供了这样的功能hashtag)

27、redis用到了哪些数据结构/p>

28、zset的底层数据结构有没有了解过/p>

29、为什么zset要在数据比较小的时候使用压缩列表呢,压缩列表是一个什么样的数据结构,能带来什么好处呢/p>

30、redis的rehash有了解过吗,是怎么进行rehash的/p>

31、Java线程有哪几种状态,以及状态之间如何转换的/p>

32、线程中断有没有了解过/p>

33、Java中的原子类是怎么实现的知道吗/p>

34、volatile关键字有什么特点,原理是什么/p>

35、Java中有什么无锁操作的方式/p>

36、ThreadLocal的基本原理是什么/p>

37、Java的泛型了解吗/p>

38、如果有两个类,一个animal,一个dog,dog继承于animal,现在有一个animallist,它的泛型是animal,然后有个doglist,泛型是dog,doglist能不能赋值给animallist能

39、说说数据库的索引

40、聚簇索引和非聚簇索引能介绍一下吗/p>

41、哪些类spring会帮我们管理呢/p>

42、配置了@Service就一定会放入bean中吗没有什么条件/p>

43、如果第三方jar包中有一个@Service,会被扫描进来吗/p>

44、第三方jar包要想被扫描进来的话是要将它的类路径加载进spring是吗/p>

45、第三方jar包如何保证spring会将它加载进spring中/p>

46、Spring中为什么要将bean交给Spring来管理/p>

47、如果我自己弄一套Controller、Service、Dao,不依赖spring容器,能不能work,这个过程应该怎么写知道吗知道。。。

48、PrepareStatement预编译的过程是在哪里/p>

49、为什么使用statement会有SQL注入的风险呢/p>

50、如果有一个SQL语句,我想进行SQL注入攻击,应该怎么样攻击,怎么样设计SQL语句/p>

51、Spring的bean通常会new多少个对象,比如userService是每一个请求来了就new一个userService还是全局共享一个userService/p>

52、就拿这个userService来说,假设里面有个一个getUserById的方法,那应该把这个userService的scope设置成单例的还是session的ingleton,因为一般来说service和dao都是无状态的,只是通过service和dao来操作数据库,使用session或者prototype的话也可以,只是会浪费资源。

53、如果在线程池中的task中出现了没有捕获的异常会对当前线程有什么影响线程池有什么影响/p>

54、如果出现上面这种异常应该对线程进行什么处理呢,线程池应该怎么处理呢/p>

55、做前后端分离的时候,你项目里前端登录状态是怎么保持的/p>

56、有没有其他更好的方式jwt)

57、为什么使用cookie会导致csrf攻击/p>

58、为什么使用jwt能避免csrf攻击呢/p>

59、在goole域名中查看baidu域名的cookie能查看到吗/p>

两位面试官应该都是资深的技术工程师,都非常nice,两个人一共问了一个半小时,人都被问麻了,而且问的东西也比较广比较深,基本是问到不懂为止。

二面

大概就是把项目都过了一遍,然后项目里的东西延伸着问了一些

1、问的第一个项目是实验室的DDOS相关的项目,让自己讲了一遍项目的内容。然后项目细节问了一些东西,再延申了一下DDos方面的问题

2、DDOS攻击有哪些,以及原理是什么/p>

3、防御DDOS攻击的手段有什么/p>

4、第二个项目也是实验室的一个项目,问了一些项目细节

5、第三个是自己写的一个交流社区的项目,在网络安全方面应该如何考虑设计以及实现。(防sql注入、csrf攻击)

6、spring的权限管理步骤是什么/p>

7、spring的拦截器是什么设计模式/p>

8、讨论了一下保证缓存和数据库数据一致性的问题。

9、jwt的认证过程是什么/p>

9、第四个是一个rpc项目,没怎么问。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91318 人正在系统学习中

来源:TechGuide

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月19日
下一篇 2022年9月20日

相关推荐