快手日常实习二面8.29

基础 & 自我介绍

  1. 介绍一下自己。(项目外卖点评)
  2. 你们导师对你们实习什么态度呢?(本科生没导师)
  3. 那你的实习计划怎么样呢?(六个月,五天)
  4. 开学以后是要回学校去上课吗?还是说还可以继续呢?(继续实习)
  5. 之前有实习经验吗?(无)

Java 基础与 JVM

  1. 讲一讲 Java 中对象的创建过程。(类加载检查->分配内存->初始化->对象头设置->构造函数)
  2. 对象初始化的过程大概是什么样子的?(初始化零值,面试官可能觉得不太够引导我子类父类那一块)
  3. Java 的三大特性是啥?(继承,封装,多态,没细问)
  4. 在对象初始化过程中,遇到继承关系时初始化顺序是怎么样的?
  5. 内存分配的两种方式是?(提到指针碰撞、空闲列表)
  6. 当分配内存空间出现竞争时,解决方案是什么?(TLAB+CAS失败重试)
  7. CAS 有什么问题?(自选开销大+ABA问题)

Spring / 注解(没背过Spring这一块,基本上没答出来)

  1. Spring 注解 和 Lombok 注解有什么异同?

    Spring 注解是运行时处理的,由 Spring 容器解析和反射实现;Lombok 注解是编译时处理的,通过 APT 在编译阶段生成字节码。Spring 注解改变的是运行时的 Bean 行为,Lombok 注解只是减少样板代码。
    
  2. Spring 注解的大致工作原理/机制是什么?写了注解就能生效吗?

    Spring 注解的本质只是标记,它能生效的前提是 Spring 容器扫描并解析注解。容器在启动时会把注解信息转化为 BeanDefinition,并在实例化过程中用反射/AOP来实现依赖注入或增强。如果离开了 Spring 容器,写注解是不会生效的。
    
  3. 在类上写了注解以后,为什么能 work?需要哪些流程?

    写了注解本身没用,Spring 在启动时会扫描这些注解,把它们注册成 BeanDefinition,实例化时通过反射创建对象,再在依赖注入阶段用反射把 @Autowired 的依赖注入进去。对于像 @Transactional 这样的注解,还需要通过 AOP 动态代理来增强方法行为。所以能生效的关键,是 Spring 容器的扫描、解析和后置处理机制。
    

面向对象

  1. 除了 new 关键字,还有哪些方式可以生成对象?(反射、克隆、序列化等)

并发与线程池

  1. 介绍一下 JDK 自带线程池的工作模式。

    线程池是“核心线程优先 → 队列缓存 → 非核心线程补充 → 拒绝策略兜底”。
    
  2. JDK 常见的线程池类型有哪些?

  3. 常见的任务队列有哪些?

  4. 如果项目中需要用多线程,你会如何配置线程池?

    1.线程数配置公式
    
        CPU 密集型任务:核心线程数 = CPU核数 + 1
    
        IO 密集型任务:核心线程数 = CPU核数 * 2(因为 IO 会阻塞,适合多线程并发)。
    
    2.队列大小
    
        有界队列(防止 OOM)。
    
        一般设置成 几百到几千,取决于业务需求。
    
    3.拒绝策略
    
        推荐使用 CallerRunsPolicy(任务交给调用者线程执行,起到限流作用)。
    
    4.线程工厂(ThreadFactory)
    
        自定义线程名,方便排查问题。
    
  5. (场景题)在你项目中,如何使用线程池?

    核心线程数 = CPU * 2
    
    队列大小 = 1000
    
    拒绝策略 = CallerRunsPolicy
    
    线程名 = order-worker-%d
    
  6. 多线程里听过“生产者消费者模型”吗?通信机制是什么?

    1.模型解释:
    生产者:不断产生任务(消息)。
    消费者:不断从队列里取任务处理。
    队列:连接生产者和消费者的中间缓冲区。
    
    2.通信机制:
    
    阻塞队列(BlockingQueue):最常见的方式,比如 LinkedBlockingQueue。
    
    put() 没有空间时阻塞,take() 没有数据时阻塞。
    
    wait/notify(低层次实现)
    
    使用 synchronized + wait/notify 来做线程间通信。
    
    Lock + Condition
    
    使用 AQS 提供的 Condition await/signal。
    

