
Java知识点系列
QQsilhonette
这个作者很懒,什么都没留下…
展开
-
设计模式与Java语言特性
单例模式【1】: 1. 静态初始化(饿汉).不管是否使用都会创建饿汉单例 <tip1【2】>final:对于基本类型数据,final会将值变为一个常数(创建后不能被修改);但是对于对象句柄(亦可称作引用或者指针),final会将句柄变为一个常数(进行声明时,必须将句柄初始化到一个具体的对象。而且不能再将句柄指向另一个对象。static:修饰的属性强调它们只有一个。...原创 2019-07-11 15:11:31 · 175 阅读 · 0 评论 -
JVM
加载机制-双亲委派模式【1】:对于任意一个类,都需要由加载它的类加载器和这个类本身来一同确立其在Java虚拟机中的唯一性。双亲委派:如果一个类加载器收到了加载某个类的请求,则该类加载器并不会去加载该类,而是把这个请求委派给父类加载器,每一个层次的类加载器都是如此,因此所有的类加载请求最终都会传送到顶端的启动类加载器;只有当父类加载器在其搜索范围内无法找到所需的类,并将该结果反馈给子类加载器,...原创 2019-07-26 15:45:09 · 126 阅读 · 0 评论 -
缓存(Redis与Memcache)
Memcache【1】:多线程、异步IO、KV存储、内存存储没有持久化、采用LRU(Least Recent Used)淘汰算法。1、内存管理:Slab->Page,内存将按照1MB的大小划分为页,而该页内存则会继续被分割为一系列具有相同大小的内存块。在一条新的记录到来时,Memcached会首先检查该记录 的大小,并根据记录的大小选择记录所需要存储到的Slab类型。一个需要考虑的特殊情况...原创 2019-08-14 16:10:32 · 249 阅读 · 0 评论 -
并发与多线程
CAS:首先CPU将内存中的将要被修改的数据与预期的值进行比较,如果这两个值相等,CPU则会将内存中数值替换为新值,否则不做操作。 Synchronized原理: Synchronized实现原理_EntryList、Owner、_WaitSet【1】:进入获取锁的线程、指向持有Monitor对象的线程、等待获取锁的线程 tip1【2】:对象的内存布局:对象头,实例数据,对齐填充(对...原创 2019-08-09 16:54:10 · 142 阅读 · 0 评论 -
Spring全家桶
【0】 BeanFactory和FactoryBean【1】:BeanFactory是个Factory,也就是IOC容器或对象工厂,FactoryBean是个Bean。在Spring中,所有的Bean都是由BeanFactory(也就是IOC容器)来进行管理的。但对FactoryBean而言,这个Bean不是简单的Bean,而是一个能生产或者修饰对象生成的工厂Bean,它的实现与设计模式中的工厂...原创 2019-08-13 14:00:00 · 237 阅读 · 0 评论 -
消息队列与数据库
Kafka架构原理【1】:kafka架构1、消费模式:producer使用push模式,consumer使用pull模式。tips:如果采用 Push,消息消费的速率就完全由消费代理控制,一旦消费者发生阻塞,就会出现问题。Kafka 采取拉取模型(Pull),由自己控制消费速度,以及消费的进度,消费者可以按照任意的偏移量进行消费。2、broker和consumer使用zookeepe...原创 2019-08-16 15:43:13 · 1668 阅读 · 0 评论 -
算法
快速排序【1】private <T extends comparable<? super T>> void quicksort (T[] targetArr, int start, int end) { int i = start; int j = end; T key = targetArr[i]; while(i < j) { ...原创 2019-08-18 22:29:04 · 133 阅读 · 0 评论