摘要: 原文链接:http://www.cubrid.org/blog/dev-platform/how-to-monitor-java-garbage-collection/这是"成为GC专家系列"文章的第二篇。在第一篇理解Java垃圾回收中我们学习了几种不同的GC算法的处理过程,GC的工作方式,新生代与... 阅读全文
posted @ 2016-01-05 23:35 utopiar 阅读(1722) 评论(3) 推荐(1) 编辑
摘要: 原文链接:http://www.cubrid.org/blog/dev-platform/understanding-java-garbage-collection/了解Java的垃圾回收(GC)原理能给我们带来什么好处?对于软件工程师来说,满足技术好奇心可算是一个,但重要的是理解GC能帮忙我们更好... 阅读全文
posted @ 2016-01-01 22:52 utopiar 阅读(1916) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍了Java虚拟机、字节码和class文件结构、JVM执行流程和类加载、JVM内存结构、JVM执行引擎与动态编译。通过对本文的学习,可以对JVM的运行机制有所了解。 阅读全文
posted @ 2015-12-26 23:55 utopiar 阅读(102266) 评论(7) 推荐(12) 编辑
摘要: 日志框架:提供日志调用的接口,实际的日志输出委托给日志系统实现。JCL(Jakarta Commons Logging):比较流行的日志框架,很多框架都依赖JCL,例如Spring等。SLF4j:提供新的API,初衷是配合Logback使用,但同时兼容Log4j。日志系统:负责输出日志Log4j:较... 阅读全文
posted @ 2014-05-16 18:01 utopiar 阅读(2800) 评论(2) 推荐(1) 编辑
摘要: Java Thread wait, notify和notifyAll示例Java上的Object类定义了三个final方法用于不同线程间关于某资源上的锁状态交互,这三个方法是:wait(), notify()和notifyAll()。当前线程可以在任意对象上调用上述的方法,前提是当前线程是此对象的监... 阅读全文
posted @ 2014-04-13 22:21 utopiar 阅读(966) 评论(0) 推荐(0) 编辑
摘要: Java Thread Sleep示例java.lang.Thread sleep(long millis)方法被用来暂停当前线程的执行,暂停时间由方法参数指定,单位为毫秒。注意参数不能为负数,否则程序将会抛出IllegalArgumentException。还有另外一个sleep(long mil... 阅读全文
posted @ 2014-04-13 16:55 utopiar 阅读(6137) 评论(1) 推荐(1) 编辑
摘要: Java Thread join示例与详解Java Thread join方法用来暂停当前线程直到join操作上的线程结束。java中有三个重载的join方法:public final void join():此方法会把当前线程变为wait,直到执行join操作的线程结束,如果该线程在执行中被中断,则会抛出InterruptedException。public final synchronized void join(long millis):此方法会把当前线程变为wait,直到执行join操作的线程结束或者在执行join后等待millis的时间。因为线程调度依赖于操作系统的实现,因为这并不能 阅读全文
posted @ 2014-04-12 23:42 utopiar 阅读(2553) 评论(1) 推荐(0) 编辑
摘要: 线程生命周期-理解Java中的线程状态在多线程编程环境下,理解线程生命周期和线程状态非常重要。在上一篇教程中,我们已经学习了如何创建java线程:实现Runnable接口或者成为Thread的子类,但启动一个java线程,则需要先创建一个Thread实例,然后调用此实例上的start(),这个线程就被启动了并会调用run()方法执行任务。线程状态下图展示了java线程中的几种不同状态,我们创建一个线程并启动它,但该线程何时从状态Runnable变为Running以及Blocked则取决于操作系统的线程调度实现,所以Java对状态变更是无能为力的。New当使用new操作创建一个新Thread实例 阅读全文
posted @ 2014-04-12 21:59 utopiar 阅读(1278) 评论(0) 推荐(0) 编辑
摘要: Non-blocking(NIO)Server Push and Servlet 3在我的前一篇文章写道如何期待成熟的使用node.js。假定有一个框架,基于该框架,开发者只需要定义协议及相关的handlers,并把精力放到有用的业务逻辑上,用你之前已在Java EE中熟练使用的方式进行业务。在那该文章中,我开始接触一种称为Comet的技术。曾经,我以为在传统的基于HTTP的web应用中,非阻塞服务(non-blocing server)并不比阻塞服务具有优势,所以设计了自己的协议和一个VOIP服务,用于给当前连接着的clients输出二进制数据(streaming binary data)。 阅读全文
posted @ 2014-03-31 23:30 utopiar 阅读(1349) 评论(1) 推荐(0) 编辑
摘要: 原文:ALCA in Redis-land一篇对使用Redis在NoSQL的世界中冒险之旅的总结。The legs of our journey像每次出发一样,先对我们这次的旅程路线做个介绍:Redis? What is it?Available datatypesWhere are my tables?A simple use caseBack home探索之一:Redis? What is it?简而言之,Redis是一种强大的key-value数据库,之所以强大有两点:响应速度快(所以数据内存存储,只在必要时写入磁盘),特性丰富(支持多种数据类型,以及各类型上的复杂操作)。事实上,Red 阅读全文
posted @ 2014-03-23 00:34 utopiar 阅读(3572) 评论(5) 推荐(6) 编辑