Java运行时数据区
摘要:Java虚拟机定义了一些程序运行期间会使用到的数据区域,其中一些会随着JVM的启动而创建,随着JVM的退出而销毁;另外一些则与线程的运行一一对立的,这些数据区域会随着线程的开始而创建,随着线程的结束而销毁。下面是一张Java运行时的数据区模型图: 总的来说,Java运行时数据区域可以分为两个部分:线
阅读全文
posted @
2017-08-30 13:13
Judy518
阅读(405)
推荐(0) 编辑
二叉树之二叉查找树
摘要:有了“结构定义良好”的二叉树,我们可以干很多事,我们可以创建具有特殊功能的二叉树,比如提供查找功能的二叉树,而且,对于一棵树,其结点的插入、删除等修改动作的完成是很高效的(但是实现起来未必方便......),二叉查找树就能为我们提供这样的功能,二叉查找树的定义是:如果一棵二叉树中的任意一个结点,该结
阅读全文
posted @
2017-08-27 17:52
Judy518
阅读(313)
推荐(0) 编辑
二叉树之线索二叉树
摘要:相对于顺序存储结构而言,利用链式存储结构的二叉树已经有了很高的存储效率,单是还是有空间上未利用到的地方,比如说叶子结点的左右孩子是空的,指向左右孩子的指针就是空闲的,没有被利用到;而且,有时候给定一个结点,我们需要查找该结点的前驱结点和后继结点,如果按照中序遍历的做法去查找的话,对于一个非叶子结点,
阅读全文
posted @
2017-08-27 15:41
Judy518
阅读(333)
推荐(0) 编辑
树之二叉树
摘要:刚学数据结构的时候,一直不明白数据结构到底有什么用,直到对高级编程语言——Java有了进一步的认识之后,才发现数据结构的重要性,Java中的TreeMap,TreeSet等集合中包含了设计精美的数据结构,正如书中所说的那样,树是“相互之间存在一种或多种特定关系的数据元素的集合”,这种定义还是有点抽象
阅读全文
posted @
2017-08-26 17:07
Judy518
阅读(159)
推荐(0) 编辑
关系数据理论之第三范式
摘要:函数依赖已经总结完了,直接总结第三范式,第三范式的形式化定义是这样的:关系模式R(U)中如果不存在这样的码X,属性组Y以及非主属性Z(Z不包含于Y),使得X函数确定Y, Y函数确定Z, Y不能函数确定X(也就是X不是R(U)的候选码),则称R(U)属于第三范式。第三范式讲的是:一个非主属性既不能部分
阅读全文
posted @
2017-08-25 16:34
Judy518
阅读(924)
推荐(0) 编辑
关系数据理论之第二范式
摘要:对于一个关系,既然其中的属性值(也就是数据)能够组合到一起,则它们之间就必须会有一定的依赖关系,而这就是数据依赖,数据依赖是一个关系内部属性与属性之间的一种约束关系。例如学校对学生信息的管理中,学号是学生存在的表示,这个学生的信息(例如姓名、专业、年级、成绩等)的组合使用“学号”这个关键属性进行约束
阅读全文
posted @
2017-08-25 16:10
Judy518
阅读(599)
推荐(0) 编辑
关系数据理论之第一范式
摘要:常用的数据库的逻辑数据模型有:层次模型、网状模型、关系模型、面向对象模型、对象关系模型;数据模型是从计算机的观点出发对数据建模的,主要用于DBMS的实现。数据模型通常由数据结构、数据操作、完整性约束三部分组成。各个含义如下: 数据结构:描述数据库的组成对象以及对象之间的联系。它描述的内容有两类:一类
阅读全文
posted @
2017-08-25 15:01
Judy518
阅读(512)
推荐(0) 编辑
排序之外部排序
摘要:有时,待排序的文件很大,计算机内存不能容纳整个文件,这时候对文件就不能使用内部排序了(这里做一下说明,其实所有的排序都是在内存中做的,这里说的内部排序是指待排序的内容在内存中就可以完成,而外部排序是指待排序的内容不能在内存中一下子完成,它需要做内外存的内容交换),外部排序常采用的排序方法也是归并排序
阅读全文
posted @
2017-08-24 21:10
Judy518
阅读(20516)
推荐(2) 编辑
排序之选择排序
摘要:选择排序思想很简单:每次从待排序的子序列中选择最小的那个数据,将其插到已经排好序的序列中,算法描述如下: select_sort(A) 1、for i= 1 to length(A);//用算法描述的下标都是从1开始的 2、 min=temp=A[i]; 3、 index=i; 4、 for j=i
阅读全文
posted @
2017-08-24 17:49
Judy518
阅读(166)
推荐(0) 编辑
排序之希尔排序
摘要:从刚开始本科学习数据结构的时候,对希尔排序就一直稀里糊涂的,弄不清到底怎么回事,重温知识,对此才稍加了解,希尔排序就是插入排序,不过它对插入排序进行了一些优化,我们之道,插入排序的性能与初始序列的排序状况有关,假设需要的排序效果是从小到达,如果给定的序列原本就是有序的,那么排序的时候只需遍历一遍数组
阅读全文
posted @
2017-08-24 17:17
Judy518
阅读(145)
推荐(0) 编辑
排序之基数排序
摘要:基数排序也是一种不基于比较的排序方法,它的思想是这样的:假设有m个数据,先根据个位数大小对这m个数据进行排序,得到一个新的序列;然后根据十位数大小对这m个数据进行排序,又得到一个新的序列;然后再根据百位、千位,依次类推,直至最高位,最后得到的序列就是有序的序列。那么对每一位的排序是如何进行的呢?位排
阅读全文
posted @
2017-08-24 12:03
Judy518
阅读(149)
推荐(0) 编辑
排序之计数排序
摘要:计数排序并非一种基于比较进行的排序,它是计算一个序列中的值在正常排好序中的序列所处的位置,怎么求解一个数的位置呢?就是利用下脚标进行求解,新建一个数组resu[],数组的长度要比序列中的最大值大1,数组中的值全部初始化为0,然后遍历原序列,将原序列的值i作为新建数组resu[]的下脚表,对resu[
阅读全文
posted @
2017-08-23 22:04
Judy518
阅读(125)
推荐(0) 编辑
排序之堆排序
摘要:堆是一种根节点和孩子结点具有某种关系的二叉树,具体可以分为大顶堆和小顶堆,其中大顶堆中的所有父结点的值比它的孩子结点的值要大,而左右孩子的值不做对比;反之就是小顶堆。 堆排序是根据堆的性质,进行反复的位置调换和堆调整的过程,要进行堆排序,首先就需要创建堆,这里选择创建大顶堆,创建大顶堆涉及到位置调整
阅读全文
posted @
2017-08-23 20:03
Judy518
阅读(135)
推荐(0) 编辑
排序之归并排序
摘要:归并是将两个有序的序列归并为一个有序序列,在这里,“两个有序序列”是指同一个序列中含有两部分“有序”的子序列,我们要做的就是把这两个有序的子序列“合并”,使其整体成为一个有序的序列。为了做到这一点,我们可以创建一个和原序列大小相同的空间(这里用数组表示),然后通过两个指针同时扫描原序列中的两个有序的
阅读全文
posted @
2017-08-22 17:13
Judy518
阅读(196)
推荐(0) 编辑
排序之快速排序
摘要:快速排序是综合性能非常好的一种排序方法,它的思想是:每次选取一个数,将序列中所有比该数据小的数放到一边,反之放到另一边,然后对该数据左边的序列和右边的序列分别利用相同的方法进行继续排序。同样,以数字序列5,3,2,1,4为例,分析快排的排序过程,根据描述可以初步得出排序过程,这里以一个表格的形式展示
阅读全文
posted @
2017-08-21 17:42
Judy518
阅读(130)
推荐(0) 编辑
java注解
摘要:注解(annotation)又称为元数据,是一种代码级别的说明,它为我们在代码中添加信息提供了一种形式化的方法。它是与类、接口、枚举同一个级别的,在编译的时候,注解也将被编译成class文件。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。java中内置的注
阅读全文
posted @
2017-08-21 16:28
Judy518
阅读(125)
推荐(0) 编辑
排序之插入排序
摘要:插入排序是将数据插入到已经有序的序列中,类似扑克玩家整理手中牌的顺序:刚开始玩家只有一张牌,一张牌没有可比性,认为是有序的,然后玩家又抽出一张牌,假设将面值大的插到后面,他会从后向前寻找位置,当找到合适的位置时就将牌插进去。这就是插入排序的原理,假设给定一个组数:5,3,2,1,4,这组数的插入排序
阅读全文
posted @
2017-08-20 22:10
Judy518
阅读(137)
推荐(0) 编辑
java IO之输出流——OutputStream
摘要:OutputStream抽象类是所有输出字节流的超类,输出流接收输出字节,并将这些字节发送到某个接收器。这个接收器可以是字节数组、文件、管道。该类的定义如下: 1 public abstract class OutputStream implements Closeable, Flushable {
阅读全文
posted @
2017-08-20 16:32
Judy518
阅读(3052)
推荐(0) 编辑
java IO之输入流——InputStream
摘要:java的基本输入流是java.io.InputStream,该抽象类定义了输入流的基本输入操作方法,实现自该抽象类的子类都有定义自己的数据源,例如ByteArrayInputStream的构造函数指定了ByteArrayInputStream输入流的数据源必须是一个字符数组。这就可以有多种不同的数
阅读全文
posted @
2017-08-19 21:51
Judy518
阅读(1634)
推荐(0) 编辑
行为模式之中介者
摘要:在结构型设计模式中,有一个外观/门面(Facade)模式,它的作用是降低客户类与子系统内部各类的交互,相当于一个传达室,有客人来时直接与传达室交互,然后由传达室去系统内部为客人办理各种事务,这里中介者也起到类似的作用,但是它是在系统内部各个部门交流的枢纽,也即是说,系统内部不同部门之间就不要直接交互
阅读全文
posted @
2017-08-16 17:16
Judy518
阅读(127)
推荐(0) 编辑
行为模式之命令
摘要:命令模式(Command)是一种对象行为模式,它是把一个请求封装到一个对象中,使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。命令模式是对命令的封装,它把发出命令的责任与执行命令的责任分开,分别委派给不同的对象。如下图是命令模式的结构图: 这里的参与者都有: C
阅读全文
posted @
2017-08-16 16:53
Judy518
阅读(160)
推荐(0) 编辑
行为模式之职责链
摘要:职责链涉及事务处理的传递问题,发出事务处理请求的对象到最终接收事务并进行处理的对象,它们之间可能还有一些参与传递事务处理请求的对象。GOF一书中的描述为:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。职
阅读全文
posted @
2017-08-16 16:36
Judy518
阅读(103)
推荐(0) 编辑
结构型模式总结
摘要:结构型模式描述的如何组合类或对象以获取更大的组合,在这里,结构型类模式是利用继承机制来组合接口或实现;结构性对象模式不是对接口或实现进行组合,而是描述了如何对一些对象进行组合。这里对它们的相似点和不同点作简要分析: 1、Adapter和Bridge 首先二者都给另一个对象提供了一定程度上的间接性,因
阅读全文
posted @
2017-08-16 16:31
Judy518
阅读(114)
推荐(0) 编辑
结构型模式之代理
摘要:希望赶快把常用的设计模式总结一下..... 代理模式(Proxy)是对象的结构模式,GOF著作作为经典之作,这里还是引用它的描述:为其他对象提供一种代理以控制对这个对象的访问。《Java与模式》一书讲得通俗易懂一些,也即是:代理模式给某一对象提供一个代理对象,并由代理对象控制对原对象的引用。所谓代理
阅读全文
posted @
2017-08-16 16:03
Judy518
阅读(108)
推荐(0) 编辑
结构型模式之享元
摘要:享元(Flyweight)模式是有关改善性能的一种方法,GOF对享元的功能定义是:运用共享技术有效地支持大量细粒度的对象。为了做到共享,首先要区分内部状态(Internal State)和外部状态(External State)。内部状态是存储在享元对象的内部,不随环境的变化而有所不同,因而可以共享
阅读全文
posted @
2017-08-14 15:24
Judy518
阅读(143)
推荐(0) 编辑
结构型模式之外观
摘要:外观(Facade)模式又称门面模式,感觉这是设计模式中一个比较容易理解的模式,GOF对其所起作用描述为:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层的接口,这个接口使得这一子系统更加容易使用。Facade的形象化描述可以借用GOF一书中的插图进行表述,如下: 《Java与
阅读全文
posted @
2017-08-14 10:20
Judy518
阅读(113)
推荐(0) 编辑
结构型模式之装饰
摘要:装饰(Decorator)模式是对象结构模式,GOF对它的作用描述为:动态地给一个对象添加一些额外的职责,就增加功能来说,Decorator模式比生成子类更为灵活。现在直接给出GOF著作中的Decorator模式结构图: 实现案例是学习设计模式的好办法,GOF一书中给了一个例子,就是“图形用户界面”
阅读全文
posted @
2017-08-13 23:06
Judy518
阅读(129)
推荐(0) 编辑
结构型模式之组合
摘要:重新看组合/合成(Composite)模式,发现它并不像自己想象的那么简单,单纯从整体和部分关系的角度去理解还是不够的,并且还有一些通俗的模式讲解类的书,由于其举的例子太过“通俗”,以致让人理解产生偏差,不过设计模式本身就是一种程序设计思想,不同的人当然会产生具有偏差性质的理解。 GOF对组合模式的
阅读全文
posted @
2017-08-13 21:15
Judy518
阅读(126)
推荐(0) 编辑
结构型模式之桥接
摘要:GOF对桥接模式(Bridge)的定义是:将抽象部分和它的实现部分分离,使它们可以独立地变化。这里需要记录一些概念,参考自《Java与模式》一书: 抽象化:存在于多个实体中的共同的概念性联系,例如:一组对象如果有相同的概念性联系,则可以用一个共同的类加以描述;如果一些类有相同的概念性联系,则可以用一
阅读全文
posted @
2017-08-13 15:14
Judy518
阅读(150)
推荐(0) 编辑