摘要:
MySQL数据库高级精华总结,思维导图、面试必备、索引类型总结、索引优化、SQL优化、事务总结、大表优化,喜欢可以点点点个赞。
阅读全文
摘要:
一致性哈希策略。简单来说就是将整个哈希值(int范围)空间组织成一个虚拟的hash圆环,将每个服务器标识符跟int最大hash取模,得到一些对应在hash环上的点。用户在访问的时候,根据用户的标识符使用同样的hash函数取模,得到hash环上的一点,但这一点很可能没有服务器映射在上面,所以会顺时针行走,遇到的第一台服务器就是应该处理该用户请求的服务器。 阅读全文
摘要:
Java中的大部分同步类(Lock、Semaphore、ReentrantLock等)都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。本文旨在从ReentrantLock详解AQS原理源码解析 阅读全文
摘要:
Java线程池ThreadPoolExecutor面试总结思维导图速记,优点降低资源消耗,通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度,当任务到达时,可以不需要等待线程创建就能立即执行。提高线程的可管理性类关系接 Executor 一个无返回值的execute方法接 ExecutorService 返回值为Future类型的submit方法类 AbstractExecutorService类 ThreadPoolExecutor 阅读全文
摘要:
良心制作,JVM原理速记复习Java虚拟机总结思维导图面试必备。
一、运行时数据区域
线程私有
程序计数器
记录正在执行的虚拟机字节码指令的地址(如果正在执行的是Native方法则为空),是唯一一个没有规定OOM(OutOfMemoryError)的区域。
Java虚拟机栈
每个Java方法在执行的同时会创建一个栈桢用于存储局部变量表、操作数栈、动态链接、方法出口等信息。从方法调用直到执行完成的过程,对应着一个栈桢在Java虚拟机栈中入栈和出栈的过程。(局部变量包含基本数据类型、对象引用referenc 阅读全文
摘要:
ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。
ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArrayList类。
ArrayList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了RandomAccess接口,支持快速随机访问,实际上就是通过下标序号进行快速访问,实现了Cloneable接口,能被克隆。 阅读全文
摘要:
在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值(8)时,可能会将链表转换为红黑树,这样大大减少了查找时间。 阅读全文
摘要:
简介单一职责原则。对类来说,即一个类应该只负... 阅读全文
摘要:
AppServ安装1. 下载2. 安装,一路... 阅读全文
摘要:
简单的概念就不解释。基于Redis5.0.5 从Sentinel主函数触发 在sentinel.c文件的最后面可以发现sentinelTimer函数,这个就是Sentinel的主函数,sentinel的各项功能检测都是在这里进行,循环调用。 Sentinel主函数(sentinelTimer)由se 阅读全文