- 0
- 0
- 约3.88千字
- 约 11页
- 2026-01-31 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年IT工程师面试题及编程题答案
一、选择题(共5题,每题2分,总计10分)
1.关于Java中的线程池,以下说法正确的是?
A.`newFixedThreadPool`可以自动扩展线程数量
B.`newCachedThreadPool`会创建无限数量的线程
C.`newSingleThreadExecutor`可以保证任务串行执行
D.`ThreadPoolExecutor`的核心线程数默认为0
答案:C
解析:
A错误,`newFixedThreadPool`固定数量线程,超出排队;B错误,`newCachedThreadPool`会创建线程但会复用,并非无限;C正确,`newSingleThreadExecutor`保证单线程执行;D错误,核心线程数为1。
2.在React中,以下哪个钩子用于处理副作用?
A.`useState`
B.`useEffect`
C.`useContext`
D.`useReducer`
答案:B
解析:
`useState`用于状态管理,`useEffect`处理副作用(如API调用),`useContext`用于跨组件传值,`useReducer`是状态管理的高级替代。
3.MySQL中,以下哪个索引类型最适合范围查询?
A.主键索引
B.唯一索引
C.聚集索引
D.全文索引
答案:C
解析:
聚集索引按顺序存储数据,适合范围查询(如`BETWEEN`);主键索引唯一非空,唯一索引保证唯一性,全文索引用于文本搜索。
4.Docker容器与虚拟机的核心区别在于?
A.都需要硬件虚拟化支持
B.容器共享宿主机内核
C.容器启动更快
D.容器资源占用更高
答案:B
解析:
容器共享宿主机内核(无需模拟硬件),虚拟机需独立操作系统;容器启动更快、资源占用低是衍生优势。
5.微服务架构中,服务发现的主要目的是?
A.保证服务高可用
B.解耦服务调用
C.统一配置管理
D.减少网络延迟
答案:B
解析:
服务发现解决服务地址动态变化问题,核心是解耦(服务A无需硬编码依赖服务B的地址)。
二、简答题(共3题,每题4分,总计12分)
1.解释HTTP和HTTPS的主要区别,并说明HTTPS为何需要证书?
答案:
HTTP明文传输,易被窃听;HTTPS通过TLS/SSL加密传输,防窃听、防篡改。HTTPS需证书因证书:
1.验证身份(防止仿冒网站);
2.建立加密通道(对称密钥交换)。
2.简述Redis的持久化方式RDB和AOF的优缺点?
答案:
-RDB(快照式):全量保存内存快照,优点是写时性能高;缺点是可能丢失最近一次快照后的数据。
-AOF(日志式):记录写操作,优点是可靠性高;缺点是写时性能低,配置复杂。
3.描述微服务架构中API网关的作用?
答案:
API网关统一入口,负责:
1.路由请求(分发到不同微服务);
2.负载均衡;
3.安全认证(如JWT);
4.限流熔断。
三、编程题(共2题,每题9分,总计18分)
1.编写Python代码,实现一个简单的LRU(最近最少使用)缓存,支持get和put操作。
要求:
-使用字典和双向链表实现,缓存容量为3。
-put时若容量满,需删除最久未使用项。
答案:
python
classNode:
def__init__(self,key,value):
self.key=key
self.value=value
self.prev=None
self.next=None
classLRUCache:
def__init__(self,capacity:int):
self.capacity=capacity
self.cache={}
self.head,self.tail=Node(0,0),Node(0,0)
self.head.next=self.tail
self.tail.prev=self.head
def_add_node(self,node):
node.prev=self.head
node.next=self.head.next
self.head.next.prev=node
self.head.next=node
def_remove_node(self,node):
prev_node=node.prev
next_node=node.next
prev_node.next=next_node
next_node.prev=prev_node
def_move_to_head(self,n
原创力文档

文档评论(0)