快手24秋招 客户端一面面经

8月7号下午面试,面试时间在1个小时左右。一面问的会比较基础,都是八股内容,考察个人机组,操作系统,计网,语言和开发的学习是否牢固。

没有自我介绍,面试官比较随和。

  1. 线程和进程的区别,为什么有线程:
  2. 进程是操作系统分配资源的基本单位,可以拥有多个线程,线程是进程内的一个相对独立的执行单元,是程序的最小执行单位;
  3. 二者资源分配上的区别,包括在JVM中的空间分类;
  4. 多并发的执行
  5. 二者的通信,进程通信(管道,共享内存),线程通信(消息队列等);
  6. 互斥锁的理解:
  7. 当多个线程需要同时访问共享资源时,如果没有适当的同步机制,可能会导致数据不一致性和竞态条件等问题。互斥锁提供了一种互斥访问的方式,即在任意时刻只有一个线程可以获得锁,获得锁的线程可以进入临界区执行操作,其他线程则需要等待。
  8. 线程没拿到互斥锁的时候,会被阻塞,直到获取到锁为止。
  9. 信号量理解:
  10. 信号量的定义:信号量允许多个线程同时访问共享资源,但可以通过计数器的值来限制同时访问资源的线程数量。
  11. 信号量的类型:
  12. 二进制信号量
  13. 计数信号量
  14. 虚拟内存的理解:
  15. 内存分段
  16. 内存分页
  17. 共享内存原理
  18. 计网经典TCP和UDP的区别和特点
  19. 一个HTTP的请求内容包括:
  20. 请求行:HTTP的方法、目标URL、协议版本
  21. 请求头:Host、User-Agent等
  22. 请求体:一般写网络请求接口PUT、POST时候都会有用
  23. Http是长连接吗?
  24. 不是长连接,1.0之后默认长连接
  25. 想要持久连接,要保持心跳
  26. 面向对象三大特点:
  27. 封装,继承,多态
  28. 多态在JAVA中的体现:
  29. 重写和重载
  30. Java是值传递还是引用传递?
  31. 手写Java的单例模式线程安全的情况:
  32. 饿汉,懒汉,双重检验锁(各自优缺点)

  • 算法题:
  • 二叉树的中序遍历,递归,非递归两种写法
  • 实现一个场景题,所有人把自己想要约会议的时间给你,你要算出最少需要多少间会议室可以容纳这些会议,输入会议开始时间和结束时间组成,输出为一个整数。
  • 我用的贪心遍历一遍
  • 面试官表示可以用同一个时间轴来考虑
#快手##客户端##面经#
面试集合专栏 文章被收录于专栏

个人的面试集合,具有时效性

全部评论
base哪啊老弟
点赞 回复
分享
发布于 2023-08-09 17:18 辽宁

相关推荐

6 41 评论
分享
牛客网
牛客企业服务