08 2018 档案
摘要:``` package test; public class MergeSort { public static void main(String[] args) { // TODO Auto generated method stub int[] arr = { 10, 9, 8, 7, 6, 5
阅读全文
摘要:``` package test; public class HeapSort { public static void main(String[] args) { int[] arr = {10,9,8,7,6,5,4,3,2,1}; System.out.print("排序前;"); print
阅读全文
摘要:``` package demo; public class ShellSort { public static void main(String[] args) { int[] arr = {5,4,3,2,1,0}; printArr(arr); shellSort(arr); printArr
阅读全文
摘要:定义 给某一对象提供一个代理对象,并由代理对象控制对原对象的引用。 静态代理 有些情况下,一个客户不想或者不能够直接引用一个对象,可以通过代理对象在客户端和目标对象之间起到中介作用。代理模式中的角色有: 1、抽象对象角色 声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以
阅读全文
摘要:``` package demo; / 快速排序; @author Lynn / public class QuickSort { public static void main(String[] args) { int[] arr = { 50, 10, 90, 30, 70, 40, 80, 6
阅读全文
摘要:``` package demo; / 插入排序; @author Lynn / public class InsertionSort { public static void main(String[] args) { int[] arr = {10,7,2,4,8,6,1,9}; System.
阅读全文
摘要:
阅读全文
摘要:``` package demo; / 简单排序 时间复杂度O(n^2) 不稳定; @author Lynn / public class SimpleSelectSort { public static void main(String[] args) { int[] arr = {10,7,2,
阅读全文
摘要:概念 二叉排序树,又称二叉查找树。它或者是一棵空树,或者是具有下列性质的二叉树: ①若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值。 ② 若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值。 ③ 它的左右子树也分别为二叉排序树。
阅读全文
摘要:过期的suspend()、resume()、stop() 不建议使用这三个函数来停止线程,以suspend()方法为例,在调用后,线程不会释放已经占有的资源(比如锁),而是占有着资源进入睡眠状态,这样容易引起死锁问题。同样,stop()方法在终结一个线程是不会保证线程的资源正常释放,通常识没有给予线
阅读全文
摘要:使用邻接矩阵进行存储 原图 调整后 package graph; import java.util.ArrayList; import java.util.LinkedList; public class BFSTraverse { private static ArrayList list = n
阅读全文
摘要:使用邻接矩阵进行存储; package graph; import java.util.ArrayList; public class DFSTraverse { private static ArrayList list = new ArrayList(); // 邻接矩阵存储; public s
阅读全文
摘要: volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”,即当一个线程修改一个共享变量是,另一个线程能够读到这个修改的值。volatile比synchronized的使用和执行成本低,因为它不会引起上下文的切换和
阅读全文
摘要:二叉树的四种遍历方式:前序遍历、中序遍历、后序遍历和层序遍历 运行结果
阅读全文
摘要:本文是参考文末的文章自己动手写的笔记 反射 反射就是把java类中的各种成分映射成一个个的Java对象。 获取Class对象的三种方式 1. Object —— getClass(); 2. 任何数据类型(包括基本数据类型)都有一个“静态”的class属性。 3. 通过Class类的静态方法:for
阅读全文
摘要:泛型简而言之就是类型的参数化 泛型分为泛型接口、泛型类和泛型方法,不存在泛型数组。 举例 在于Java中的泛型这一概念提出的目的,导致其只是作用于代码编译阶段,在编译过程中,对于正确检验泛型结果后,会将泛型的相关信息擦出,也就是说,成功编译过后的class文件中是不包含任何泛型信息的。泛型信息不会进
阅读全文
摘要:定义 确保一个类只有一个实例,并提供一个全局访问点。 延迟实例化 注意对于多线程可能存在同时创建出多个实例出来, 延迟实例化的改进 不延迟 双重检查加锁
阅读全文
摘要:题目 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 剑指offer思路 通过对比前序遍历和对称前序遍历的序列是否相同来判定,这里所谓的对称前序遍历算法是指,遍历的的时候采用根节点、右节点和左节点的次序; 自己写的Low代码
阅读全文
摘要:题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 思路 刚开始没有什么思路,但是通过画图分析就知道数组的最后一个是二叉树的根节点,它将数组的剩余部分分成了两部分,前一部分小于根节点的值,有一部分大于根界定
阅读全文
摘要:以hotpot为例 Serial收集器 Serial收集器是最基本、发展最悠久的收集器。它是一个单线程的收集器,这不仅仅意味着它只使用一个CPU或一条收集线程去完成垃圾收集工作,更重要的是在它进行垃圾收集时,必须暂停所有其他的工作线程,直到它收集结束。
阅读全文