死循环、死锁、阻塞、页面打开慢等问题,打线程dump是最好的解决问题的途径。所谓线程dump也就是线程堆栈,获取到线程堆栈有两步: (1)获取到线程的pid,可以通过使用jps命令,在Linux环境下还可以使用ps -ef | grep java (2)打印线程堆栈,可以通过使用jstack pid ...
分类:
编程语言 时间:
2019-10-16 17:42:12
阅读次数:
120
队列 是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 栈(stack) 又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作 ...
分类:
其他好文 时间:
2019-10-13 23:42:01
阅读次数:
89
递归的概念:直接或者间接地调用自身的算法称为递归算法。 递归让一些复杂的问题变得简单易懂易于分析,如汉诺塔问题和Ackerman函数,在排序快排算法和归并排序算法中也有递归的运用。 汉诺塔: ackerman函数: 递归的缺点:需要不断开拓堆栈空间,占用空间大,可能导致内存溢出,并且运行效率低,不能 ...
分类:
编程语言 时间:
2019-10-13 18:29:56
阅读次数:
93
线程,有时被称为轻量进程,是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程不拥有私有的系统资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进 ...
分类:
编程语言 时间:
2019-10-13 15:35:57
阅读次数:
117
程序运行时,我们最好对数据保存到什么地方做到心中有数。特别要注意的是内存的分配。有六个地方都可以保存数据:寄存器这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部。然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配。我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹。堆栈驻留于常规RAM(随机访问存储器)区域,但可通过它的“堆栈指针”获得处理的直
分类:
编程语言 时间:
2019-10-13 10:35:23
阅读次数:
117
前言 这篇文章主要是鸟瞰数据结构和算法,不涉及到具体的细节。 阐述逻辑通过黄金思维圈中的是什么,为什么展开。 内容包括: 什么是数据结构 为什么需要需要数据结构 数据结构分类 什么是算法 为什么需要算法 算法的衡量标准 关于数据结构 什么是数据结构? 逻辑结构:描述数据之间的关系 物理结构:描述数据 ...
分类:
编程语言 时间:
2019-10-12 21:02:08
阅读次数:
97
package cn.com.aia.grouplife.utils; import org.apache.commons.lang3.StringUtils; import java.io.IOException; import java.io.PrintWriter; import java.i... ...
分类:
其他好文 时间:
2019-10-12 11:14:12
阅读次数:
105
1:工具地址 https://gceasy.io/ft-dashboard-web.jsp 2:在线分析结果 ...
分类:
编程语言 时间:
2019-10-11 18:45:16
阅读次数:
301
1、通过top 查看当前java 进程 2、通过 top -p 19528 查看进程下的线程 3、查看CPU使用率较高的线程,记录线程号 4、线程号转换为16进制,printf "%x/n" 22131 (22131为线程号:pid) 5、打印堆栈 jstack 19528 > duizhan.lo ...
分类:
编程语言 时间:
2019-10-11 18:12:46
阅读次数:
109
在类里面成员函数的初始值是多少了?(取决于创建对象的位置,是在堆、栈、还是在静态存储区中创建。) 例如: 运行结果: 可以看出,对象只是变量,所以在不同的地方定义变量,所的到的初始值也不同。 在堆上定义:为随机数 在栈上定义:为随机数 在静态存储区上定义:因为静态存储区中变量默认为0 ,所以为0 这 ...
分类:
编程语言 时间:
2019-10-11 01:07:25
阅读次数:
97