摘要: final和static关键字 final关键字 1.final关键字在单线程中的特点: 1)final修饰的静态成员:必须在进行显示初始化或静态代码块赋值,并且仅能赋值一次。 2)final修饰的类成员变量,可以在三个地方进行赋值:显示初始化、构造代码块和构造方法,并且仅能赋值一次。 3)fina 阅读全文
posted @ 2018-07-15 17:05 sowhat1943 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 数据结构 二叉查找树(BST)的java实现 二叉查找树(BST)是一种能够将链表插入的灵活性和有序数组查找的高效性相结合的一种数据结构。它的定义如下: 二叉查找树是一种二叉树,它的每个节点的key都大于它左子树中的任意节点的key小于它右子树中的所有节点的key。 本文对二叉树查找树的基本功能进行 阅读全文
posted @ 2018-07-15 14:57 sowhat1943 阅读(1022) 评论(0) 推荐(0) 编辑
摘要: java多线程02 volatile内存语义 volatile关键字是java虚拟机提供的最轻量级额的同步机制。由于volatile关键字与java内存模型相关,因此,我们在介绍volatile关键字之前,对java内存模型进行更多的补充(之前的博文也曾介绍过)。 1. java内存模型(JMM) 阅读全文
posted @ 2018-07-11 11:07 sowhat1943 阅读(132) 评论(0) 推荐(0) 编辑
摘要: java基础之IO流(二)之字符流 字符流,顾名思义,它是以字符为数据处理单元的流对象,那么字符流和字节流之间的关系又是如何呢? 字符流可以理解为是字节流+字符编码集额一种封装与抽象,专门设计用来读写文本文件的。 有的小朋友也会问,字节流称之为万能流,为什么还要设计字符流呢。没错,字节流可以读写任意 阅读全文
posted @ 2018-07-04 15:29 sowhat1943 阅读(96) 评论(0) 推荐(0) 编辑
摘要: java基础之IO流(一)之字节流 IO流体系太大,涉及到的各种流对象,我觉得很有必要总结一下。 那什么是IO流,IO代表Input、Output,而流就是原始数据源与目标媒介的数据传输的一种抽象。典型数据源与目标媒介包括磁盘、网络、内存等等。 IO流的分类: 按流向分为:输入流和输出流(本地内存为 阅读全文
posted @ 2018-07-04 11:32 sowhat1943 阅读(181) 评论(0) 推荐(0) 编辑
摘要: java集合系列之HashMap源码 HashMap的源码可真不好消化!!! 首先简单介绍一下HashMap集合的特点。HashMap存放键值对,键值对封装在Node(代码如下,比较简单,不再介绍)节点中,Node节点实现了Map.Entry。存放的键值对的键不可重复。jdk1.8后,HashMap 阅读全文
posted @ 2018-06-30 20:12 sowhat1943 阅读(139) 评论(0) 推荐(0) 编辑
摘要: java集合系列之LinkedList源码分析 LinkedList数据结构简介 LinkedList底层是通过双端双向链表实现的,其基本数据结构如下,每一个节点类为Node对象,每个Node节点包含该节点的数据和分别指向前一个前一个和后一个节点的引用。LinkedList内部维护两个成员变量fir 阅读全文
posted @ 2018-06-30 12:02 sowhat1943 阅读(189) 评论(0) 推荐(0) 编辑
摘要: java集合系列之ArrayList源码分析(基于jdk1.8) ArrayList简介 ArrayList时List接口的一个非常重要的实现子类,它的底层是通过动态数组实现的,因此它具备查询速度快,增删速度慢的特点。另外数组拥有索引,因此可通过索引直接访问集合中的元素,ArrayList集合中允许 阅读全文
posted @ 2018-06-30 10:09 sowhat1943 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 设计模式之装饰(Decorator)模式 (一)什么是装饰(Decorator)模式 装饰模式,又称为包装模式,它以对客户端透明的方式扩张对象的功能,是继承关系的替代方案之一。 装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。 (二)装饰模式的角色 1)抽象构件(Component) 阅读全文
posted @ 2018-06-17 22:06 sowhat1943 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 设计模式之建造者(Builder)模式 存在一些情况,比如,一些对象会有一些重要的属性,在这些属性没有恰当的值之前,对象不能作为一个完整的产品使用(如一个电子邮件最起码得有收件人地址);还有一些些情况,一个对象的一些属性必须按照一定的顺序赋值才有意义,在某个属性没有赋值之前,另一个属性则无法赋值。B 阅读全文
posted @ 2018-06-17 17:59 sowhat1943 阅读(285) 评论(0) 推荐(0) 编辑