一江溪水
Java反射机制 Java反射机制
什么是反射在程序的运行状态中, 可以构造任意一个类的对象, 可以了解任意一个对象所属的类, 可以了解任意一个类的成员变量和方法, 可以调用任意一个对象的属性和方法。 这种动态获取程序信息以及动态调用对象的功能称为 Java 语言的反射机
2021-11-17
HashMap的扩容 HashMap的扩容
HashMap初始化在JDK1.8中,定义了HashMap的初始化过程,我们看看他的源码是如果定义这个初始化过程可以看到,它的构造方法中传入了两个参数,一个是初始化容量,一个是加载因子,默认是0.75f HashMap(int initia
2021-09-12
Java集合之HashMap(三) Java集合之HashMap(三)
线程安全在多线程,高并发的场景下,HashMap存在线程安全问题 主要原因在于并发下的rehash会造成元素之间会形成一个循环链表。 jdk 1.8 后解决了这个问题,但是还是不应该在多线程下使用HashMap ,因为多线程下使用Hash
2021-07-23
Java集合之HashMap(二) Java集合之HashMap(二)
HashMap扩容机制明确几个参数: capacity 即容量,默认16。 loadFactor 加载因子,默认是0.75 threshold 阈值。阈值=容量*加载因子。默认12。当元素数量超过阈值时便会触发扩容。 什么时候触发扩容?
2021-07-22
Java集合之HashMap(一) Java集合之HashMap(一)
在讲HashMap之前,先说说Java中的集合框架 Java 的集合框架Java 中集合主要分为java.util.Collection和java.util.Map两大接口 List,Set,Map三者区别 List:线性表,必须按照顺序保
2021-07-21
线程复用-线程池 线程复用-线程池
线程池是什么 池化技术能够减少资源对象的创建次数,提高程序的响应性能,特别是在高并发下这种提高更加明显 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务 为什么要用线程池主要是为了减少每次获取资源的
2021-07-18