- 0
- 0
- 约7.29千字
- 约 20页
- 2026-02-03 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年软件工程师面试技巧及答案
一、编程语言基础(3题,每题10分,共30分)
地域/行业针对性:互联网、金融科技、企业级应用开发(国内、北美、欧洲)
要求:考察核心编程语言(Java/Python/Go)的语法、设计模式、性能优化。
题目1(Java):
题目:
编写一段Java代码,实现一个线程安全的LRU(LeastRecentlyUsed)缓存,要求:
1.支持自定义容量,超出容量时淘汰最久未使用的元素。
2.提供`get(key)`和`put(key,value)`方法,时间复杂度为O(1)。
3.解释为什么选择这种数据结构(如`LinkedHashMap`)并说明线程安全实现(如`ReentrantLock`或`AtomicReference`)。
答案:
java
importjava.util.LinkedHashMap;
importjava.util.Map;
publicclassLRUCacheK,VextendsLinkedHashMapK,V{
privatefinalintcapacity;
publicLRUCache(intcapacity){
super(capacity,0.75f,true);//accessOrder=trueforLRU
this.capacity=capacity;
}
@Override
protectedbooleanremoveEldestEntry(Map.EntryK,Veldest){
returnsize()capacity;
}
publicsynchronizedVget(Kkey){
returnsuper.get(key);
}
publicsynchronizedvoidput(Kkey,Vvalue){
super.put(key,value);
}
}
解析:
1.数据结构选择:`LinkedHashMap`的`accessOrder=true`属性会按访问顺序排序,最久未使用的元素会排在链表尾部,`removeEldestEntry`方法可触发淘汰。
2.线程安全:通过继承`LinkedHashMap`并覆写`removeEldestEntry`实现O(1)复杂度。若需更高并发,可引入`ReentrantLock`或`AtomicReference`,但会增加代码复杂度。
3.性能说明:`LinkedHashMap`内部维护双向链表+哈希表,`get/put`操作依赖哈希冲突解决机制,但LRU特性通过链表保证。线程安全版本需避免`ConcurrentModificationException`,可使用`synchronized`或`ReadWriteLock`。
题目2(Python):
题目:
用Python实现一个装饰器`@cache`,用于缓存函数计算结果,要求:
1.支持自定义过期时间(如5分钟后失效)。
2.若函数参数包含不可哈希类型(如列表),则不缓存。
3.解释如何处理缓存碰撞(如多个请求同时写入)。
答案:
python
importfunctools
importtime
fromthreadingimportLock
defcache(expire_time=300):
cache_lock=Lock()
cache_store={}
defdecorator(func):
@functools.wraps(func)
defwrapper(args,kwargs):
Avoidcachingunhashabletypes
ifany(isinstance(arg,(list,dict))forarginargs):
returnfunc(args,kwargs)
key=(args,tuple(sorted(kwargs.items())))
withcache_lock:
cached=cache_store.get(key)
ifcachedandcached[time]time.time()-expire_time:
returncached[value]
result=func(args,kwargs)
cache_store[key]={value:result,time:time.time()}
returnresult
returnwrapper
returndecorator
解析:
1.不可哈希类型处理:通过`isinst
您可能关注的文档
最近下载
- NB-T11190-2023水电工程专用水文测站技术规范(.pdf VIP
- -中建公路项目科技创效专题交流ppt.pptx VIP
- T∕CAQ 10201-2024 质量管理小组活动准则.docx VIP
- 绝经后出血护理查房.pptx VIP
- 珠宝首饰店经营与服务规范(标准版).docx VIP
- 基本医疗保险异地就医备案个人承诺书(2025年2月更新).pdf
- 《JB/T5054产品图样及设计文件》.pdf
- 学院“十五五”发展规划(完整版).pdf
- 泰兴市国土空间总体规划(2021-2035年)(含附图1-9).docx
- YD∕T 1363.2-2014 通信局(站)电源、空调及环境集中监控管理系统 第2部分:互联协议.docx VIP
原创力文档

文档评论(0)