上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 43 下一页
摘要: 堆排序 Heap Sort 堆排序是一种选择排序,其时间复杂度为O(nlogn)。 堆的定义 n个元素的序列{k1,k2,…,kn}当且仅当满足下列关系之一时,称之为堆。 情形1:ki <= k2i 且ki <= k2i+1 (最小化堆或小顶堆) 情形2:ki >= k2i 且ki >= k2i+1 阅读全文
posted @ 2017-09-11 21:27 qlky 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 根据前序遍历和中序遍历求后序遍历 一道HULU的笔试题(How I wish yesterday once more) 假设有棵树,长下面这个样子,它的前序遍历,中序遍历,后续遍历都很容易知道。 PreOrder: GDAFEMHZ InOrder: ADEFGHMZ PostOrder: AEFD 阅读全文
posted @ 2017-09-11 21:09 qlky 阅读(3360) 评论(0) 推荐(0) 编辑
摘要: 【深入Java虚拟机】之八:Java垃圾收集机制 对象引用 Java中的垃圾回收一般是在Java堆中进行,因为堆中几乎存放了Java中所有的对象实例。谈到Java堆中的垃圾回收,自然要谈到引用。在JDK1.2之前,Java中的引用定义很很纯粹:如果reference类型的数据中存储的数值代表的是另外 阅读全文
posted @ 2017-08-29 23:55 qlky 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 【深入Java虚拟机】之七:Javac编译与JIT编译 编译过程 不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理机的目标代码或虚拟机能执行的指令集之前,都会按照如下图所示的各个步骤进行: 其中绿色的模块可以选择性实现。很容易看出,上图中间的那条分支是解释执行的过程(即一条字节码一 阅读全文
posted @ 2017-08-26 23:45 qlky 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 【深入Java虚拟机】之六:Java语法糖 语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家Peter.J.Landin发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。Java中最常用的语法糖主要有泛型、变长参数、条件编 阅读全文
posted @ 2017-08-24 15:25 qlky 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派 方法解析 Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址。这个特性给Java带来了更强大的动态扩展能力,使得可以在类运行期间才能确 阅读全文
posted @ 2017-08-23 23:23 qlky 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 【深入Java虚拟机】之三:类初始化 类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码。虚拟机规范严格规定了有且只有四种情况必须立即对类进行初始化: 遇到new、getstatic、putstatic、invokestatic这四条字节码指令时,如果类还没有进行 阅读全文
posted @ 2017-08-22 23:55 qlky 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 【深入Java虚拟机】之四:类加载机制 类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示: 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初 阅读全文
posted @ 2017-08-21 23:45 qlky 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 【深入Java虚拟机】之四:类加载机制 类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示: 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初 阅读全文
posted @ 2017-08-20 23:49 qlky 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 【深入Java虚拟机】之二:Class类文件结构 平台无关性 Java是与平台无关的语言,这得益于Java源代码编译后生成的存储字节码的文件,即Class文件,以及Java虚拟机的实现。不仅使用Java编译器可以把Java代码编译成存储字节码的Class文件,使用JRuby等其他语言的编译器也可以把 阅读全文
posted @ 2017-08-20 22:43 qlky 阅读(397) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 43 下一页