之前面试了一家公司,主要在围绕单例展开的一个case:
[list=1]
Q1: 写一个单例:
public class Singleton{
private static final Singleton instance = new Singleton();
private Singleton(){
}
public static Singleton getInstance(){
return instance;
}
}
[list=2]
Q2: 写一个lazy load的单例:
public class Singleton{
private static Singleton instance;
private Singleton(){
}
public static Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
[list=3]Q3: 写一个线程安全的lazy load的单例:
public class Singleton{
private static Singleton instance;
private Singleton(){
}
public static Singleton getInstance(){
if(instance == null){
synchronized(Singleton.class){
instance = new Singleton();
}
}
return instance;
}
}
[list=4]Q4: 写一个轻量级的线程安全的lazyload的单例:
public class Singleton{
private static Singleton instance;
private static AutomaticInteger count = new AutomaticInteger(0);
private Singleton(){
}
public static Singleton getInstance(){
if(count ==0 && instance == null){
synchronized(Singleton.class){
instance = new Singleton();
count.increment();
}
}
return instance;
}
}
[/list]
分享到:
相关推荐
8. **设计模式**:设计模式是解决常见软件设计问题的模板,例如单例模式、工厂模式、观察者模式等。熟练应用设计模式可以提高代码的可读性和可维护性。 9. **JVM优化**:面试中可能会问到内存模型、垃圾收集机制、...
8. **设计模式**:面试者应掌握常见的设计模式,如单例、工厂、抽象工厂、建造者、装饰器、适配器、代理、观察者、策略、模板方法等,并能给出实际应用的例子。 9. **JVM**:理解JVM的结构,包括堆内存、栈内存、...
对于非 Java 初学者来说: 本文档更适合回顾知识,准备面试,搞清面试应该把重心放在那些问题上。要搞清楚这个道理:提前知道那些面试常见,不是为了背下来应付面试,而是为了让你可以更有针对的学习重点。 目录 ...
12. **设计模式**:单例模式、工厂模式、观察者模式、装饰器模式等23种设计模式的实现和应用场景。 13. **JDBC**:数据库连接、执行SQL语句、结果集处理、事务处理等基本操作。 14. **Spring框架**:IoC(依赖注入...
- 定期回顾重要概念和技术,保持记忆新鲜。 - 面试当天避免过度思考面试题目,保持良好的心态。 - 积极提问,表现出对职位的兴趣和对公司的了解。 - 在面试中遇到不确定的问题时,诚实回答并表示愿意进一步学习。 ...
13. **软件工程与设计模式**:了解敏捷开发,TDD(测试驱动开发),DDD(领域驱动设计),以及常用的设计模式,如工厂模式、单例模式、观察者模式等。 14. **代码版本控制**:熟悉Git或SVN等版本控制系统,理解分支...
8. **设计模式**:常见的设计模式如单例、工厂、观察者、装饰器、适配器等,它们是解决常见问题的成熟方案,也是面试中常考的内容。 9. **JVM**:Java虚拟机是Java运行的核心,理解JVM内存模型(堆、栈、方法区等)...
文中还讲解了volatile的关键特性、线程安全的单例模式实现方式,以及ConcurrentHashMap和Fork/Join、CompletableFuture的工作机理。 适合人群:具备一定工作经验的候选人、Java 开发者以及准备 Java 高级岗位面试的...
8. **设计模式**:常见的设计模式如单例模式、工厂模式、建造者模式、观察者模式、适配器模式等,以及在实际开发中的应用。 9. **JVM优化**:了解JVM内存模型(堆、栈、方法区等),垃圾回收机制(GC),以及如何...
【标题】"Java面试宝典_2010"揭示了这个压缩包是关于2010年Java程序员面试的参考资料。它可能是由一系列精心挑选的问题、答案和建议组成的,...这份2010年的面试宝典将为回顾过去的技术趋势和面试技巧提供宝贵参考。
面试宝典中的这些问题和概念可以帮助面试者全面回顾Java知识,加强理解,并准备好面试官可能提出的问题。通过整理这些问题,面试者可以系统性地复习和巩固JavaWeb开发的核心概念,从而在面试中更好地展示自己的技术...
在面试准备时,阅读"C++面试大全"和"C/C++程序员面试宝典"这类资料可以帮助你回顾和巩固核心知识,同时提供常见面试问题和解答策略。文档中的案例分析和实践练习题可以提升你的解决问题能力。 总的来说,成功的C++...
Java是世界上最流行的编程语言之一,尤其在企业级应用...这份"JAVA08年上海公司面试大全"资料无疑可以帮助求职者回顾和复习这些关键知识点,为面试做好充分准备。即使是在今天,这些基本技能仍然是Java开发者必备的。
Java是世界上最流行的编程语言之...这份面试题大全将帮助求职者全面回顾和巩固Java编程的核心概念和技术,为面试做好充分准备。无论你是初级开发者还是有经验的工程师,都应该通过这些题目不断挑战自己,提升专业能力。
Java作为一门广泛使用的编程语言,其面试题涵盖了众多的...这个面试题总结,无论是对于初学者还是有经验的开发者,都是一个很好的学习资源,可以帮助大家在准备面试时系统地回顾和强化Java基础知识,提高面试成功率。
在准备C++面试时,了解并熟练掌握核心知识点至关重要。这份名为"C++面试笔试的小工具记录,时常复习,加深记忆,通过latex转成pdf.zip"的资料,...记得时常回顾和测试自己,以确保在面试中能游刃有余地应对各种挑战。
8. 面试总结:这部分通常包括对上述所有主题的回顾,以及如何准备面试,如何回答常见问题,如何展示自己的项目经验和解决问题的能力。 通过深入学习和理解这些知识点,不仅可以提升你的iOS开发技能,也能在面试中...
《Java面试宝典》是一本专门为即将参加Java程序员面试者准备的资料,旨在帮助求职者系统地回顾和强化Java相关的专业知识点,以便在面试中表现出色。这份文档涵盖了Java语言的核心概念、高级特性、并发编程、集合框架...
自我总结IT面试题的过程不仅是回顾和巩固个人技术能力的好方法,也是为面试做好充分准备的重要步骤。以下是我对一些常见IT面试题目的深入解析和扩展: 1. **数据结构与算法**: - 二叉树、链表、堆、栈、队列等...