2026年软件工程师面试技巧及答案.docxVIP

  • 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

文档评论(0)

1亿VIP精品文档

相关文档