首页 > 编程语言 >Java面试题Day03

Java面试题Day03

时间:2023-01-06 09:24:02浏览次数:49  
标签:map 面试题 Java HashMap Day03 元素 hashCode 集合 方法

1.HashMap的resize过程是什么样的?

采用hash表数据加链表的形式,1.8以后引入了红黑树的数据结构,初始化数组长度为16,当数组长度到0.75时扩容,链表长度大于8时转为红黑树,红黑树的长度小于6时转为链表结构,

数组中的元素容量超过了阙值的0.75就会触发扩容长度.

2.HashMap你经常用在哪个地方?

(1)电子商务的应用中使用HashMap作为缓存

(2)金融领域出于性能的考虑非常多的运用HashMap和ConcurrentHashMap

(3)controller层向前台返回数据可以用map封装数据

(4)mybatis中的map可以作为参数或者封装结果集

3.HashMap和Hashtable的区别?

(1)hashMap去掉了HashTable 的contains方法,但是加上了containsValue() 和containsKey()方法.

(2)hashTable同步的,而hashMap是非同步的,效率比hashTable要高.

(3)hashMap允许空键值,而hashTable不允许.

4.List,Map,Set三个接口,存取元素时,各有什么特点?

List有序可重复

Set无序不重复

Map一般都是键值对key-value值,value可多个值

5.HashSet是如何保证元素唯一性的呢?

通过元素的两个方法hashCode和equals来完成的

6.TreeSet怎么对集合中的元素进行排序?

TreeSet底层数据结构是二叉树

(1)让元素自身具备比较性,需要元素对象实现Comparable接口,覆盖compareTo方法

(2)让集合自身具备比较性,需要定义一个实现了Comparator接口的比较器,覆盖compare方法.

7.map集合的两种取出方式?

(1)通过map.keyset,先得到map集合的键,再根据键得到value值

(2)通过map.entrySet直接得到键值对

8.Collection和Conllections的区别?

Conllection是集合类的上级接口,继承他的接口主要有set和list

Conllections是工具类,有很多操作集合的方法.

9.ConcurrentHashMap 的工作原理及代码实现

ConcurrentHashMap引入了分割(Segment)的概念,只对Map的一部分(Segment)进行上锁,这样保证同步的时候,锁住的不是整个map

10.HashCode的方法和作用

hashCode()的作用是获取哈希码,也成为散列码,它实际上是返回一个int整数,这个哈希码的作用是确定该对象在哈希表中的索引位置

不同的对象可能会有相同的hashCode,在比较一个对象是否相等时,首先需要比较对象的hashCode是否相等,其次要比较equals是否相等

因此,equals方法被覆盖过,则hashCode方法也必须被覆盖hashCode()的默认行为是对堆上的对象产生的独特值,如果没有重写hashCode(),

则该class的两个对象无论如何都不会相等.

 

标签:map,面试题,Java,HashMap,Day03,元素,hashCode,集合,方法
From: https://www.cnblogs.com/carney/p/17029418.html

相关文章

  • 【一句话】JAVA8后abstract class和interface的区别
    首先一句话:JAVA8后(1)interface支持default和static方法有实现,abstractclass依然是抽象方法和非抽象方法,(2)可同时实现多个interface,(3)但成员变量只能是staticfanal的......
  • JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来3 —— 本地缓存变身分布式集群缓存
    大家好,又见面了。本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面。如果感兴趣,欢迎关注以获取后续更新。上......
  • Java Virtual Mechine
    深入理解JavaVirtualMechineGarbageCollectorGctuning简历:熟悉GC常用算法,熟悉常见垃圾收集器,具有实际JVM调优实战经验1.whatisgarbage?lostpointer2.howtofi......
  • C#(Java)将List集合构建成Tree树
    C#(Java)将List集合构建成Tree树子安树构建算法,可以通过空间换时间进一步优化速度树结构的类publicclassMyTreeNode{publicMyTreeNode(long?iD,long?pare......
  • java 货物摆放 —— 蓝桥
    题目描述小蓝有一个超大的仓库,可以摆放很多货物。现在,小蓝有 nn 箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物......
  • Java基础面试题(一)
    Java基础1、数据类型基本数据类型在声明时自动分配空间,引用数据类型声明时只是分配了引用空间,只有在创建对象时才会开辟 空间。2、标识符命名规则标识符的含义类的名......
  • JAVA_Fastjson
    0x00前言Fastjson是Alibaba开发的Java语言编写的高性能JSON库,用于将数据在JSON和JavaObject之间互相转换。提供两个主要接口来分别实现序列化和反序列化操作......
  • 算法14_位运算及经典面试题
    1.二进制Java数值运算过程中都是先将十进制转换为二进制然后再进行运算,再把二进制数据转换为十进制展现给用户。二进制运算规则如下:对于有符号的而言,最高位为符......
  • Java开发学习(五十)----MyBatisPlus快速开发之代码生成器解析
    1、代码生成器原理分析造句:我们可以往空白内容进行填词造句,比如:在比如:观察我们之前写的代码,会发现其中也会有很多重复内容,比如:那我们就想,如果我想做一个Book模块......
  • Java基础语法
    Java基础语法注释注释不会被执行,是给写代码的人看的注释需要注意规范单行注释多行注释文档注释JavaDoc生成自身的API文档//找到需要生成JavaDoc......