2026年软件开发工程师招聘笔试模拟题及答案.docxVIP

  • 2
  • 0
  • 约1.06万字
  • 约 25页
  • 2026-03-20 发布于未知
  • 举报

2026年软件开发工程师招聘笔试模拟题及答案.docx

2026年软件开发工程师招聘笔试模拟题及答案

一、编程语言基础(20分)

1.(Java)请说明ThreadLocal的实现原理及内存泄漏的原因,结合JDK1.8的优化说明如何避免泄漏。(5分)

答案:ThreadLocal通过为每个线程维护一个独立的ThreadLocalMap来存储变量副本,ThreadLocal对象作为Map的Key(弱引用),Value为实际存储的值。内存泄漏的主因是:若ThreadLocal对象被回收(弱引用特性),但线程未终止(如线程池中的长生命周期线程),ThreadLocalMap中的Entry的Key会变为null,而Value仍被强引用无法回收,导致内存泄漏。

JDK1.8优化:ThreadLocalMap的set()、get()、remove()方法增加了对Key为null的Entry的清理逻辑(expungeStaleEntry),自动回收Value。避免泄漏的最佳实践是:在ThreadLocal使用完毕后主动调用remove(),尤其是在线程池场景中(线程会被复用,未清理的Value可能累积)。

2.(Python)实现一个装饰器,要求能统计函数执行时间,并支持自定义时间单位(如ms、s),同时兼容被装饰函数的元信息(如__name__、__doc__)。(5分)

答案:

```python

importti

文档评论(0)

1亿VIP精品文档

相关文档