软件工程师面试题(含答案).docxVIP

  • 0
  • 0
  • 约8.78千字
  • 约 11页
  • 2026-03-27 发布于河北
  • 举报

软件工程师面试题(含答案)

一、基础编程题(必答,考察代码功底)

1.题目:手写一个单例模式(Java/Python二选一),要求线程安全,且避免双重检查锁定的漏洞

Java答案:

java

//推荐枚举单例,最简单、无线程安全问题,避免反射和序列化漏洞

publicenumSingleton{

INSTANCE;

//业务方法

publicvoiddoSomething(){

System.out.println(单例执行业务逻辑);

}

}

//补充:双重检查锁定(DCL)正确写法(需加volatile),实际开发中枚举更常用

publicclassSingletonDCL{

//volatile禁止指令重排,避免拿到未初始化的实例

privatestaticvolatileSingletonDCLinstance;

privateSingletonDCL(){}//私有构造,禁止外部实例化

publicstaticSingletonDCLgetInstance(){

if(instance==null){//第一次检查,避免频繁加锁

synchronize

文档评论(0)

1亿VIP精品文档

相关文档