唉嘿嘿,寄经来咯。快手实习一面面经

本文是对一场技术面试的回顾,涵盖了Spring的IOC和AOP、Bean生命周期、SpringBoot自动装配、多线程、volatile关键字、单例模式、Redis集群、Linux命令以及日志管理等知识点。面试中遇到了一些挑战,如线程同步、Nginx配置和JUC工具,但也展示了对Redis和部分技术的深入理解。

面试我的是一个很和蔼的大叔,面试体验非常好,我要夸爆这个大叔,虽然我答的非常垃圾。

从Spring开始入手的一些八股文

1:Spring的IOC与AOP设计思想

回答思路,描述设计思想,讲了一下具体在项目中的实现

2:bean的生命周期

经典八股

3:SpringBoot的自动装配原理

这个忘记了,直接寄

4:面试官看我没答出来,又问了启动类有没有自己深入去debug走过

之前看狂神的视频倒是看了一遍,完全记不住啊,面试官一问,就全忘记了,得记笔记。。

5:多线程,谈谈对多线程的理解

回答的是对共享资源读写的控制

6:volitai关键字的特性

回答了一致性,然后还有有序性,以及为什么要一致性,什么情况下会出现一致性问题,为什么要有序性,什么情况下会出现有序性的问题,就是单例模式的双重检验时,单例不用volitai修饰就会出现不一致的问题,后面算是给自己挖坑了

7:继上面的问题,问了单例模式的实现方式

饿汉,懒汉,那种会有线程安全问题,然后怎么解决。。。。面试官开玩笑说,问我想手撕单例模式吗?。。。

8:开完玩笑就开始问JUC的threadlock

这个我正好忘记。。。。只记得是用来存线程的一些变量,然后面试官问我具体怎么实现的。。回答不出,寄

9:聊Redis,自己有没有搭过集群,集群怎么搭的,持久化的两种方式,五种数据结构,用的最多的是那种。

这个倒是答的还不错

10:聊Lunix 如果要查看自己项目的实时日志,用什么命令

11:聊聊你项目的日志级别

完全懵逼,我的日志没有级别。。。寄,面完赶紧去看日志级别

12:你怎么部署自己的项目到云服务器上面的,具体流程

简单说了一下,提到了ngix,给自己挖坑了属于是

13:坑来了,ngix负载均衡,ngix的多节点怎么部署

寄,完全不会

14:leetcode刷了多少题,回答150道

然后做了一道简单题,删除倒数第n个链表节点

15:反问阶段,问了怎么学习,相关学习建议

建议是深入学习底层,不仅仅要知道怎么用,更要明白为什么要这样用,多头脑风暴,多思考

### 快手 Java 实习面试经验分享 #### 面试流程概述 面试过程被描述为一次非常积极的学习经历[^1]。整个过程中,面试官采取了引导式的提问方法,帮助候选人思考并理解问题的本质。即使遇到困难的问题,也会通过提示来辅助解答,使得整个交流变得轻松而富有教育意义。 #### 技术考察重点 在技术方面,对于Java开发者而言,深入理解和掌握JVM的工作原理至关重要[^2]。具体来说: - **引用类型及其作用** - 强引用(Strong Reference)是最常见的形式,在任何情况下都不会被回收。 - 软引用(Soft Reference)用于实现内存敏感的缓存机制;当内存不足时才可能被清除。 - 弱引用(Weak Reference)的对象只能存活到下一次GC之前。 - 虚引用(Phantom Reference)主要用于跟踪对象何时可以被垃圾收集器处理。 - **静态成员变量管理** 类加载期间完成`static`字段初始化工作,并将其存储于方法区中。每当创建新实例时并不会再次执行此操作,而是直接指向已存在的副本进行访问控制。 #### 编程能力测试样例 实际编程环节可能会涉及到算法设计题目,比如判断数组内是否存在重复元素且索引差不超过给定范围k的情况下的解决方案如下所示: ```java public boolean containsNearbyDuplicate(int[] nums, int k) { Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; ++i){ if(map.containsKey(nums[i]) && i - map.get(nums[i]) <= k) return true; map.put(nums[i], i); } return false; } ``` 上述代码实现了对输入整数序列快速查找是否有符合条件的相邻重复项的功能[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值