摘要: 基础故障处理工具 jps:虚拟机进程状况工具 (JVM Process Status Tool),主要用来输出JVM中运行的进程状态信息。 语法格式: jps [ options ] [ hostid ] 选项 作用 -q 只输出进程id,省略主类信息 -m 输出虚拟机进程启动时传递给主类main( 阅读全文
posted @ 2020-09-25 23:32 天上的白云贼白了 阅读(214) 评论(0) 推荐(0) 编辑
摘要: Java内存模型 内存模型: 在特定的操作协议下,对特定的内存或高速缓存进行读写访问的过程抽象。 Java内存模型主要关注在虚拟机中把变量值存储到内存和从内存中取出变量值这样的底层细节。 主内存与工作内存 Java内存模型规定: 所有的变量都存储在主内存(Main Memory)中。每条线程还有自己 阅读全文
posted @ 2020-09-23 01:06 天上的白云贼白了 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 哪些内存需要回收? 垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)了。 引用计数算法 在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能 阅读全文
posted @ 2020-09-20 22:58 天上的白云贼白了 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 分治(divide and conquer) 分治的核心思想是分而治之,即将原问题分解成 n 个规模较小,并且结构与原问题相似的子问题,递归的解决这些子问题,然后合并结果就得到原问题的解。 从定义看,分治有些类似递归,但区别在于,分治算法是一种处理问题的思想,而递归是一种编程技巧。实际上,分治算法一 阅读全文
posted @ 2020-09-19 01:01 天上的白云贼白了 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 递归(Recursion) 方法或函数调用自身的方式称为递归调用,调用称为递,返回称为归。递归是一种应用非常广泛的算法(或者编程技巧),DFS深度优先搜索、前中后序二叉树遍历等都要用到递归。 斐波那契数列是典型的递归案例: F(0) = 0,F(1) = 1,F(n) = F(n-1) + F(n- 阅读全文
posted @ 2020-09-17 00:45 天上的白云贼白了 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 树(Tree) 如图,树是非线性表结构,E 节点是 J 节点的父节点,J 节点是 E 节点的子节点。G、H 节点的父节点是同一个节点,所以它们之间互称为兄弟节点。没有父节点的节点叫做根节点,也就是图中的节点 A。没有子节点的节点叫做叶子节点或者叶节点,比如图中的 G、H、I、J、K、L 都是叶子节点 阅读全文
posted @ 2020-09-16 00:19 天上的白云贼白了 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 哈希表 散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存储存位置的数据结构。它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数(Hash Function),存放记录的数组称做散列表。 哈希表工程实践: 阅读全文
posted @ 2020-09-15 00:00 天上的白云贼白了 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 概述 JVM字节码执行引擎功能基本上就是输入字节码文件,然后对字节码进行解析并处理,最后输出执行结果。实现方式可能有通过解释器直接解释执行字节码,或者通过即时编译器产生本地代码,也就是编译执行,也可能两者皆有。 栈帧 栈帧是用于支持JVM进行方法调用和方法执行的数据结构,栈帧随方法调用创建,方法结束 阅读全文
posted @ 2020-09-13 23:09 天上的白云贼白了 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 栈 Stack 栈是限制插入和删除只能在一个位置上进行的表,该位置是表的末端即栈的顶端(top),对栈的基本操作有push(进栈)、pop(出栈)。 先进后出(FILO, first-in-last-out), 查询O(n) Java Stack java.lang.Object java.util 阅读全文
posted @ 2020-09-13 01:26 天上的白云贼白了 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 运行时数据区 程序计数器/PC寄存器 线程私有,程序计数器是一块较小的内存空间,当前线程所执行的字节码的行号指示器。 字节码解释器工作时就是通过改变计数器的值来选择下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成。 如果线程在执行java方法,计数器记录 阅读全文
posted @ 2020-09-12 17:29 天上的白云贼白了 阅读(152) 评论(0) 推荐(0) 编辑