`

面试题高性能的单例

    博客分类:
  • java
 
阅读更多

问题:.编写一个单例(要求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面试题_高并发、高可用、分布式(9题)

    在Java面试中,高并发、高可用和分布式是考察开发者技术深度和广度的重要领域。以下将详细解析这些关键知识点: 1. **高并发** 高并发是指系统在同一时间处理大量请求的能力。在Java中,实现高并发通常涉及线程...

    2019互联网面试题第2季,互联网面试题及答案,Java

    "2019互联网面试题第2季"聚焦了这一年度的重要面试趋势和热门问题,旨在帮助求职者更好地准备并理解面试官可能提出的各种问题。这份资料可能包含一系列的面试题目、解答以及相关思维导图,帮助求职者系统地梳理和...

    2021年JAVA开发面试题.zip

    【标题】"2021年JAVA开发面试题.zip" 提供的是2021年度针对Java开发人员的面试题目集合。这些题目旨在测试应聘者的Java编程基础、面向对象设计、并发编程、数据结构与算法、框架应用以及系统设计等方面的知识和能力...

    计算机和JAVA 面试题大全

    【计算机和JAVA 面试题大全】 在计算机科学与技术领域,尤其是软件开发行业,Java是一种广泛应用的编程语言,以其跨平台、面向对象和高效性而受到赞誉。本资料集涵盖了丰富的Java面试题,旨在帮助求职者准备Java...

    高级Java经典面试题2019

    本文总结了《高级Java经典面试题2019》中关于并发编程、JVM和Spring框架等方面的重要知识点。通过深入理解这些概念和技术,可以帮助开发者更好地掌握Java核心技术,提高面试竞争力。希望本文能为读者提供有益的帮助...

    .net面试题.net面试题.net面试题.net面试题(经典)

    .NET面试题是评估应聘者对.NET框架理解和应用能力的重要方式,涵盖了从基础概念到高级特性的广泛知识领域。以下是一些可能出现在.NET面试中的关键知识点: 1. **.NET框架基础**:理解.NET Framework的基本结构,...

    2018最新最全java高级工程师面试题

    Java作为一门广泛使用的编程语言,其高级工程师面试题往往涵盖了多方面的知识点,旨在考察候选人的技术深度、广度以及实际问题解决能力。2018年最全的Java高级工程师面试题集锦,包含了十几个文档,可以预见这些文档...

    新希望六和 面试题 高级JAVA开发工程师

    【标题】"新希望六和 面试题 高级JAVA开发工程师"涉及的是一个针对高级Java开发工程师的面试考核,通常这样的面试会涵盖Java编程语言的深入理解、设计模式、并发处理、数据库操作以及软件架构等多个方面。...

    程序员C/C++面试题汇总(Intel英特尔面试题.微软亚洲技术中心的面试题,Cisco思科面试题,华为C/C++笔试题,慧通面试题)

    C/C++是计算机科学中的两种基础编程语言,广泛应用于系统编程、嵌入式开发、高性能计算等领域。面试题是衡量候选人编程技能和技术理解的重要手段。本资料汇集了来自Intel英特尔、微软亚洲技术中心、Cisco思科和华为...

    java面试题,包含常见面试题,阿里万字面试题,字节跳动面试题,数据库面试题,下载这一套就够,还是免费下载

    字节跳动以短视频应用抖音闻名,因此面试中可能更侧重于高性能、高并发场景下的Java应用。这可能包括JVM性能调优,如GC算法、内存模型、堆内存分配策略,以及热点代码优化。另外,字节跳动也可能考察分布式系统相关...

    前端基础、高级、进阶面试题

    本资料集“前端基础、高级、进阶面试题”旨在帮助开发者准备不同层次的面试,从基础知识到高级概念,再到深入的进阶话题,全面覆盖了前端开发的关键知识点。 1. **基础面试题** - HTML:理解HTML语义化,掌握HTML5...

    sql面试题,java面试题

    首先,让我们关注SQL面试题。SQL(Structured Query Language)是用于管理关系数据库的标准语言,包括数据查询、更新、插入和删除等操作。常见的SQL面试题涵盖以下几个方面: 1. 数据库基本概念:理解数据库、表、...

    android framework面试题集

    Android Framework 面试题集学习指南 一、Android 应用性能分析 Android 应用性能分析是指对 Android 应用程序的性能进行测量、...掌握这些知识点能够帮助开发者更好地编写高性能、低内存占用的 Android 应用程序。

    .net 高级面试题~~

    在.NET高级面试中,面试官通常会关注应聘者对.NET框架深入理解,包括但不限于概念、设计模式、性能优化、并发处理、内存管理、安全性、框架的高级特性等。以下是一些可能涉及的重要知识点: 1. **.NET Framework与...

    支付宝 面试题 (高级java) 2014

    由于支付宝业务的高并发性,面试题可能侧重于并发控制、线程安全、线程池的使用以及并发容器(如ConcurrentHashMap)的理解。考生需要理解Java内存模型(JMM),掌握 volatile、synchronized 和 final 关键字在并发...

    高并发常见面试题(深入底层).docx

    ### 高并发场景下的关键技术与面试题解析 #### 一、`volatile`关键字及底层原理 **1.1 `volatile`简介** `volatile`是Java虚拟机(JVM)提供的一种轻量级的同步机制,主要用于解决多线程环境中的可见性问题。其核心...

    c#,.net 程序员常见面试题大全(含答案)

    《C#与.NET程序员面试题大全》是一份全面的指南,专为准备C#和.NET技术面试的程序员设计。这份资料包含了大量的问题和答案,旨在帮助求职者在面试前做好充分的准备,提升成功的机会。 1. **C#基础知识**: - **...

    Java面试题笔试题大全

    Java作为全球最流行的编程语言之一,其面试题和笔试题是评估开发者技能的重要标准。这份“Java面试题笔试题大全”资源旨在帮助求职者全面准备Java相关的技术面试和笔试环节,提升成功几率。CHM(Compiled Help ...

    2018iOS面试题汇总

    ### 2018 iOS面试题汇总解析 #### 一、设计模式的理解及常见类型 设计模式是指在软件开发过程中,对于特定问题的一种普遍适用的解决方案。它代表着开发者们长期以来积累的经验教训,可以帮助我们更好地组织代码,...

    java 初级 中级 高级 面试题

    高级Java面试题更侧重于框架、并发、性能优化等方面的专业知识: 1. **Spring框架**:依赖注入,AOP,事务管理,Spring Boot和Spring Cloud的应用。 2. **MyBatis**:SQL映射,动态SQL,事务管理。 3. **Java并发...

Global site tag (gtag.js) - Google Analytics