1、Hashmap中有哪些属性或者参数可以提高它的性能?
我听到这个问题后,脑袋直接短路,平时在coding的时候,用到Hashmap时,都是这样的:Map<String,
Object> newMap = new HashMap<String,
Object>();然后就直接往里面放元素了,想来想去,还真想不出来声明的时候,能加上哪些属性或者参数。然后回来,看了下Hashmap的源
码,发现还真有两个属性,可以在创建时使用,一个是初始容量,一个是加载因子。但是回头想一下,即使知道这两个属性可以优化性能,但是在实际使用中,这两
个值要怎么配合才能达到最优呢?如果传入的这两个值不协调的话,有可能还会降低Hashmap的性能。哎,喜欢研究的淘宝专家们,研究是为实际应用服务
的,我想仅仅知道这两个属性的话,在实际应用中不一定派上用场,第一个问题就到这里,下面是代码:
/**
* The default initial capacity - MUST be a power of two.
*/
static final int DEFAULT_INITIAL_CAPACITY = 16;
/**
* The maximum capacity, used if a higher value is implicitly specified
* by either of the constructors with arguments.
* MUST be a power of two <= 1<<30.
*/
static final int MAXIMUM_CAPACITY = 1 << 30;
/**
* The load factor used when none specified in constructor.
*/
static final float DEFAULT_LOAD_FACTOR = 0.75f;
2、如果开发高并发程序,你一般是如何实现的呢?
这个问题其实是在问concurrent包里的一些知识,幸好之前在项目中用到过,就和他聊了起来,java.util.concurrent.automic以及java.util.concurrent.lock包中的一些类啊,方面啊,都说了下。
然后面试人员又问了,如果我要限制最多3个人同时进行操作一个资源的话,你对资源是怎么处理的呢?
我说首先设置一个poolSize=3,然后可以用java.util.concurrent.lock包下面的Lock类里的lock和unlock方法对资源进行加锁与解锁操作。
结果面试人员又问了,还有没有其他方法?
如果有的话,就只有多线程中的同步操作了。
面试人员说,concurrent包里还有另外的方法可以实现这样的需求。。。
分享到:
相关推荐
这份"学习Java基础知识"的资源包,显然是一份专为初学者准备的Java学习材料,旨在帮助你从零开始掌握Java编程。下面将详细介绍这个资源包中可能包含的知识点。 1. **Java语言基础**:这是所有Java学习的起点,包括...
Java 基础知识点 Java 是一种面向对象的编程语言,它具有抽象、继承、封装、多态性等特征。下面是 Java 基础知识点的详细解释: 1. 面向对象的特征: 面向对象编程的四个基本特征是抽象、继承、封装和多态性。 *...
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司)于1995年发布。它以其“一次编写,到处运行...以上是Java基础知识的概览,通过深入学习和实践,初学者可以逐步掌握这个强大的编程语言。
Java基础知识是学习Java编程的基础,涵盖了类、对象、数据类型、控制结构、异常处理、集合框架等多个方面。 1. **Java语法基础** - **变量与数据类型**:Java支持基本数据类型(如int, double, char等)和引用数据...
【JAVA基础知识详解】 Java作为一款广泛应用的编程语言,其基础知识对于初学者和求职者来说至关重要。以下是关于Java的一些核心知识点: 1. **面向对象的特征**: - **抽象**:抽象是忽略对象的非本质属性,关注...
【一线互联网大厂Java核心面试题库】Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等..
总之,Java语言基础知识的学习涉及语言的历史、特性、开发环境设置、基本数据类型、数组操作以及面向对象编程思想。通过理论学习与实践操作相结合,可以逐步提高编程能力,为后续的Java应用开发打下坚实基础。
理解这些Java基础知识对于开发Java应用程序至关重要,它们构成了Java编程的核心概念,也是进阶学习Java高级特性和框架的基础。通过熟练掌握这些知识,开发者可以更好地设计和实现高效、可靠的Java系统。
Java基础知识涵盖了广泛的编程概念,是Java开发者必备的基础。以下是对标题和描述中涉及的一些关键知识点的详细解释: 1. **组合索引**:在数据库中,一个组合索引是由多个列组成的索引,例如(A,B,C)。这允许对包含...
此文件记录了学习java基础的笔记,知识点
Java作为一门广泛使用的编程语言,其基础知识对于任何...以上是Java基础知识的一些关键点,深入理解和掌握这些概念将有助于你在Java开发中游刃有余。在面试中,这些知识点也是常见的考察点,因此提前准备是非常必要的。
"Apple") ;p.setProperty("b", "Orange") ;p.setProperty("c", "Watermelon") ;p.setProperty("d", "Cherry") ;FileOutputStream out = new FileOutputStream("fruit.xml") ;p.storeToXML(out, "Fruit Types") ;...
Java基础知识是编程领域中至关重要的一个部分,尤其对于初学者来说,掌握好这些基础将为后续的深入学习和开发工作奠定坚实的基础。Java作为一种广泛使用的面向对象的编程语言,其特性包括平台无关性、安全性和高效性...
这份"Java基础知识方面的面试题pdfJava实用源码整理learns"资源显然旨在帮助开发者和求职者强化Java基础知识,提高面试技能,并通过实用源码的学习进一步提升实战能力。 首先,"Java基础知识面试题"部分通常涵盖...
本资源库分享了Java基础知识库,涵盖了Java基础知识点、Java编程技术、Java开发实践等多方面的内容。 Java基础知识点 1. 字符串排序:Java实现对字符串的排序,通过使用split()方法将字符串分割成数组,然后将数组...
但根据文件标题和描述,我们可以推测该文件包含的是2020年最新版Java基础知识的面试题集。接下来,我会围绕Java基础知识这一主题,详细说明在Java面试中通常会被问到的重要知识点,以满足上述要求。 1. Java语言...
这里记录本人学习java时经常记不住或有误区、或易混淆的知识点记录
JVM是Java程序运行的基础,它负责将编译后的字节码转化为机器码执行。理解JVM的工作原理有助于优化程序性能。 **2.1. 线程** Java支持多线程编程,线程是程序中的并发执行单元。通过创建和管理线程,可以实现程序...
自己平时记录的java基础知识点,思维导图的格式文件,适合初学者有兴趣可以下载看看,但不是很全,待后面完善。
首先,了解Java基础知识是学习的起点,这通常包括: 1. **Java语法**:变量声明、数据类型、运算符、流程控制(如if语句、switch、循环)、方法定义与调用等。 2. **面向对象编程**:类、对象、继承、封装、多态等...