<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Turn myself into a beast.]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jep1983</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jep1983]]></copyright><item><title><![CDATA[并发编程陷阱系列(八)不要吞食CountDownLatch的线程异常]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84434784</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84434784</guid><author>jep1983</author><pubDate>Thu, 23 May 2013 19:58:49 +0800</pubDate><description><![CDATA[
 之前的文章中已经介绍了无处不在的InterruptedException的处理方式了，使用CountDownLatch也会有类似的问题（正确的处理方式见下面代码： Thread.currentThread().interrupt()），顺便复习下CountDownLatch的使用方法。
 
在一些应用中，有多个线程，某个线程会在其他线程执行完毕之后才开始执行。
比如，想象有一个程序先下...]]></description><category></category></item><item><title><![CDATA[并发编程陷阱系列(七)读多写少使用synchronized导致性能下降]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84427760</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84427760</guid><author>jep1983</author><pubDate>Tue, 07 May 2013 19:19:28 +0800</pubDate><description><![CDATA[
对并发读的情况进行测试：
public class SynchronizedDemo {
	static SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss&quot;);

	public static void main(String[] args) throws Exception {
		Data data ...]]></description><category></category></item><item><title><![CDATA[webservice复习-helloworld]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84425351</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84425351</guid><author>jep1983</author><pubDate>Wed, 01 May 2013 17:07:02 +0800</pubDate><description><![CDATA[
什么是webservice基于Web的服务。它使用Web(HTTP)方式，接收和响应外部系统的某种请求，从而实现远程调用。为了符合WebService标准，所有你使用的数据类型都必须被转换为XSD类型(Xml Schema   Definition)。如想让它使用在不同平台和不同软件的不同组织间传递，还需要用某种东西将它包装起来。这种东西就是一种协议，如 SOAP。 目前标准的WebServic...]]></description><category></category></item><item><title><![CDATA[并发编程陷阱系列(六)高并发环境下使用性能较低的Map]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84423433</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84423433</guid><author>jep1983</author><pubDate>Thu, 25 Apr 2013 21:02:03 +0800</pubDate><description><![CDATA[
hashtable是线程安全的，但为了保障线程安全，get, put, contains等多个方法都被添加了synchronized，源码片段如下：
   public synchronized V get(Object key) {
	Entry tab[] = table;
	int hash = key.hashCode();
	int index = (hash &amp;amp; 0...]]></description><category></category></item><item><title><![CDATA[并发编程陷阱系列(五)double check]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84414688</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84414688</guid><author>jep1983</author><pubDate>Tue, 02 Apr 2013 10:28:17 +0800</pubDate><description><![CDATA[
public static Singleton getInstance()
{
  if (instance == null)
  {
    synchronized(Singleton.class) {  //1
      if (instance == null)          //2
        instance = new Singleton();  //3
...]]></description><category></category></item><item><title><![CDATA[并发编程陷阱系列(四)volatile与变量脏读]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84414685</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84414685</guid><author>jep1983</author><pubDate>Tue, 02 Apr 2013 10:27:01 +0800</pubDate><description><![CDATA[
预备知识：
每一个线程运行时都有一个线程栈，线程栈保存了线程运行时候变量值信息。当线程访问某一个对象时候值的时候，首先通过对象的引用找到对应在堆内存的变量的值，然后把堆内存变量的具体值load到线程本地内存中，建立一个变量副本，之后线程就不再和对象在堆内存变量值有任何关系，而是直接修改副本变量的值，在修改完之后的某一个时刻（线程退出之前），自动把线程变量副本的值回写到对象在堆中变量。这样在堆...]]></description><category></category></item><item><title><![CDATA[并发编程陷阱系列(三)使用Thread.interrupt()中断线程]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84414684</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84414684</guid><author>jep1983</author><pubDate>Tue, 02 Apr 2013 10:26:32 +0800</pubDate><description><![CDATA[
Thread.interrupt()方法不会中断一个正在运行的线程。这一方法实际上完成的是，在线程受到阻塞时抛出一个中断信号，这样线程就得以退出 阻塞的状态。更确切的说，如果线程被Object.wait, Thread.join,Thread.sleep三种方法之一阻塞，那么，它将接收到一个中断异常（InterruptedException），从而提早地终结被阻塞状态。
 
建议使用外部的...]]></description><category></category></item><item><title><![CDATA[并发编程陷阱系列 (二)InterruptException无处不在]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84414683</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84414683</guid><author>jep1983</author><pubDate>Tue, 02 Apr 2013 10:25:32 +0800</pubDate><description><![CDATA[
当一个方法抛出 InterruptedException 时，它是在告诉您，如果执行该方法的线程被中断，它将尝试停止它正在做的事情而提前返回，并通过抛出 InterruptedException 表明它提前返回。
一旦你catch了中断异常，默认你就会处理它，所以JVM会清除中断状态，以防止方法退出后上层调用代码再处理一次异常。如果你只是简单地catch住，并不打算处理，那么就需要恢复被清除...]]></description><category></category></item><item><title><![CDATA[并发编程陷阱系列         (一)同步不完全]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84414682</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84414682</guid><author>jep1983</author><pubDate>Tue, 02 Apr 2013 10:24:21 +0800</pubDate><description><![CDATA[
同步块未覆盖到所有场景。
 
import java.util.HashMap;
import java.util.Map;

public class CacheManage {
	private Map&amp;lt;String, String&amp;gt; cache = new HashMap&amp;lt;String, String&amp;gt;();

	public static int...]]></description><category></category></item><item><title><![CDATA[jstat,jmap,jconsole,jvisualvm,jps,jinfo等JDK系统监控、性能调优工具]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84405890</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84405890</guid><author>jep1983</author><pubDate>Fri, 08 Mar 2013 15:06:59 +0800</pubDate><description><![CDATA[
转自:http://www.blogjava.net/toby/archive/2012/02/07/369544.html
工具名称：IBM HeapAnalyzer
JProfiler在java程序性能调试方便表现优越，推荐使用。也可使用下面jdk自己的一些工具。
所有工具都在JDK/bin目录下， jconsole和jvisualvm为GUI图形化工具，其他为命令行。
jvisua...]]></description><category></category></item><item><title><![CDATA[[转]成为JavaGC专家]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84399281</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84399281</guid><author>jep1983</author><pubDate>Wed, 06 Mar 2013 10:34:58 +0800</pubDate><description><![CDATA[http://www.importnew.com/1993.html]]></description><category></category></item><item><title><![CDATA[Java内存模型FAQ译文]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84378645</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84378645</guid><author>jep1983</author><pubDate>Wed, 09 Jan 2013 09:35:33 +0800</pubDate><description><![CDATA[ http://ifeve.com/jmm-faq/ ]]></description><category></category></item><item><title><![CDATA[hbase在淘宝的应用和优化小结]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84369672</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84369672</guid><author>jep1983</author><pubDate>Wed, 19 Dec 2012 11:05:48 +0800</pubDate><description><![CDATA[http://walkoven.com/]]></description><category></category></item><item><title><![CDATA[死锁的例子]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84365318</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84365318</guid><author>jep1983</author><pubDate>Fri, 07 Dec 2012 11:12:49 +0800</pubDate><description><![CDATA[
/**
 * Description:
 * &amp;lt;br/&amp;gt;Copyright (C), 2008-2010, Yeeku.H.Lee
 * &amp;lt;br/&amp;gt;This program is protected by copyright laws.
 * &amp;lt;br/&amp;gt;Program Name:
 * &amp;lt;br/&amp;gt;Date:
 * @author  Y...]]></description><category></category></item><item><title><![CDATA[页面屏蔽右键、F5等快捷键]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84298695</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84298695</guid><author>jep1983</author><pubDate>Tue, 09 Oct 2012 15:23:26 +0800</pubDate><description><![CDATA[// 系统按键触发事件
document.onkeydown = function(){  
    // Ctrl+N、Shift+F10、F11、F5刷新
     if   ((event.altKey)&amp;amp;&amp;amp;     
              ((event.keyCode==37)||       // 屏蔽 Alt+ 方向键 ←
              ...]]></description><category></category></item><item><title><![CDATA[<script>标签的for属性和event属性 ]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84285528</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84285528</guid><author>jep1983</author><pubDate>Fri, 07 Sep 2012 15:06:28 +0800</pubDate><description><![CDATA[&amp;lt;script language=&quot;javascript&quot; for=&quot;window&quot; event=&quot;onload&quot;&amp;gt;

　　event   设置或获取脚本编写用于的事件
　　for  设置或获取绑定到事件脚本的对象。
　　可以这样理解。
　　&amp;lt;script   language=&quot;javascript&quot;   for=&quot;window&quot;   event=&quo]]></description><category></category></item><item><title><![CDATA[Ant 的 javac标签 ]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84234941</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84234941</guid><author>jep1983</author><pubDate>Fri, 15 Jun 2012 11:51:37 +0800</pubDate><description><![CDATA[&amp;lt;javac&amp;gt;任务和javac命令是相似，它编译两种类型的java文件1）没有被编译的java文件2）曾经编译过，但是class文件版本和当前对应的java文件版本不匹配的java文件。 
1)javac命令支持的参数： 
Attributes Description 
srcdir  ：必须的，除非嵌套有&amp;lt;src&amp;gt;标签。包含源文件的文件夹 
bootclasspa...]]></description><category></category></item><item><title><![CDATA[EJB3.0电子书]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84224913</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84224913</guid><author>jep1983</author><pubDate>Mon, 28 May 2012 22:56:41 +0800</pubDate><description><![CDATA[EJB3.0电子书]]></description><category></category></item><item><title><![CDATA[提高网站速度的最佳实践]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84224636</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84224636</guid><author>jep1983</author><pubDate>Mon, 28 May 2012 13:40:15 +0800</pubDate><description><![CDATA[原版见：http://developer.yahoo.com/performance/rules.html
，是Yahoo 人写的《提高网站速度的最佳实践》共有 14 条。
以下是中文版
 
相信互联网已经越来越成为人们生活中不可或缺的一部分。ajax，flex等等富客户端的应用使得人们越加“幸福”地体验着许多原先只能在C/S实现的功
能。比如Google机会已经把最基本的office应...]]></description><category></category></item><item><title><![CDATA[单例模式与线程安全]]></title><link>https://blog.youkuaiyun.com/jep1983/article/details/84185738</link><guid>https://blog.youkuaiyun.com/jep1983/article/details/84185738</guid><author>jep1983</author><pubDate>Fri, 13 Apr 2012 16:04:41 +0800</pubDate><description><![CDATA[请看如下的单例类：
class Singleton{
  private static Singleton singleton = null;

  public static Singleton getSingleton() {
    if (null == singleton) {
      singleton = new Singleton();
    }
    re...]]></description><category></category></item></channel></rss>