摘要: (1)结构图: l ConcurrentHashMap中的数据结构 ConcurrentHashMap是由Segment数组结构和HashEntry数组结构组成。Segment实际继承自可重入锁(ReentrantLock),在ConcurrentHashMap里扮演锁的角色;HashEntry则用 阅读全文
posted @ 2019-05-03 11:26 阿祖的栈区 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 本篇提纲.png 本篇所述源码基于JDK1.8.0_121 在写上一篇线性表的文章的时候,笔者看的是Android源码中support24中的Java代码,当时发现这个ArrayList和LinkedList的源码和Java官方的没有什么区别,然而在阅读HashMap源码的时候,却发现Android 阅读全文
posted @ 2019-05-03 10:57 阿祖的栈区 阅读(346) 评论(0) 推荐(0) 编辑
摘要: List和Set继承自Collection接口。 Set无序不允许元素重复。HashSet和TreeSet是两个主要的实现类。 List有序且允许元素重复,支持null对象。ArrayList、LinkedList和Vector是三个主要的实现类。 Map也属于集合系统,但和Collection接口 阅读全文
posted @ 2019-05-03 10:04 阿祖的栈区 阅读(1365) 评论(0) 推荐(0) 编辑
摘要: 在jdk8之前,interface之中可以定义变量和方法,变量必须是public、static、final的,方法必须是public、abstract的。由于这些修饰符都是默认的,所以在JDK8之前,下面的写法都是等价的。 JDK8及以后,允许我们在接口中定义static方法和default方法。 阅读全文
posted @ 2019-05-02 16:01 阿祖的栈区 阅读(1796) 评论(0) 推荐(0) 编辑
摘要: 抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类。比如new Animal(),我们都知道这个是产生一个动物Animal对象,但 阅读全文
posted @ 2019-05-02 15:55 阿祖的栈区 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍了面向对象六大原则。 单一职责原则(Single-Resposibility Principle)。 “对一个类而言,应该仅有一个引起它变化的原因。”本原则是我们非常熟悉地”高内聚性原则”的引申,但是通过将”职责”极具创意地定义为”变化的原因”,使得本原则极具操作性,尽显大师风范。同时, 阅读全文
posted @ 2019-05-02 15:39 阿祖的栈区 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 1.面向对象和面向过程的区别 面向过程 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点:没有面向对象易维护、易复用、易扩展 面向对象 优点:易维护、易复用、易扩展,由于面向对象有 阅读全文
posted @ 2019-05-02 15:33 阿祖的栈区 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 最近有一个需要从拦截器中获取post请求的参数的需求,这里记录一下处理过程中出现的问题。 首先想到的就是request.getParameter(String )方法,但是这个方法只能在get请求中取到参数,post是不行的,后来想到了使用流的方式,调用request.getInputStream( 阅读全文
posted @ 2019-03-29 18:18 阿祖的栈区 阅读(19201) 评论(0) 推荐(1) 编辑
摘要: 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的 阅读全文
posted @ 2019-03-28 19:22 阿祖的栈区 阅读(258) 评论(0) 推荐(0) 编辑