项目 & 技术栈(不太会)

  1. 你在项目中用的 Nginx,是用来解决什么问题的?

    在项目里主要用 Nginx 做 反向代理和负载均衡,保证多实例的服务能均衡处理请求,同时也用它来做静态资源分发,减少后端压力。
    
  2. 什么是反向代理?

    正向代理(Forward Proxy):
    客户端 → 代理服务器 → 访问外部资源。
    举例:VPN、科学上网。客户端知道代理服务器,但目标服务不知道客户端是谁。
    
    反向代理(Reverse Proxy):
    客户端请求 → 代理服务器(Nginx) → 转发到后端服务。
    客户端不知道后端有哪些服务,只和代理交互。
    
  3. Nginx 出现之前一般用什么?

    Apache HTTP Server:老牌 Web 服务器,功能强但性能偏低(基于多进程/多线程模型)
    
  4. Nginx 能承载的 QPS 大概是多少?

    单机 Nginx 在普通服务器上能轻松支撑 几万级 QPS,经过优化和高配硬件环境可以达到 几十万 QPS。这也是它广泛用于高并发场景的原因。
    

登录 & 安全

  1. 你项目中实现的短信登录是怎么做的?
  2. 在真实环境下(如快手)短信登录会考虑哪些点?
  3. 要不要考虑多端登录?
  4. 如果同一账号在不同设备同时登录,如何处理?
  5. 短信登录涉及成本(发短信要钱),如何进行品控/成本控制?
  6. 验证码 5 分钟有效,如果一个账号多人共用怎么处理?

Redis & 缓存

  1. Redis 内存淘汰机制是怎样的?
  2. 淘汰机制具体是如何运行起来的?(定时扫描还是随机取样?)

JVM & GC

  1. JVM 内存结构和垃圾回收是怎么工作的?
  2. 堆内存越来越大时,如何保证 GC 高效?
  3. G1 回收器的工作机制?
  4. 什么情况下对象会直接晋升到老年代?
  5. 跨代引用是怎么处理的?

设计题

  1. 如何设计一个直播排行榜(复合函数将看的时间和刷的金额复合作为score进行排序)?

算法题

实现LRU,直接默写出来了

反问

结果啥时候能出,面试官说一两周吧,估计是排序了,nginx和spring完全没背八股,基本答不上来,登录场景也是说的依托,线程池场景设计说的也是依托,其他基本上都答出来了

#日常实习面试##java##后端#
全部评论
一共几面呀
点赞 回复 分享
发布于 昨天 11:28 黑龙江
佬现在大几啊
点赞 回复 分享
发布于 09-01 09:10 四川
佬过了吗
点赞 回复 分享
发布于 08-30 15:00 湖北
什么岗位呀
点赞 回复 分享
发布于 08-30 13:04 广东

相关推荐

头像
08-29 20:59
已编辑
门头沟学院 Java
1.自我介绍2.项目拷打穿插八股:a.你在哪些功能中引入了新的组件?b.ES相比于MySQL好在哪?c.什么场景下用MySQL查找,什么场景下用ES?d.大数据量用ES就一定更好吗?e.你知道在分布式部署下ES可能出现哪些问题吗?f.讲讲RocketMQ在你的项目中的使用逻辑?g.你认为在你的理解中RocketMQ最重要的特性是什么?(顺序性,不丢失,不重复,幂等性,可用性)h.那你知道RocketMQ是怎么实现这些特性的吗?i.Kafka是怎么实现集群高可用,在Leader宕机情况下不会有消息丢失的?j.你平时是怎么学习技术的?k.你这边建立了二级缓存,那请问你是怎么保证二级缓存中数据一致性的?l.那你采用事务可能会带来一些什么问题?m.除了Caffeine还了解哪些本地缓存结构吗?n.知道Caffeine的内部结构吗?3.来讲讲Java中的Error是怎么出现的?会带来什么后果?4.你提到了OOM,请问什么情况下会出现OOM呢?5.那异常呢?Java中有哪些异常类型?6.你认为编译时异常和运行时异常该怎么去处理?什么时候要注意处理这些异常?7.来讲讲锁,对Synchronized了解吗?8.Synchronized是可重入锁吗?是公平锁吗?9.还了解哪些锁呢?10.假如你自己设计了一个并发包,我们可以丢弃Synchronized只用ReentrantLock吗?手撕:实现一个单链表首尾交叉相连,要求必须在原链表上操作例子:1-2-3-4-5-6-7输出:1-7-2-6-3-5-4反问1.改进建议?(对于大二来说挺不错的)[听怕了这句话,逢说必挂]2.几轮?(2-3轮)希望七夕我可以和offer长长久久,牛友也和另一半长长久久🥰
查看23道真题和解析
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
2
21
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务