摘要:
####1.无锁 无锁没有对资源进行锁定,所有的线程都能访问并修改同一个资源,但同时只有一个线程能修改成功。 ####2.偏向锁 它会偏向于第一个访问锁的线程,如果在运行过程中,同步锁只有一个线程访问,不存在多线程争用的情况,则线程是不需要触发同步的,这种情况下,就会给线程加一个偏向锁 ####3. 阅读全文
摘要:
####进程概念 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用 程序运行的载体。 进程具有的特征: 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的; 并发性:任何进程都可以同其他进行一起并发执行 阅读全文
摘要:
####五大模块: 类转载器子系统 运行时数据区 执行引擎 本地方法接口 垃圾收集 内存回收判断生存火灾死亡的算法 引用数算法 可达性分析算法: 该算法核心思想是依靠判断对象是否存活来实现的 通过一系列的 ‘GC Roots’ 的对象作为起始点,从这些节点出发所走过的路径称为引用链。当一个对象到 G 阅读全文
摘要:
###1.string GETRANGE key start end 返回 key 中字符串值的子字符 GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。 MGET key1 [key2..] STRLEN key 返回 key 阅读全文
摘要:
###1.Redis特点 Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的 阅读全文
摘要:
底层结构 jdk1.8以下:HashMap的底层是:数组+链表(单向链表) jdk1.8+:HashMap的底层是:数组+[链表(单向链表) / 红黑树 ] 线程不安全(put方法没有加锁) 初始化默认大小:16 【1 << 4】 扩容 扩容触发机制: 当前存储过的键值对的数量【即HashMap中的 阅读全文
摘要:
Collection和Collections的区别 1、java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。声明 阅读全文
摘要:
![image](https://img2020.cnblogs.com/blog/1159660/202108/1159660-20210804105935303-813268313.png) 阅读全文
摘要:
常用的解决方案有: 1.拉链法 2.再哈希法 3.开放地址法 Java中的ThreadLocal就是利用了开放寻址法。 参考地址:https://blog.csdn.net/sinat_33921105/article/details/103295070 4.建立公共溢出区。 参考博客地址: htt 阅读全文
摘要:
很明显,ArrayList是某种程度上的哈希表,适合随机读,但是不适合在集合中间插入和删除(会造成后续数据的位移)。 而LinkedList适合在头尾部插入删除,不适合随机读。 值得一提的是ArrayList随机读的时间复杂度是O(1),LinkedList是O(n)。而ArrayList在中间插入 阅读全文