记录HashMap的七个面试题

记录HashMap的七个面试题

第一题:当key为null时,这次put操作,数据将被放入哪个桶位?为什么? ​ 0号桶位,这是因为HashMap计算桶位是根据你传入key的hashcode进行一个扰动函数或者说二次hash之后,然......
阅读全文
HashMap多线程并发问题分析

HashMap多线程并发问题分析

一、并发问题的症状 1.多线程put后可能导致get死循环 CPU利用率过高一般是因为出现了出现了死循环,导致部分线程一直运行,占用cpu时间。问题原因就是HashMap是非线程安全的,多个线程p......
阅读全文
线程的五大状态

线程的五大状态

Java中的线程的生命周期大体可分为5种状态。 1. 新建(NEW):新创建了一个线程对象。 2. 可运行/就绪(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的st......
阅读全文
Java 中 Lock 接口详解

Java 中 Lock 接口详解

摘要: 我们已经知道,synchronized 是Java的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,但 synchronized 粒度有些大,在处理实际问题时存在诸......
阅读全文
HashMap的容量与扩容

HashMap的容量与扩容

紧接着上一篇文章  HashMap 实现原理和源码分析,因为上篇文章在扩容方面写得并不详细,博主于是在网上找了一篇比较好的关于 HashMap 的扩容的文章 原文地址:http://blog.c......
阅读全文
JAVA 对象的序列化

JAVA 对象的序列化

下面将介绍对象的序列化——一种将对象转成字节方便传送到别处或存储在硬盘上,并且再从转化成的字节重构对象的机制。 序列化是分布式管理必备的工具,分布式处理中将对象从一个虚拟传到另一个虚拟机。序列化......
阅读全文