选择题(共20题)
1.[多选]
关于 Linux 系统的性能监控工具,下列哪些说法是正确的?
A . top 命令可以实时显示系统的任务管理信息
B . free 命令用于显示系统的内存使用情况
C . ps 命令不能显示某个特定进程的信息
D . iostat 命令用于监控磁盘 I / O 活动
2.[多选]
现有份用过 ios 设备的用户名单 ios _ user . txt ,与另一份用过 android 设备的用户名单 android _ user . txt ,需要找出两者中共同存在的用户名单存入 common _ user . txt ,如下哪些命令可以实现。
约束条件:两份文件,1万量级,数据已格式化不存在脏数据,每行仅有一个用户 id 且文件内用户 id 无序且不重复
A . grep - F - x - f ios _ usertxt android _ user . txt > common _ user . txt
B . comm -12 ios _ user . txt android _ user . txt > common _ user . txt
C . cat ios _ usertxt android _ usentxt | sort | uniq - d > common _ user . txt
D . awk ' NR == FNR ( a [$ O ]; next )$0 in a ' ios _ usertxt android user n8879995
common _ user . txt
3.[单选]
一个一致性哈希环,哈希空间大小为0到99(即总共有100个位置)。
系统中有4个物理节点: A 的哈希值10, B 的哈希值30, C 的哈希值为60, D 的哈希值为90;存储了3个数据项: X 哈希值25存储在 B 上, Y 哈希值50存储在 C 上, Z 哈希值70存储在 D 上; 现在新增节点 E 哈希值为45,根据一致性哈希规则,哪些数据需要迁移;
A .数据项 X 需要迁移到节点 E 上,数据项 Y 需要迁移到节点 E 上
B .数据项 X 仍然存储在节点 B 上,数据项 Y 需要迁移到节点 E 上
C .数据项 Y 仍然存储在节点 C 上,数据项 Z 需要迁移到节点 E 上
D .数据项 X 仍然存储在节点 B 上,数据项 Y 仍然存储在节点 C 上,数据项 Z 仍然存储在节点 D 上
4.[多选]
关于计算机中的进程与线程,以下哪些描述是错误的?
A .进程是系统进行资源分配的最小单位,而线程与 CPU 调度相关,它们之间切换开销相当。
B .每个进程都拥有独立的代码、数据空间及程序上下文,同一进程内的线程共享这些资源。
C .线程作为比进程更轻量级的存在,能够脱离进程独立执行,并拥有自己的程序入口和出口。
D .多进程系统相较于多线程系统更为健壮,因为一个进程的崩溃不会影响到其他进程,而多线程程序中任意线程的故障都导致整个程序崩溃
5. [多选]
在操作系统中,关于死谈的描述,以下哪些选项是正确的?
A .死锁是指两个或多个进程相互等待对方释放资源,从而都无法继续执行
B. 死锁的必要条件包括互斥、请求与保持、不剥夺和环路等待
C. 银行家算法用于预防秃锁
D. 一旦发生死锁,系统只能通过重启来解决
6. [多选]
在一个群组系统中,有一个表 group_membership ,包含以下字段:
-" user id (用户 ID )
- gop if ( bID )
-" join time (加入时间)
- leave time (离开时间)
为了提高以下查询的性能,并考虑一定扩展性,应该在哪些字段上创建索引?
1.查我一个用户所属的所有群组:
SELECT greop id FRGM group menbership LHERE user id =?;
2.查找一个群组中所有用户的加入时间:
SELECY user_id ,group_id
join_time FROM group membership WHERE group_id=?
A .在userid 字段上创建索引
B .在 group id 字段上创建索引
C .在 join tine 字段上创建索引
D .在user _ id 和group _ id 字段上创建联合索引
7.[多选]
在使用 Git 做代码管理时,经常会出现版本冲突,当前你在 feature 分支进行了修改合并入 master 分支时:file1.sh文件发生了冲突,以下哪些操作是在处理版本冲突中需要进行的操作。
A .使用 git status 查看冲突文件
B .手动编辑file1.sh解决冲突
C.使用 git add file1.sh添加解决冲突后的文件
D .使用 git commit - m " Merge feature into master , resolved conflicts "提交解决冲突后的更改
8.[多选]
下列哪些接口可能出现越权漏洞
A .给摄影作品(所有人均可访问)点赞的接口,该接口接收一个 POST 参数:作品 id ,另外,用户 cookie 中有一个 userid 参数
B .给他人发布的动态(动态分为公开动态和私有动态)评论的接口,该接口接收一个 POST 参数:作品 id
C .查看他人动态(动态分为公开动态和私有动态)的接口,该接口接收一个 POST 参数:作品 id
D .查看他人动态(动态分为公开动态和私有动态)的接口,该接口接收一个 GET 参数:作品 id
9.[多选]
关于网络安全,下列哪些说法是正确的?
A .防火墙用于监控和控制入站和出站网络流量
B . SSL / TLS 用于保护 HTTP 通信的安全
C . SQL 注入攻击是一种通过构造恶意 SQL 语句来攻击数据库的技术
D . XSS (跨站脚本攻击)是一种通过在网页中注入恶意脚本来攻击用户的技术
10.[多选]
关于数列( Hashing )的描述,以下哪些是正确的?
A .散列可以用于快速查找
B. 散列函数的设计应尽量减少冲突
C. 散列可以用于数据加密
D. 散列惜的大小通常固定
11.[多选]
哪些数据结构支持高效的查找操作
A .数组
B .链表
C .哈希表
D .二叉搜索树
12.[多选]
DNS 用于将域名解析为 IP 地址。以下哪些选项是 DNS 服务器的常见类型?
A .根 DNS 服务器( Root DNS Server )
B .顶级域 DNS 服务器( Top - Level Domain DNS Server )
C .权威 DNS 服务器( Authoritative DNS Server )
D .缓存 DNS 服务器(aching DNS Server )
13.[多选]
HTTP 和 HTTPS 是我们日常使用的主要网络协议。以下哪些选项正确描述了 HTTP 和 HTTPS 的区别?
A . HTTPS 使用 SSL / TLS 协议进行加密
B . HTTPS 比 HTTP 更安全
C . HTTP 使用默认端口80,而 HTTPS 使用默认端口443
D . HTTP 和 HTTPS 在传输数据时的速度相同
14.[多选]
在软件工程中,以下哪些选项是质量保证的常见方法?
A .代码审查( Code Review )
B .静态分析( Static Analysis )
C .持续集成( Continuous Integration )
D .用户验收测试( User Acceptance Testing )
15.[多选]
在设计缓存系统时,以下哪些选项关于缓存失效问题的描述是正确的?
A .缓存穿透会导致大量请求直接访问数据源
B .缓存雪崩会导致短时间内大量缓存同时失效
C .缓存击穿会导致热点数据在缓存失效后频繁访问数据源
D .缓存失效策略可以完全避免缓存不一致问题明
16.[多选]
在使用消息队列时,遵循最佳实践可以提高系统的可靠性和可维护性。以下哪些做法是消息队列的最佳实践?
A .确保消息的幂等性,避免消息重复消费
B .使用消息队列进行数据库事务的管理
C .监控消息队列的性能和健康状态
D .在消息队列中设计存储比较大的二进制对象
17.[多选]
继承是面向对象编程中的一种机制,它允许一个类继承另一个类的属性和方法,从而实现代码的复用和扩展。以下哪些描述是关于继承的正确描述?
A .继承允许子类重用父类的代码,减少重复代码
B .继承使得子类可以访问父类的私有成员变量
C .继承可以通过方法重写来实现多态性
D .继承可以通过实现接口来实现多重继承
18.[多选]
封装是面向对象编程的重要特性之一,它通过隐藏对象的内部实现细节,只暴露必要的接口来提高代码的可维护性和安全性。以下哪些描述是关于封装的正确描述?
A .封装通过将数据和方法绑定在一起,形成一个独立的单元
B .封装允许直接访问对象的私有数据成员
C .封装使得对象的内部状态只能通过公开的方法进行访问和修改
D .封装会降低代码的可读性和可维护性
19(多选)
关于 Java 多线程编程,下列哪些说法是正确的?
A . Thread 类是实现多线程的唯一方式
B. synchronized 关键字可以用于方法和代码块
C . volatile 关键字确保变量的可见性
D . wait 和 notify 方法必须在同步块或同步方法内调用
20.[多选]
给定以下伪代码,描述正确的选项:
function PerformOperationsOnStructures (){
stack S
queue Q
s . push (1)
S . push (2)
Q . enqueue (4)
Q . enqueue (3)
x = S . pop ()// Line 8
y = Q . dequeue ()// Line 9
s . push ( y )
Q . enqueue ( x )
z = S . pop ()// Line 13
W = Q . dequeue ()// Line 14
return ( x , y , z , w )
A .在 Line 8执行后, x 的值是2。
编程题(共2题)
1.找到有缘分的用户
在「挚文集团」的产品中如陌陌,探探的一个重要社交目地就是找到有缘分的用户。现在假设你有一个文件 final _ user _ list . txt ,其中包含约50万行用户信息。每行信息包括姓名全拼、性别( male / female )和生日(范围为1996~2002)。同一天生日的用户中没有重名。
输入:
在命令行输入你自己的信息,格式为:"姓名全拼,性别,生日"(例如:" xiaoqiao , female ,2000-02-15")。
输入生日不受范围限制
输出:
返回与你生日最接近(天数最少),性别相同,且姓名字符串编辑距离最小的用户。如果有多个用户符合条件,则按对方姓名的字典序最最小( A -> Z )返回该用户信息。
编辑距离」指两个字串之间,由一个转成另一个所需的最少编辑操作次数。
允许的编辑操作包括:
将一个字符替换成另一个字符
反馈
插入一个字符
删除一个字符
2.#直播惊喜夜订单数据处理与分析
背景:
「直播惊喜夜」是一个非常重要的活动,用户会给主播赠送大量的礼物。在此期间会产生相关送礼订单,这些订单包含如下信息(每张订单送一个礼物):
目标:
为了更好地进行大 R 运营,需要找出送礼金额最高的10位大 R 用户。你需要使用多线程尽可能快地处理这个订单记录文件并在控制台打印出这10位大 R 用户的 ID 与送礼金额。根据你的投报职位选择你合适的编程语言( Pyhton , JAVA , Golang )读取本地文件: orders . txt 完成相关计算打印格式如下( TOP total amount 保留2位小数按 total _ amount 顺序输出):多线程!