Java知识点
失忆机器
不积跬步无以至千里
展开
-
//keep
keep on原创 2022-08-08 19:31:22 · 300 阅读 · 1 评论 -
LRU算法具体代码实现-java
package com.example.demo; import java.util.HashMap;import java.util.Map; public class LRUCache { Entry head, tail; int capacity; int size; Map<Integer, Entry> cache; public LRUCache(int capacity) { this.capacity .原创 2022-05-02 15:01:58 · 847 阅读 · 0 评论 -
ArrayList(超容和缺数据)
一、底层是数组二、线程不安全(下面讲解)三、初始化容量为10。 JDK1.8:扩容机制是原容量+原容量通过位运算右移一位,也就是除2,所以是原数组的1.5倍 JDK1.6:(原容量*3)/2 +1。四、add方法源码public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++...原创 2021-09-24 13:38:31 · 145 阅读 · 0 评论 -
Volatile关键字
一、作用volatile关键字的作用有3个,可见性,有序性和对64位的long和double变量的读写保证原子性。二、作用分析可见性:多个线程访问同一个共享变量,一个线程修改了共享变量的值,其他线程能够立即可见修改后的值。有序性:禁止指令的重排序。 CPU对一些原子性操作可能会打乱执行顺序,因为CPU执行每一条指令效率不同,为了优化而打乱原子性的顺序,但是在单线程下结果不会发生变化。对64位的long和double保证读写的原子性:对于非volatile的64位的long...原创 2021-09-24 13:09:58 · 79 阅读 · 0 评论