博客
关于我
Java的面试热点
阅读量:643 次
发布时间:2019-03-14

本文共 1230 字,大约阅读时间需要 4 分钟。

HashMap篇

HashMap的扩容操作是怎么实现的?

在JDK1.8中,HashMap的resize方法在键值对的数量超过阈值时或初始化时会被调用来进行扩容。每次扩展时,HashMap的大小会扩展到原来的两倍,这样可以确保容量的快速增加。当进行扩容时,Node对象的位置有两种情况:要么保持在原来的位置,要么移动到原位置的基础上增加了数组大小的位置。这种机制在JDK1.8中有一个优化,当桶上的元素重新分发时,不需要计算新的哈希值,而是直接根据当前集合的哈希位掩码来判断。

在putVal()方法中,resize()方法会被调用两次。第一次是在初始化时或在实际大小超过临界值时调用,第二次是在元素已被放置到数组中的情况下,检查是否需要扩容。如果需要扩容,就会触发一次数组大小的改变,同时对桶中的元素进行重新计算哈希值并进行重新分发的操作。这个时候,如果桶的位置和哈希位掩码的结果不同时,元素会被移动到新的位置;如果结果相同,元素就会留在原来的位置。

哈希冲突是解决documento冲突而产生的。在解决哈希冲突之前,我们需要了解哈希的概念。Hash(散列)是一种将任意长度的输入通过算法转换为固定长度的输出的函数。这种转换使得不同的输入可能映射到相同的输出,从而产生哈希冲突。解决哈希冲突的常规方法是使用线性探测法。具体来说,当一个哈希表在哈希冲突时,继续在同一个哈希表的下一个位置寻找下一个空槽来存储元素,直到找到为止。

并发编程面试题

并发编程的基础知识

并发编程与并发系统设计有关,它能够充分利用多核CPU的计算能力,提升程序的执行效率。在合理的业务场景下,并发编程能够实现高性能的系统。然而,并发编程也伴随着诸多挑战,如内存泄漏、线程安全、上下文切换等问题。

并发编程的优点主要体现在处理复杂业务模型时的优势,但并非所有情况都适合并发编程。开发高并发系统时,多线程并发编程仍然是基础,能够显著提高系统的并发能力。

关于并发编程

更多关于并发编程的知识,可以参考相关的教学视频内容。

MySQL

数据库的三范式

数据库的三范式是数据库规范化的三种基本要求。

第一范式:确保表中的字段要么不为null,要么具有全素性(不能被进一步分解)。每个字段的值都要是原子性的。

第二范式:满足第一范式的一个表只能表示一个事物,所有非主属性必须完全依赖于主属性,每个主属性都能唯一确定一个记录。

第三范式:满足前两种范式,每个非主属性直接依赖于主属性,不能间接依赖,同时非主属性之间也不能互相依赖。

ACID是数据库事务的四个基本特性。它们保证了事务的原子性、一致性、隔离性和持久性。

原子性:所有事务操作要么全部成功,要么全部失败,确保数据的完整性。

一致性:在事务执行前和执行后系统处于相同的状态,保证数据的一致性。

隔离性:在并发系统中,事务的执行互不影响,保证了高并发环境下的数据安全。

持久性:事务完成后数据修改是永久性的,即便是系统故障也无法丢失数据。

转载地址:http://aproz.baihongyu.com/

你可能感兴趣的文章
MySQL Binlog 日志监听与 Spring 集成实战
查看>>
MySQL binlog三种模式
查看>>
multi-angle cosine and sines
查看>>
Mysql Can't connect to MySQL server
查看>>
mysql case when 乱码_Mysql CASE WHEN 用法
查看>>
Multicast1
查看>>
MySQL Cluster 7.0.36 发布
查看>>
Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
查看>>
MySQL Cluster与MGR集群实战
查看>>
multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
查看>>
mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
查看>>
Multiple websites on single instance of IIS
查看>>
mysql CONCAT()函数拼接有NULL
查看>>
multiprocessing.Manager 嵌套共享对象不适用于队列
查看>>
multiprocessing.pool.map 和带有两个参数的函数
查看>>
MYSQL CONCAT函数
查看>>
multiprocessing.Pool:map_async 和 imap 有什么区别?
查看>>
MySQL Connector/Net 句柄泄露
查看>>
multiprocessor(中)
查看>>
mysql CPU使用率过高的一次处理经历
查看>>