基础单选7个21分,基础多选4个12分,Java单选2个6分,Java多选2个6分
编程题3个55分
基础单选
- DFS序列
- 一个软件支持各种支付方法,支付方式可以添加或删除,使用哪个设计模式
策略模式 - 如何减少数据传输量(压缩、缓存、去除冗余)
- Linux文件权限
u=rw g = r o= xxx.txt 含义是
所有者(u):读写权限(rw)。
所属组(g):只读权限(r)。
其他用户(o):无权限(o=未指定权限,默认为无权限)。 - h=9,255个叶子节点的完全二叉树,节点总数可能有多少个(510)
- 存储管理系统(数据库系统、文件系统)
- 动态分区存储100MB,使用最坏适配(Worst Fit)策略,最大空闲分区大小为
分配过程:分配15 25 释放 25 分配 10 8 22
最坏适配策略始终选择当前最大的空闲分区进行分配
最大空闲分区大小为20MB
基础多选
- 出栈顺序
- 数据库隔离级别
- 哪个设计模式不是行为模式
行为型模式主要关注对象间的交互和职责分配(如策略模式、观察者模式等),而创建型模式和结构型模式不属于行为模式- 创建型模式(如单例模式、工厂模式):解决对象创建问题,与行为无关
- 结构型模式(如适配器模式、代理模式):处理类或对象的组合结构,而非行为交互
- HTTP2.0特征
二进制分帧、多路复用、Header压缩、服务端主动推送到客户端
Java单选
- 代码运行结果
1
2
3
4
5
6
7
8
9public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("one", "1");
map.put("two", "2");
map.put("three", "3");
// two 222
map.merge("two", "22", (oldvalue, newvalue) -> oldvalue + newvalue);
System.out.println(map);
} - 代码运行结果
1
2
3
4
5int[] arr1 = new int[]{1,2,3};
int[] arr2 = new int[]{1,2,3};
System.out.println(arr1 == arr2); // false
System.out.println(Arrays.equals(arr1, arr2)); // true
System.out.println(Arrays.hashCode(arr1) == Arrays.hashCode(arr2)); // true
Java多选
- 共享锁和独占锁
ReadWriteLock 分离了读锁和写锁,并非完全使用独占锁实现
ReentrantLock 是独占锁,一个资源只能被一个线程使用,其他线程必须等待 - 异常处理
异常分为编译异常和运行异常
try-catch用于捕获异常
throw抛出一个异常对象
编译异常必须显示捕获,不然无法通过编译
编程题
- 模拟(10分)100%
- n长的数组,q次查询,每次查询输入2,求数组和;输入1 v,将数组的每个数和v比较,大于v的数变成v。0 <= n, q <= 200000(20分)40%
线段树 - 输入数字,数字每一位重排之后,满足每位数之和为质数的个数(25分)33%
使用next_permutation超时了,用阶乘