摘要: 图 概念 无向图:边是顶点的无序对 有向图:边是顶点的有序对 弧:有向图的边 网:边带权的图 子图:边和顶点都是某图的子集的图为该图的子集 完全图:所有顶点互连的无向图 稀疏图:边或弧的个数 $e = nlogn$ 度:顶点关联的边数 入度:指向该顶点的边数 出度:该顶点指出的边数 简单路径:顶点不 阅读全文
posted @ 2020-03-31 17:05 JL916 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 第8章 虚拟机字节码执行引擎 “虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持 阅读全文
posted @ 2020-03-29 01:55 JL916 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 树 "二叉树" "二叉查找树(BST)" "平衡二叉树(AVL)" "B 树" "字典树" "哈夫曼树" 二叉树 二叉树的第 $i$ 层结点数不多于 $2^{i 1}$ 深度为 $k$ 的二叉树结点数不多于 $2^k 1$ __满二叉树__ :指的是深度为 $k$ 且含有 $2^k 1$ 个结点的二 阅读全文
posted @ 2020-03-25 12:54 JL916 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 查找 二分查找 二叉查找树 平衡二叉树 B 树 2-3 树 红黑树 B+ 树 散列表 二分查找 public class BinarySearch<T extends Comparable<T>> { private T[] arr; public BinarySearch(T[] arr) { t 阅读全文
posted @ 2020-03-22 17:44 JL916 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 排序 | 算法 | 稳定性 | 时间复杂度 | 空间复杂度 | | | | | | | "选择排序" | N | $N^2$ | 1| | "冒泡排序" | Y | $N^2$ | 1| | "插入排序" | Y | $N~N^2$ | 1| | "希尔排序" | N | $N^{(1.3 2)}$ 阅读全文
posted @ 2020-03-21 16:39 JL916 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 第6章 类文件结构 Java虚拟机不与包括Java语言在内的任何程序语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指令集、符号表以及若干其他辅助信息。 Class类文件的结构 任何一个Class文件都对应着唯一的一个类或接口的定义信息,但是反过 阅读全文
posted @ 2020-03-08 23:59 JL916 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 定义 final 类,不能被继承 实现 Serializable 接口,可序列化 实现 Comparable 接口,可比较大小 实现 CharSequence 接口,StringBuffer和Stringbuilder同样实现该接口 属性 hash:缓存hashcode,String经常被比较,将h 阅读全文
posted @ 2020-03-07 16:55 JL916 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 第3章 垃圾收集器与内存分配策略 垃圾收集需要完成的三件事情: 哪些内存需要回收? 什么时候回收? 如何回收? 一、 回收内容 程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定 阅读全文
posted @ 2020-03-04 17:11 JL916 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 第2章 Java内存区域与内存溢出异常 一、 运行时数据区域 1. 程序计数器 Program Counter Register 程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。 由于Java虚拟机的多线程是通过线程轮流切换、分配处理器执行时间的方式来实现的,在任何一 阅读全文
posted @ 2020-03-02 13:23 JL916 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 第1章 走进 Java Java 技术体系 从广义上讲,Clojure、JRuby、Groovy等运行于Java虚拟机上的语言及其相关的程序都 属于Java技术体系中的一员。如果仅从传统意义上来看,Sun官方所定义的Java技术体系包括以下几个组成部分: Java程序设计语言 各种硬件平台上的Jav 阅读全文
posted @ 2020-03-01 18:42 JL916 阅读(446) 评论(0) 推荐(0) 编辑