摘要: JVM可以检测到synchronized导致的死锁,考虑下面的代码: public class ClassA { public static String monitor1 = "monitor1"; public static String monitor2 = "monitor2"; publi 阅读全文
posted @ 2016-03-07 10:44 熊猫太郎 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 不是你写的那样 int i; String a=new String("++++"+i);或者 String a="+++"+i; 编译器编译成 new StringBuilder("+++").append(i).toString(); 阅读全文
posted @ 2016-03-07 10:35 熊猫太郎 阅读(118) 评论(0) 推荐(0) 编辑
摘要: jvisualvm是SUN/Oracle JDK自带的JVM运行状态监测工具,能够获取JVM运行状态的各种信息,包括Thread Dump和Heap Dump,在可以使用的情况下建议使用此工具监测JVM运行状态。 连接远程JVM jvisualvm只能远程连接启用了JMX远程监测的JVM,JVM启动 阅读全文
posted @ 2016-03-07 10:29 熊猫太郎 阅读(728) 评论(0) 推荐(0) 编辑
摘要: Thread Dump/线程转储 Thread Dump中包含下列信息: 所有JVM中启动了但是未结束的Thread列表; 每个Thread当前所处的状态及其调用栈(Stack Trace); JVM内部是否出现死锁(Deadlock); 基于Thread Dump信息可以确认JVM当前的执行状态, 阅读全文
posted @ 2016-03-07 10:12 熊猫太郎 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 通常内存溢出时JVM会提示具体的内存溢出原因,下面是几种常见的情况及简要的原因说明及相关的JVM配置。 栈溢出:StackOverflowError JVM输出信息:“java.lang.StackOverflowError”。 JVM相关机制:JVM在执行Java方法调用时需要使用栈传递调用参数、返回值以及保存局部变量表,通常组织为栈帧(Stack Frame)结构。从概念上说,每次Jav... 阅读全文
posted @ 2016-03-07 10:02 熊猫太郎 阅读(275) 评论(0) 推荐(0) 编辑
摘要: JVM运行过程中有可能异常退出,即JVM进程忽然消失,此时通常不是Java Stack或者Java Heap出现异常,而是与OS本地堆栈有关。JVM中运行的应用系统通常难以处理此问题,但如果应用系统中使用了JNI,则有可能与此部分代码相关。 在Windows上,JVM异常退出时通常会生成“hs_er 阅读全文
posted @ 2016-03-07 09:50 熊猫太郎 阅读(2323) 评论(0) 推荐(0) 编辑
摘要: 解决的问题 Paxos要解决的问题,是分布式系统中的一致性问题。在分布式系统中,为了保证数据的高可用,通常,我们会将数据保留多个副本,这些副本会放置在不同的物理的机器上。为了对用户提供正确的读/写/删/改等语义,我们需要保证这些放置在不同物理机器上的副本是一致 如上图所示,Client会将数据写到三 阅读全文
posted @ 2016-03-06 21:11 熊猫太郎 阅读(905) 评论(0) 推荐(0) 编辑
摘要: 算法说明都是已ppt的形式展开说明的,需要ppt的私聊 阅读全文
posted @ 2016-03-06 20:42 熊猫太郎 阅读(297) 评论(0) 推荐(0) 编辑
摘要: Frequent Pattern频繁模式:频繁地出现在数据集中的模式,Apriori算法是一种挖掘关联规则的频繁项集算法,算法过程描述如下: 前提条件:最小支持度为2 数据集,有四个事务数据 ,分别的商品包括: 事务1:1,3,4(商品id) 事务2:2,3,5 事务3:1,2,3,5 事务4:2, 阅读全文
posted @ 2016-03-03 16:33 熊猫太郎 阅读(299) 评论(0) 推荐(0) 编辑
摘要: JAVA任务取消方式一般有2种 第一种设置某个取消标志,任务定期查看该标志,这种方式存在任务取消并不能保证任务立即取消,更糟糕的是有可能任务永远不会结束 第二种是利用的中断机制,JVM并不能保证阻塞方法检测到中断的速度,但是实际中还是非常快的。 实例一(使用取消标志,会发现取消的任务还执行中,只有执 阅读全文
posted @ 2016-03-03 16:18 熊猫太郎 阅读(350) 评论(0) 推荐(0) 编辑