接口我个人的理解, 其实是一种设计工具, 提供了快速的多态方法, 进一步提高解耦关系. Java编程思想这里还说了几种设计模式, 要仔细看看. 抽象类 接口 多继承 工厂方法 内部类 抽象类 抽象类和抽象方法我个人在编写代码的时候用的还是挺少的. 方法加上abstract 然后没有方法体, 就是抽象
同名域覆盖 基类A 子类简单继承A 子类设置同名域 子类重写getS方法 子类重写getS和setS方法 子类添加父类方法调用 Python中的情况 最近看完CSAPP之后,重新拿着《Java编程思想》这本书复习Java, 发现在年初快速过了一遍Java的时候,还有很多小细节没有注意。这两天看到“第
构造器 终结回收和垃圾回收 数组 Enum 枚举类 访问权限控制 构造器 构造器的本质就是为对象分配空间, 然后初始化, 返回指向对象的指针. 默认构造器和指定构造器的关系比较熟悉了. Java中初始化和创建捆绑在一起, 并不能像C系语言一样把声明和初始化分离. 构造器没有返回值. this也可以用
Java在年初的时候其实是借着会了一门Python的东风, 迅速的把面向对象的思想看了一遍, 然后就上手搞Spring了. 在经历了初步的入门阶段, 会写简单的业务代码之后, 现在看完了CSAPP, 简单了解了算法, 要再按照-底层-数据结构-程序语言这样一个循环来看一下. 顺便也再看一下, 在看完
有向图指的是边是单向的, 每条边连接的两个顶点是一个有序对, 只能从一个点到另外一个点. 有向图数据结构 深度优先算法 - 可达性和路径搜索 环和有向无环图 深度优先搜索 - 顶点排序 有向图的强连通性 - 连通分量 后记 有向图数据结构 有向图有一些概念, 首先v 和 w两个顶点之间的关系有如下四
算法第一遍看真的是只能面上过过, 难度还是挺高的, 不过至少原理懂了一些. 前边的排序和散列表除了红黑树删除那部分之外, 其他的倒也能懂, 问题不大. 图算法之前接触的很少, 现在来试着了解一下吧. 顶点与边 图的常用API 图的数据结构 搜索图的API 深度优先搜索 - 连通性问题 深度优先搜索
如果一个符号表里所有的键都是小整数, 那么用数组存放无序的符号表, 其速度要快很多, 无论是插入还查找, 都是常数级别. 现实中的键不可能这么好, 所以需要一种方法, 就是将任意类型的键转换成一个范围内的索引. 此外还有一个问题, 就是不同的键转换成相同的索引, 这时候就会发生碰撞, 即两个实际上不
只要是一棵树, 就得看看如何生长, 如果树不平衡, 在进行查找操作的时候, 就可能出现性能低下. 什么是平衡呢, 在排序的时候已经简单的用图表示过, 可以加权或者将小树附加到大树上. 平衡二叉树的思路也是如此. 那么什么是平衡呢, 所谓平衡, 就是指所有空节点到根节点的距离应该是相同的. 看了一晚上
符号表及API 有序符号表 二叉查找树 - 核心实现 二叉查找树 - 排序相关API 二叉查找树 - 删除 二叉查找树 - 遍历 符号表 简单的说, 符号表就类似字典, 是键和值的对应关系. 在这样一种抽象数据结构之下, 隐藏着算法和对应的数据结构. 对于一个字典, 核心的操作是put, 即插入一对
优先队列 二叉堆 二叉堆的操作: 下沉和上浮 优先队列的实现 堆排序 排序总结 优先队列 算法这书看到现在, 基本上能看明白算法讲什么和代码, 但是数学分析真的是看不来, 太刺激了. 堆排序是从一个优先队列的抽象数据结构引入的. 所谓优先队列, 就是一个某个长度的队列, 可以放入元素, 但是取出的时