主题
面试速答(先看这里)
**一句话结论:**反问:用增营销和交易营销的区别、技术栈,生活 作息等
60秒标准回答:
公司使用的技术栈是啥 项目的最高QPS有多高 遇到的开发问题有哪些?
觉得自己从校招到现在有哪些提升 项目-搭建的xx平台 如何处理下游超时,一致性怎么保证 RocketMq的特性 如何用Redis统计亿级网站的uv 遇到过什么线上问题,如何处理 分布式锁如何设计 分布式框架的服务发现怎么做 TheadLocal的使用场景,如何防止内存泄露 JVM的堆栈各存储什么内容 写过什么公共组件么?
反问:用增营销和交易营销的区别、技术栈,生活 作息等
**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点
**记忆锚点:**TheadLocal → PDD海外用增一面 → RocketMq → 写过什么公共组件 → Redis → 分布式框架
加分表达:
- 觉得自己从校招到现在有哪些提升 项目-搭建的xx平台 如何处理下游超时,一致性怎么保证 RocketMq的特性 如何用Redis统计亿级网站的uv 遇到过什么线上问题,如何处理 分布式锁如何设计 分布式框架的服务发现怎么做 TheadLocal的使用场景,如何防止内存泄露 JVM的堆栈各存储什么内容 写过什么公共组件么?
追问准备:
- 围绕「TheadLocal」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「PDD海外用增一面」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「RocketMq」:底层原理是什么?使用时有哪些边界和常见坑?
- 如果线上出现异常,你会如何定位、验证并规避?
背景:工作2年
面试问题:
- 为什么找机会
- 公司使用的技术栈是啥
- 项目的最高QPS有多高
- 遇到的开发问题有哪些?
- 觉得自己从校招到现在有哪些提升
- 项目-搭建的xx平台
- 如何处理下游超时,一致性怎么保证
- RocketMq的特性
- 如何用Redis统计亿级网站的uv
- 遇到过什么线上问题,如何处理
- 分布式锁如何设计
- 分布式框架的服务发现怎么做
- TheadLocal的使用场景,如何防止内存泄露
- JVM的堆栈各存储什么内容
- 写过什么公共组件么?
- 反问:用增营销和交易营销的区别、技术栈,生活 作息等
- 写题:
java
import java.util.Arrays;
public class Main {
public static int[] findClosestElements(int[] arr, int k, int x) {
//书写算法逻辑
int left = 0, right = arr.length - 1;
int mid = (left + right)/2;
while(left < right) {
if(arr[mid] > x) {
right = mid;
} else if(arr[mid] < x) {
left = mid + 1;
} else {
break;
}
mid = (left + right)/2;
}
int lp = mid, rp = mid, count = 1;
while(count < k) {
if(rp > arr.length - 1) {
lp --;
}
if(lp < 0) {
rp ++;
}
if(x - arr[lp] > arr[rp] - x) {
rp ++;
} else {
lp --;
}
count ++;
}
int[] ans = new int[rp - lp + 1];
for(int i = lp; i <= rp; i ++) {
ans[i - lp] = arr[i];
}
return ans;
}
// 获取到离x最近的k个数
public static void main(String[] args) {
int[] arr = {0, 0, 1, 2, 3, 3, 4, 7, 7, 8};
int k = 3;
int x = 5;
int[] res = findClosestElements(arr, k, x);
System.out.println(Arrays.toString(res));
}
}