
java性能
DT平哥
做好自己
展开
-
性能分析系列
一、开发者的自测利器-Hprof命令1、示例演示例子程序:/** * PROJECT_NAME: test * DATE: 16/7/22 * CREATE BY: chao.cheng **/public class HProfTest { public void slowMethod() { try {转载 2016-10-05 08:10:12 · 372 阅读 · 0 评论 -
多线程内存溢出产生的实战分析
Caused by: java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) at java.lang.Thread.start(Thread.java:597) at java.util.Timer.init>(Time转载 2016-10-05 08:16:06 · 1291 阅读 · 0 评论 -
HashMap实现原理分析
概述HashMap是Java集合框架(JavaCollection Framework, JCF)中一个基础类,它在1998年12月,加入到Java 2版本中。在此之后,Map接口本身除了在Java 5中引入了泛型以外,再没有发生过明显变化。然而HashMap的实现,则为了提升性能,不断地在改变。1.hash表的复习在正式学习HashMap源码之前,先复习一下hash表的实现。转载 2016-10-06 21:01:10 · 1017 阅读 · 0 评论 -
交换排序与插入排序
排序算法进行分类:其中每个算法都有其相应的时间复杂度和空间复杂度,这里我也对它们做了一个汇总:排序算法时间复杂度空间复杂度稳定性复杂性平均情况最坏情况最好情况冒泡排序O(n^2)O(n^2)O(n)O(1转载 2016-10-06 21:11:31 · 1302 阅读 · 0 评论 -
选择排序与归并排序
选择排序直接选择排序【基本思想】每一趟在待排序列中选出最小(或最大)的元素,依次放在已排好序的元素序列后面(或前面),直至全部的元素排完为止。直接选择排序也称为简单选择排序。首先在待排序列中选出最小的元素,将它与第一个位置上的元素交换。然后选出次小的元素,将它与第二个位置上的元素交换。以此类推,直至所有元素排成递增序列为止。选择排序是对整体的选择。只有在确定转载 2016-10-06 21:37:33 · 627 阅读 · 0 评论 -
基数排序与计数排序
基数排序【基本思想】首先设立r个队列,对列编号分别为0~r-1,r为待排序列中元素的基数(例如10进制数,则r=10),然后按照下面的规则对元素进行分配收集1,先按最低有效位的值,把n个元素分配到上述的r个队列中,然后从小到大将个队列中的元素依次收集起来2,再按次低有效位的值把刚收集起来的关键字分配到r个队列中,重复收集工作3,重复地进行上述分配和收集,直到最高有效位。(也就是转载 2016-10-06 21:39:40 · 997 阅读 · 0 评论 -
KMP模式匹配算法
首先我们需要了解什么是模式匹配?子串定位运算又称为模式匹配(Pattern Matching)或串匹配(String Matching)。在串匹配中,一般将主串称为目标串,将子串称为模式串。本篇博客统一用S表示目标串,T表示模式串,将从目标串S中查找模式串T的过程称为模式匹配。虽然我们的主角是KMP模式匹配算法,但我们还是要先从暴力匹配算法讲起,通过发现暴力匹配算法存在的问题,由此来引出K转载 2016-10-06 21:43:29 · 251 阅读 · 0 评论 -
JVM理解
Dalvik虚拟机能不能执行class文件?为什么不能执行class文件?答:不能,Dakvik并不是一个Java虚拟机,它没有遵循Java虚拟机规范,不能执行Java的class文件,使用的是寄存器架构而不是JVM中常见的栈架构,但是它与Java又有着千丝万缕的关系,它执行的dex文件可以通过class文件转化而来。JVM内存区域我们在编写程序时,经常会遇到OOM(o转载 2016-10-06 22:00:23 · 190 阅读 · 0 评论