摘要:
#类加载器 JAVA虚拟机设计团队有意把类加载阶段中的“通过一个类的全限定名来获取描述该类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何获取所需的类。实现这个动作的代码被称为“类加载器”(Class Loader)。 类加载器虽然只用于实现类的加载动作,但它在Jav 阅读全文
摘要:
LRU算法是内存换出算法,只不过实现代价比较大,我们可以使用Clock算法。 public class LRUCache { class DLinkedNode { int key; int value; DLinkedNode prev; DLinkedNode next; public DLin 阅读全文
摘要:
由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的,所以服务端要为特定的用户创建了特定的Session,用用于标识这个用户,并且跟踪 阅读全文
摘要:
#为什么不适用二叉平衡树(AVL树,红黑树) 1.二叉平衡树每个节点有两个子节点,这意味着树的高度更高,IO次数更多 2.查询效率不稳定,如果要查询的数据在叶子节点,需要进行多次IO 3.磁盘IO是以页为单位的,一页=4k,如果使用二叉平衡树,每个节点只存储两个子节点的引用(两路),也就是一次IO操 阅读全文
摘要:
//这道题关键在于如何判断两个分数相等,这里采用除以gcd化为最简,然后构造成字符串。 class Solution { public long interchangeableRectangles(int[][] rectangles) { long res=0; HashMap<String,In 阅读全文
摘要:
阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元 阅读全文
摘要:
Java中实际上提供了java.util.Stack来实现栈结构,但官方目前已不推荐使用,而是使用java.util.Deque双端队列来实现队列与栈的各种需求.如下图所示java.util.Deque的实现子类有java.util.LinkedList和java.util.ArrayDeque.顾 阅读全文