<?xml version="1.0"?>

 
<rss version="2.0">
<channel>
<title>developerWorks 中国 : 技术文章 Java technology</title> 
<link>http://www.ibm.com/developerworks/cn/</link>
<description>来自 IBM developerWorks 中国网站的最新内容</description>
<pubDate>07 Dec 2009 23:07:52 +0000</pubDate>
<language>zh-CN</language>
<copyright>Copyright 2004 IBM Corporation.</copyright>
<image>
<title>developerWorks 中国</title>
<url>http://www.ibm.com/developerworks/i/dwlogo-small.gif</url>
<link>http://www.ibm.com/developerworks/cn/</link>
</image>

            <item>
               <title><![CDATA[Java 理论与实践: 有状态 Web 应用程序都有漏洞吗？]]></title> 
               <description><![CDATA[Servlets 框架 HttpSession 提供的会话状态管理机制简化了有状态应用程序的创建，但也很容易导致误用。在没有足够协作的情况下，许多 Web 应用程序对可变数据（比如 JavaBeans 类）使用了 HttpSession 这个机制，从而使自身面临大量潜在的并发性危险。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp09238.html?ca=drs-cn-1013&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>13 Oct 2008 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 使用通配符简化泛型使用，第 2 部分]]></title> 
               <description><![CDATA[在使用 Java 语言的泛型时，通配符非常令人困惑，并且最常见的一个错误就是在使用有界通配符的两种形式之一（“super T” 和 “?
  extends T”）时出现错误。别沮丧，您出错了吗？即使是专家也会犯这种错误，本月 Brian Goetz 将展示如何避免这个错误。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp07018.html?ca=drs-cn-0724&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>24 Jul 2008 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 使用通配符简化泛型使用]]></title> 
               <description><![CDATA[通配符是 Java 语言中最复杂的泛型之一，特别是围绕捕获通配符的处理和令人困惑的错误消息。在这一期的 Java 理论与实践中，资深 Java 开发人员 Brian Goetz 解释了一些由 javac 生成的怪异错误消息并提供了一些简化泛型使用的技巧和解决方法。 ]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp04298.html?ca=drs-cn-0526&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>26 May 2008 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 应用 fork-join 框架，第 2 部分]]></title> 
               <description><![CDATA[Java 7 中的 java.util.concurrent 包的新增功能之一是一个用于 fork-join 风格的并行分解的库。在本系列的第 1 部分中，Brian Goetz 演示了 fork-join 如何为众多的算法提供一种自然的分解机制，以有效地利用硬件的并行性。在本文中，他将介绍 ParallelArray 类，这个类简化了内存中数据结构上的并行排序和搜索操作。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp03048.html?ca=drs-cn-0415&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>15 Apr 2008 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 应用 fork-join 框架]]></title> 
               <description><![CDATA[Java 7 的 java.util.concurrent 包的新增功能之一是一个 fork-join 风格的并行分解框架。fork-join 概念提供了一种分解多个算法的自然机制，可以有效地应用硬件并行性。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp11137.html?ca=drs-cn-1203&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>03 Dec 2007 05:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 正确使用 Volatile 变量]]></title> 
               <description><![CDATA[Java 语言包含两种内在的同步机制：同步块（或方法）和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全。其中 Volatile 变量的同步性较差（但有时它更简单并且开销更低），而且其使用也更容易出错。在这期的 Java 理论与实践中，Brian Goetz 将介绍几种正确使用 volatile 变量的模式，并针对其适用性限制提出一些建议。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp06197.html?ca=drs-cn-0705&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>05 Jul 2007 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 闭包之争]]></title> 
               <description><![CDATA[提起向 Java 语言增加新的特性，每个人都有自己的一两个想法。随着 Java 平台的源代码日渐开放，而使用其他语言（例如 JavaScript 和 Ruby）作为服务器端应用程序日趋流行，因此关于 Java 语言未来的争论空前激烈。Java 语言是否应该包容像闭包这样的主流新特性，然而引入过多特性会不会使得这种好端端的语言过于庞杂？在这个月的 “Java 理论与实践” 专题中，Brian Goetz 回顾了相关的概念，详细介绍了两种竞争的闭包方案。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp04247.html?ca=drs-cn-0528&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>28 May 2007 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 在 JDK 早期版本中使用 Java 5 的语言特性]]></title> 
               <description><![CDATA[Java 5 添加了许多强大的语言特性：泛型、枚举、注释、自动装箱和增强的 for 循环。但是，许多工作组仍然被绑定在 JDK 1.4 或以前的版本上，可能需要花些时间才能使用新版本。但是，这些开发人员仍然可以使用这些功能强大的语言特性，同时在 JVM 早期版本上部署。在这一期 Java 理论与实践中，Brian Goetz 将演示如何在 JDK 早期版本中使用 Java 5 的语言特性。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp02277.html?ca=drs-cn-0321&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>21 Mar 2007 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 理解 JTS —— 事务简介]]></title> 
               <description><![CDATA[Java Transaction Service 是 J2EE 架构的关键元素。它与 Java Transaction API 结合在一起，使我们能够构建对于各种系统和网络故障都非常健壮的分布式应用程序。这个由三个部分组成的系列文章的第一期讲述了一些基础知识，包括什么是事务，以及事务对于构建可靠的分布式应用程序来说至关重要的原因。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp0305.html?ca=drs-cn-0208&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>08 Feb 2007 05:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 用 JMX 检测应用程序]]></title> 
               <description><![CDATA[调试器和分析器可以提供对应用程序的行为的深入观察，但在出现严重问题之前，这些工具通常用不上。将监视挂钩（hook）构建到应用程序内，会使理解程序的执行变得更容易而且不会破坏调试器。既然 Java 管理扩展（JMX）已经构建进了 Java SE 平台，而且 jconsole 查看器也提供了统一的监视 GUI，那么用 JMX 为应用程序提供一个窗口，要比以前更加容易而且更为有效。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp09196/index.html?ca=drs-cn-1026&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>26 Oct 2006 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 平衡测试，第 3 部分]]></title> 
               <description><![CDATA[这个系列的前两期介绍了像 FindBugs 这样的静态分析工具，通过关注全部 bug 分类而不是特定的 bug 实例，可以对管理软件质量提供更大的控制能力。在关于测试的最后这一期中，Brian Goetz 介绍另一种发现违犯设计规则之处的技术：方面。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp08226.html?ca=drs-cn-0922&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>22 Sep 2006 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 平衡测试，第 2 部分]]></title> 
               <description><![CDATA[上一期的 “Java 理论与实践” 专栏说明了如何充分利用 FindBugs 之类的静态分析工具来管理软件质量，并重点测试了 bug 的整个目录（而不是特定 bug 实例）。在本期专栏中，专职 bug 清除专家 Brian Goetz 将详细说明构造和调优不平凡的 bug 模式检测器的过程。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp07256.html?ca=drs-cn-0907&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>07 Sep 2006 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 平衡测试，第 1 部分]]></title> 
               <description><![CDATA[在 2004 年 6 月，经验丰富的清除专家 Brian Goetz 引进了 FindBugs 静态代码分析工具，即使在测试良好的软件中，该工具也可以检测 bug。本月他将重拾该主题，查看静态分析工具如何通过开发存在所有种类的 bug 的资源（而不是特定实例）来改进管理软件质量的方式。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp06206.html?ca=drs-cn-0710&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>10 Jul 2006 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 处理 InterruptedException]]></title> 
               <description><![CDATA[Java 语言的很多方法，例如 Thread.sleep() 和 Object.wait()，都可以抛出 InterruptedException。这个异常是不能忽略的，因为它是一个检查异常（checked exception）。但是应该如何处理它呢？在本月的 “Java 理论与实践” 中，并发专家 Brian
Goetz 将解释 InterruptedException 的含义，为什么抛出 InterruptedException，以及在捕捉到该异常时应该怎么做。
]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp05236.html?ca=drs-cn-0615&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>15 Jun 2006 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 非阻塞算法简介]]></title> 
               <description><![CDATA[Java 5.0 第一次让使用 Java 语言开发非阻塞算法成为可能，java.util.concurrent 包充分地利用了这个功能。非阻塞算法属于并发算法，它们可以安全地派生它们的线程，不通过锁定派生，而是通过低级的原子性的硬件原生形式 ―― 例如比较和交换。非阻塞算法的设计与实现极为困难，但是它们能够提供更好的吞吐率，对生存问题（例如死锁和优先级反转）也能提供更好的防御。在这期的 Java 理论与实践 中，并发性大师 Brian Goetz 演示了几种比较简单的非阻塞算法的工作方式。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp04186/?ca=drs-cn-0518&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>18 May 2006 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 良好的内务处理实践]]></title> 
               <description><![CDATA[垃圾收集几乎是每位 Java 平台开发人员都喜爱的一个特性，它简化了开发，消除了潜在的代码错误。可是尽管垃圾收集通常可以让您无需进行资源管理，但有时候您还是必须自己进行一些内务处理。在本期的 Java 理论与实践中，Brian Goetz 讨论了垃圾收集的局限性，并介绍了您必须自己做内务处理的场景。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp03216.html?ca=drs-cn-0410&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>10 Apr 2006 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 伪 typedef 反模式]]></title> 
               <description><![CDATA[将泛型添加到 Java 语言中增加了类型系统的复杂性，提高了许多变量和方法声明的冗长程度。因为没有提供 “typedef” 工具来定义类型的简短名称，所以有些开发人员转而把扩展当作 “穷人的 typedef”，但是收到的决不是好的结果。在这个月的 Java 理论与实践 中，Java 专家 Brian Goetz 解释了这个 “反模式” 的限制。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp02216.html?ca=drs-cn-0331&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>31 Mar 2006 05:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 用弱引用堵住内存泄漏]]></title> 
               <description><![CDATA[虽然用 Java 语言编写的程序在理论上是不会出现“内存泄漏”的，但是有时对象在不再作为程序的逻辑状态的一部分之后仍然不被垃圾收集。本月，负责保障应用程序健康的工 程师 Brian Goetz 探讨了无意识的对象保留的常见原因，并展示了如何用弱引用堵住泄漏。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp11225/?ca=drs-cn-0104&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>04 Jan 2006 05:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: Mustang 中的同步优化]]></title> 
               <description><![CDATA[在上一期的 Java 理论与实践中，专栏作家 Brian Goetz 研究了 Escape 分析，这是许多 JVM 在相当一段时间内已经放入日程表的一项优化，也是预计会在 Mustang （Java SE 6）发行版的 HotSpot 中出现的优化。这个月，Brian 将介绍一些为 Mustang 安排的同步优化]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp10185/?ca=drs-cn-1108&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>08 Nov 2005 05:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 再谈 Urban 性能传言]]></title> 
               <description><![CDATA[Java 语言遭到许多性能方面的攻击。虽然有些攻击可能是名符其实的，但是看看公告板和新闻组上关于这一主题的贴子，可以发现，对于 Java 虚拟机（JVM）实际的工作方式存在许多误解。在本月的 Java 理论与实践 中，Brian Goetz 驳斥了反复重复的有关 JVM 分配慢的传言。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp09275.html?ca=drs-cn-1024&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>24 Oct 2005 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 用动态代理进行修饰]]></title> 
               <description><![CDATA[动态代理工具 是 java.lang.reflect 包的一部分，在 JDK 1.3 版本中添加到 JDK，它允许程序创建 代理对象。本文中，作者介绍了几个用于动态代理的应用程序。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp08305.html?ca=drs-cn-0917&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>17 Sep 2005 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 做个好的（事件）侦听器]]></title> 
               <description><![CDATA[观察者模式在 Swing 开发中很常见，在 GUI 应用程序以外的场景中，它对于消除组件的耦合性也非常有用。但是，仍然存在一些侦听器登记和调用方面的常见缺陷。在 Java 理论与实践 的这一期中，Java 专家 Brian Goetz 就如何做一个好的侦听器，以及如何对您的侦听器也友好，提供了一些感觉很好的建议。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp07265/?ca=drs-cn-0822&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>22 Aug 2005 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 在没有数据库的情况下进行数据库查询]]></title> 
               <description><![CDATA[在本月的 Java 理论与实践系列中，Brian Goetz 将演示如何将 SQL 或者 XQuery 这样的数据操纵之锤应用于非持久存储的数据。 
]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp05315.html?ca=drs-cn-0607&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>07 Jun 2005 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践： 用 XQuery 进行屏幕搜集]]></title> 
               <description><![CDATA[XQuery 是用来从 XML 文档中提取信息的 W3C 标准，目前包括 14 个工作草案。虽然 XQuery 主要集中于查找大型半结构化文档数据，但是令人惊讶的是 XQuery 对于一些更平凡的应用也非常有效。在本月的 Java 理论与实践 中，专栏作家 Brian Goetz 将介绍如何有效地把 XQuery 用作 HTML 的屏幕搜集引擎。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp03225.html?ca=drs-cn-0404&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>04 Apr 2005 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践：一个有缺陷的微基准的剖析]]></title> 
               <description><![CDATA[众所周知，软件工程师常常受到性能问题的困扰，有时候甚至很过分。虽然有时候性能在一个软件项目中是最重要的需求，例如在为高速交换机开发协议路由软件时便是如此，但在大多数情况下，需要在性能需求与其他需求之间进行平衡，例如功能性、可靠性、可维护性、可扩展性、投入市场的时间以及其他业务和工程上的考虑。在本月的 Java 理论和实践 中，专栏作家 Brian Goetz 将探讨为什么度量 Java 语言结构体的性能比看上去要难得多。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp02225.html?ca=drs-cn-0314&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>14 Mar 2005 05:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践： 动态编译与性能测量]]></title> 
               <description><![CDATA[
为动态编译的语言（例如 Java）编写和解释性能评测，要比为静态编译的语言（例如 C 或 C++）编写困难得多。在这期的 Java 理论与实践 中，Brian Goetz 介绍了动态编译使性能测试复杂的诸多原因中的一些。
]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp12214/index.html?ca=drs-cn-1227&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>27 Dec 2004 05:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践： 流行的原子]]></title> 
               <description><![CDATA[
在 JDK 5.0 之前，如果不使用本机代码，就不能用 Java 语言编写无等待、无锁定的算法。在 java.util.concurrent 中添加原子变量类之后，这种情况发生了变化。请跟随并行专家 Brian Goetz 一起，了解这些新类如何使用 Java 语言开发高度可伸缩的无阻塞算法。您可以在本文的论坛中与作者或其他读者共享您对本文的看法。
]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp11234/index.html?ca=drs-cn-1213&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>13 Dec 2004 05:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践： JDK 5.0 中更灵活、更具可伸缩性的锁定机制]]></title> 
               <description><![CDATA[JDK 5.0 为开发人员开发高性能的并发应用程序提供了一些很有效的新选择。例如，java.util.concurrent.lock 中的类 ReentrantLock 被作为 Java 语言中 synchronized 功能的替代，它具有相同的内存语义、相同的锁定，但在争用条件下却有更好的性能，此外，它还有 synchronized 没有提供的其他特性。这是否意味着我们应当忘记 synchronized，转而只用 ReentrantLock 呢？并发性专家 Brian Goetz 刚从他的夏季休假中返回，他将为我们提供答案。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp10264/index.html?ca=drs-cn-1114&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>14 Nov 2004 05:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践： Web 层的状态复制]]></title> 
               <description><![CDATA[
本月，专栏作家 Brian Goetz 分析了状态复制的一些选项以及如何最有效地使用 HttpSession 以提供好的伸缩性和性能。
]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp07294/index.html?ca=drs-cn-0812&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>12 Aug 2004 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践： 消除 bug]]></title> 
               <description><![CDATA[本月，专栏作家 Brian Goetz 以 Chris Grandstaff 在前面发表的 FindBugs，第 1 部分: 提高代码质量 为基础，向您展示了这个静态分析工具如何帮助分析代码，以使其符合本栏目前面的文章中讨论过的设计原理，请在相应的讨论论坛中与作者及其他读者分享您有关本文的心得体会。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp06294/index.html?ca=drs-cn-0712&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>12 Jul 2004 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践： 关于异常的争论]]></title> 
               <description><![CDATA[关于在 Java 语言中使用异常的大多数建议都认为，在确信异常可以被捕获的任何情况下，应该优先使用检查型异常。语言设计（编译器强制您在方法签名中列出可能被抛出的所有检查型异常）以及早期关于样式和用法的著作都支持该建议。最近，几位著名的作者已经开始认为非检查型异常在优秀的 Java 类设计中有着比以前所认为的更为重要的地位。在本文中，Brian Goetz 考察了关于使用非检查型异常的优缺点。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp05254/index.html?ca=drs-cn-0610&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>10 Jun 2004 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践：让 J2EE 脱离容器]]></title> 
               <description><![CDATA[大多数项目不是属于 J2EE 应用程序就是属于 J2SE 应用程序。不过，有一些 J2EE 技术可以存在于 J2EE 容器之外，并且有些 J2SE 应用程序可以对它们加以利用。本月，Brian Goetz 分析如何在 J2SE 应用程序中使用某些 J2EE 服务。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp04204/index.html?ca=drs-cn-0520&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>20 May 2004 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践：修复 Java 内存模型，第 2 部分]]></title> 
               <description><![CDATA[这个月，他介绍在新 JMM 中 volatile 和 final 的语义是如何变化的，这些改变使它们的语义符合大多数开发人员的直觉。其中一些改变已经在 JDK 1.4 中出现了，另一些改变则要等到 JDK 1.5。请您在本文的讨论论坛上与作者及其他读者交流您的想法。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp03304/index.html?ca=drs-cn-0412&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>12 Apr 2004 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践：修复 Java 内存模型，第 1 部分]]></title> 
               <description><![CDATA[在这一期的 Java 理论与实践 中，Brian Goetz 展示了如何加强 volatile 和 final 的语义，以修复 JMM。这些更改有些已经集成在 JDK 1.4 中；而另一些将会包含在 JDK 1.5 中。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp02244/index.html?ca=drs-cn-0311&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>11 Mar 2004 05:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践：JVM 1.4.1 中的垃圾收集]]></title> 
               <description><![CDATA[在上月的 Java 理论与实践 中，专栏作家 Brian Goetz 回顾了垃圾收集的基本算法。本月，他进一步探讨 JVM 1.4.1 是如何实际处理垃圾收集的，包括一些针对多处理器系统的新垃圾收集选项。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp11253/index.html?ca=drs-cn-1231&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>31 Dec 2003 05:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践：垃圾收集简史]]></title> 
               <description><![CDATA[Java 语言可能是使用最广泛的依赖于垃圾收集的编程语言，但是它并不是第一个。垃圾收集已经成为了包括 Lisp、Smalltalk、Eiffel、Haskell、ML、Scheme 和 Modula-3 在内的许多编程语言的一个集成部分，并且从 20 世纪 60 年代早期就开始使用了。在 Java 理论与实践 的本篇文章中，Brian Goetz 描述了垃圾收集最常用的技术。在以后的几个月，他将分析 1.4 JVM 所使用的垃圾收集策略、不同垃圾收集策略对性能的影响和如何才能（以及如何不能）帮助垃圾收集器取得更好的性能。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp10283/index.html?ca=drs-cn-1208&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>08 Dec 2003 05:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践： 描绘线程安全性]]></title> 
               <description><![CDATA[7 月份我们的并发专家 Brian Goetz 将 Hashtable 和 Vector 类描述为“有条件线程安全的”。一个类难道不是线程安全就是线程不安全的吗？不幸的是，线程安全并不是一个非真即假的命题，它的定义出人意料的困难。但是，正如 Brian 在本月的 Java 理论与实践中解释的，尽量在 Javadoc 中对类的线程安全性进行归类是非常重要的。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp09263/index.html?ca=drs-cn-1103&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>03 Nov 2003 05:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践：并发集合类]]></title> 
               <description><![CDATA[Doug Lea的util.concurrent包除了包含许多其他有用的并发构造块之外，还包含了一些主要集合类型List和Map的高性能的、线程安全的实现。在本月的Java理论与实践中，Brian Goetz向您展示了用ConcurrentHashMap替换Hashtable或synchronizedMap，将有多少并发程序获益。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp07233/index.html?ca=drs-cn-0915&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>15 Sep 2003 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践： 它是谁的对象？]]></title> 
               <description><![CDATA[在没有垃圾收集的语言中，比如 C++，必须特别关注内存管理。对于每个动态对象，必须要么实现引用计数以模拟 垃圾收集效果，要么管理每个对象的“所有权”――确定哪个类负责删除一个对象。通常，对这种所有权的维护并没有什么成文的规则，而是按照约定（通常 是不成文的）进行维护。尽管垃圾收集意味着Java开发者不必太多地担心内存 泄漏，有时我们仍然需要担心对象所有权，以防止数据争用（data races）和不必要的副作用。在这篇文章中， Brian Goetz 指出了一些这样的情况，即Java开发者必须注意对象所有权。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp06243/index.html?ca=drs-cn-0904&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>04 Sep 2003 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 构建一个更好的 HashMap]]></title> 
               <description><![CDATA[ConcurrentHashMap   是 Doug Lea 的 util.concurrent   包的一部分，它提供比Hashtable 或者 synchronizedMap 更高程度的并发性。而且，对于大多数成功的 get() 操作它会设法避免完全锁定，其结果就是使得并发应用程序有着非常好的吞吐量。这个月，BrianGoetz 仔细分析了  ConcurrentHashMap  的代码，并探讨 Doug Lea 是如何在不损失线程安全的情况下取得这么骄人成绩的。请在讨论论坛上与作者及其他读者共享您对本文的一些想法（也可以在文章的顶部或底部点击讨论来访问论坛）。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp08223/index.html?ca=drs-cn-0829&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>29 Aug 2003 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践： 哈希]]></title> 
               <description><![CDATA[每个Java对象都有hashCode()和 equals()方法。许多类忽略（Override)这些方法的缺省实施,以在对象实例之间提供更深层次的语义可比性。在Java理念和实践这一部分，Java开发人员Brian Goetz向您介绍在创建Java类以有效和准确定义hashCode()和equals()时应遵循的规则和指南。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp05273/index.html?ca=drs-cn-0811&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>11 Aug 2003 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践：性能管理 ― 您有规划吗？]]></title> 
               <description><![CDATA[性能问题从何而来？导致性能问题的编程选项有许多类型 ― 效率低的算法、冗余计算、糟糕的资源分配和使用情况、过多的同步，或者很明显就是效率低的设计。但更普遍的且具有破坏性的要属管理和方法错误，而不是编程错误。在这一部分的 Java 理论与实践中，Brian Goetz 将讨论在项目中使用 Java 语言时遇到的一些最常见的性能错误。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp03253/index.html?ca=drs-cn-0612&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>12 Jun 2003 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践：变还是不变？]]></title> 
               <description><![CDATA[不变对象具有许多能更方便地使用它们的特性，包括不严格的同步需求和不必考虑数据讹误就能自由地共享和高速缓存对象引用。在本月的 Java 理论与实践中，Brian Goetz 说明了不变性的一些长处和构造不变类的一些准则。

]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp02183/index.html?ca=drs-cn-0512&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>12 May 2003 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践：并发在一定程度上使一切变得简单]]></title> 
               <description><![CDATA[对于每个项目，象许多其它应用程序基础结构服务一样，通常无需从头重新编写并发实用程序类（如工作队列和线程池）。这个月，Brian Goetz 将介绍 Doug Lea 的 util.concurrent 包，这是一个高质量的、广泛使用的、并发实用程序的开放源码包。
]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp1126/index.html?ca=drs-cn-0410&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>10 Apr 2003 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践：您的小数点到哪里去了？]]></title> 
               <description><![CDATA[在本月的 Java 理论和实践中，Brian Goetz 探讨了在 Java 程序中使用非整数类型时一些常碰到的陷阱和“gotcha”。
]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp0114/index.html?ca=drs-cn-0410&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>10 Apr 2003 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践：嗨，我的线程到哪里去了？]]></title> 
               <description><![CDATA[
如果您不小心，线程可能会在没有（堆栈）跟踪的情况下从服务器应用程序中消失。在本文中，线程问题专家 Brian Goetz 提供了用于预防和检测线程“擅离职守”的技术。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp0924/index.html?ca=drs-cn-1210&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>10 Dec 2002 05:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践：线程池与工作队列]]></title> 
               <description><![CDATA[几乎在每个服务器应用程序中都会出现线程池和工作队列问题。本文中，Brian Goetz 探讨了线程池的动机、一些基本实现和调优技术以及一些要避免的常见危险。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp0730/index.html?ca=drs-cn-1015&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>15 Oct 2002 04:00:00 +0000</pubDate>               
            </item>

            <item>
               <title><![CDATA[Java 理论与实践: 应该在下一个企业应用程序中使用 JMS 吗？]]></title> 
               <description><![CDATA[欢迎来到Java 理论与实践专栏，这是由经验丰富的 Java 开发人员 Brian Goetz 撰写的一个新的专栏月刊。本专栏旨在探索设计原则如何满足解决实际问题的需求这一难以捉摸的结合点。每个月我们都将探索设计模式、可靠软件设计的原则以及为什么“最佳实践”是最好的，同时也关注如何将它们应用于实际问题。这个月，Brian 讨论企业消息排队技术。最近几年，开发人员可以更广泛地得到企业消息排队（MQ）产品。适当地使用 MQ 技术经常可以改善应用程序的组织、性能和可伸缩性。Java 消息服务（Java Message Service (JMS)）是集成到 J2EE 中的一部分，它使得 MQ 服务可以为任何 J2EE 应用程序所用。在本文（也是本专栏系列的第一部分）中，Brian 概述了在 Java 应用程序中使用消息排队的一些好处，并探讨了能够从 MQ 技术中获益最大的问题类型。请在论坛上（或者通过单击本文顶部或底部的讨论）同作者及其他读者分享您对本文的想法。]]></description> 
               <link><![CDATA[http://www.ibm.com/developerworks/cn/java/j-jtp/part1/index.html?ca=drs-cn-0223&amp;ca=dkw-Java%理论与实践]]></link>
               <category>Articles</category>
               <pubDate>23 Feb 2002 05:00:00 +0000</pubDate>               
            </item>

</channel>
</rss>

