问题:.编写一个单例(要求1.必须在方法中实现单例,2高性能)
1.
public class OneClass {
private static OneClass oneClass = null;
public static synchronized OneClass getInstance(){
while(oneClass == null){
oneClass = new OneClass();
}
return oneClass;
}
public static void main(String[] args) {
OneClass oneClass = OneClass.getInstance();
}
}
这样编写是可以生产单例,但是访问单例时效率不高,瓶颈在锁的位置。
对上面程序进行改写如下:
public class OneTest {
private static ThreadLocal<OneTest> local = new ThreadLocal<OneTest>();
private static OneTest oneClass = null;
private static Lock lock = new ReentrantLock();
public static OneTest getInstance(){
oneClass = local.get();
if(oneClass == null){
oneClass= new OneTest();
local.set(oneClass);
}
return oneClass;
}
}
这样编写性能就会比较高了。
相关推荐
在Java面试中,高并发、高可用和分布式是考察开发者技术深度和广度的重要领域。以下将详细解析这些关键知识点: 1. **高并发** 高并发是指系统在同一时间处理大量请求的能力。在Java中,实现高并发通常涉及线程...
"2019互联网面试题第2季"聚焦了这一年度的重要面试趋势和热门问题,旨在帮助求职者更好地准备并理解面试官可能提出的各种问题。这份资料可能包含一系列的面试题目、解答以及相关思维导图,帮助求职者系统地梳理和...
【标题】"2021年JAVA开发面试题.zip" 提供的是2021年度针对Java开发人员的面试题目集合。这些题目旨在测试应聘者的Java编程基础、面向对象设计、并发编程、数据结构与算法、框架应用以及系统设计等方面的知识和能力...
【计算机和JAVA 面试题大全】 在计算机科学与技术领域,尤其是软件开发行业,Java是一种广泛应用的编程语言,以其跨平台、面向对象和高效性而受到赞誉。本资料集涵盖了丰富的Java面试题,旨在帮助求职者准备Java...
本文总结了《高级Java经典面试题2019》中关于并发编程、JVM和Spring框架等方面的重要知识点。通过深入理解这些概念和技术,可以帮助开发者更好地掌握Java核心技术,提高面试竞争力。希望本文能为读者提供有益的帮助...
.NET面试题是评估应聘者对.NET框架理解和应用能力的重要方式,涵盖了从基础概念到高级特性的广泛知识领域。以下是一些可能出现在.NET面试中的关键知识点: 1. **.NET框架基础**:理解.NET Framework的基本结构,...
Java作为一门广泛使用的编程语言,其高级工程师面试题往往涵盖了多方面的知识点,旨在考察候选人的技术深度、广度以及实际问题解决能力。2018年最全的Java高级工程师面试题集锦,包含了十几个文档,可以预见这些文档...
【标题】"新希望六和 面试题 高级JAVA开发工程师"涉及的是一个针对高级Java开发工程师的面试考核,通常这样的面试会涵盖Java编程语言的深入理解、设计模式、并发处理、数据库操作以及软件架构等多个方面。...
C/C++是计算机科学中的两种基础编程语言,广泛应用于系统编程、嵌入式开发、高性能计算等领域。面试题是衡量候选人编程技能和技术理解的重要手段。本资料汇集了来自Intel英特尔、微软亚洲技术中心、Cisco思科和华为...
字节跳动以短视频应用抖音闻名,因此面试中可能更侧重于高性能、高并发场景下的Java应用。这可能包括JVM性能调优,如GC算法、内存模型、堆内存分配策略,以及热点代码优化。另外,字节跳动也可能考察分布式系统相关...
本资料集“前端基础、高级、进阶面试题”旨在帮助开发者准备不同层次的面试,从基础知识到高级概念,再到深入的进阶话题,全面覆盖了前端开发的关键知识点。 1. **基础面试题** - HTML:理解HTML语义化,掌握HTML5...
首先,让我们关注SQL面试题。SQL(Structured Query Language)是用于管理关系数据库的标准语言,包括数据查询、更新、插入和删除等操作。常见的SQL面试题涵盖以下几个方面: 1. 数据库基本概念:理解数据库、表、...
Android Framework 面试题集学习指南 一、Android 应用性能分析 Android 应用性能分析是指对 Android 应用程序的性能进行测量、...掌握这些知识点能够帮助开发者更好地编写高性能、低内存占用的 Android 应用程序。
在.NET高级面试中,面试官通常会关注应聘者对.NET框架深入理解,包括但不限于概念、设计模式、性能优化、并发处理、内存管理、安全性、框架的高级特性等。以下是一些可能涉及的重要知识点: 1. **.NET Framework与...
由于支付宝业务的高并发性,面试题可能侧重于并发控制、线程安全、线程池的使用以及并发容器(如ConcurrentHashMap)的理解。考生需要理解Java内存模型(JMM),掌握 volatile、synchronized 和 final 关键字在并发...
### 高并发场景下的关键技术与面试题解析 #### 一、`volatile`关键字及底层原理 **1.1 `volatile`简介** `volatile`是Java虚拟机(JVM)提供的一种轻量级的同步机制,主要用于解决多线程环境中的可见性问题。其核心...
《C#与.NET程序员面试题大全》是一份全面的指南,专为准备C#和.NET技术面试的程序员设计。这份资料包含了大量的问题和答案,旨在帮助求职者在面试前做好充分的准备,提升成功的机会。 1. **C#基础知识**: - **...
Java作为全球最流行的编程语言之一,其面试题和笔试题是评估开发者技能的重要标准。这份“Java面试题笔试题大全”资源旨在帮助求职者全面准备Java相关的技术面试和笔试环节,提升成功几率。CHM(Compiled Help ...
### 2018 iOS面试题汇总解析 #### 一、设计模式的理解及常见类型 设计模式是指在软件开发过程中,对于特定问题的一种普遍适用的解决方案。它代表着开发者们长期以来积累的经验教训,可以帮助我们更好地组织代码,...
高级Java面试题更侧重于框架、并发、性能优化等方面的专业知识: 1. **Spring框架**:依赖注入,AOP,事务管理,Spring Boot和Spring Cloud的应用。 2. **MyBatis**:SQL映射,动态SQL,事务管理。 3. **Java并发...