在 JDK 5.0 之前,如果不使用本机代码,就不能用 Java 语言编写无等待、无锁定的算法。在java.util.concurrent 中...您可以在本文的 论坛中与作者或其他读者共享您对本文的看法。(也可以通过单击文章顶部或者底部的
Java语言规范中指出:为了获得佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 这样当多个线程同时与某个对象交互时,必须要注意到要让线程...
※ 如何深入理解和掌握概念语法分析好的学习方法和学习技能的训练好的编程思维和编程思想的训练
标签: 职场管理
本文介绍了垃圾收集的好处是无可争辩的--可靠性提高、使内存管理与类接口设计分离,并使开发者减少了跟踪内存管理错误的时间。不过,垃圾收集不是没有代价的--其中包括对性能的影响、暂停、配置复杂性和不确定的结束...
本文还介绍了用Java平台提供的协作中断机制来构造灵活的取消策略。各活动可以自行决定它们是可取消的还是不可取消的,以及如何对中断作出响应,如果立即返回会危害应用程序完整性的话,它们还可以推迟中断。
在这一期的Java理论与实践中,BrianGoetz展示了如何加强volatile和final的语义,以修复JMM。这些更改有些已经集成在JDK1.4中;而另一些将会包含在JDK1.5中。您可以在本文对应的论坛里与作者及其他读者分享您对本文的...
本文介绍了当项目中需要XML解析器、文本索引程序和搜索...util.concurrent是JSR 166的切入点,它将带来一组并发性的实用程序,这些实用程序将成为 JDK 1.5中的java.util.concurrent包,但您不必等到那时侯才能使用它。
本文介绍了当线程从应用程序中消失时会引起混乱,并且在很多情况下,线程消失时没有(堆栈)跟踪。像对付许多风险一样,防止线程泄漏的最佳方法是预防和检测相结合;注意有可能抛出RuntimeException的地方(如调用...
本文介绍了在Java理论与实践中,几种比较简单的非阻塞算法的工作方式。在不只一个线程访问一个互斥的变量时,所有线程都必须使用同步,否则就可能会发生一些非常糟糕的事情。Java语言中主要的同步手段就是...
标签: 软件
并说明了在Java理论与实践中,不变性的一些长处、何时使用不变类和构造不变类的一些准则。使用不变对象比使用可变对象要容易得多。它们只能处于一种状态,所以始终是一致的,它们本来就是线程安全的,可以被自由地...
本文介绍了新方法内置了更多类型信息,减少了编程错误,提高了程序的可读性,但是确实带来了更多声明变量和方法签名方面的前期工作。类型参数在声明和初始化中的重复看起来尤其没有必要;Socket和Future
本文介绍了Java平台从一开始就包括了对线程的支持,包括一个计划为正确同步的程序提供“一次编写,到处运行”保证的、跨平台的内存模型,但是原来的内存模型有一些漏洞。虽然许多Java平台提供了比JMM所要求的更强的...
java入门教程:数据类型_Java理论与实践如何正确使用Volatile变量.docx
本文介绍了Java平台把线程和多处理技术集成到了语言中,这种...在不破坏在旧的内存模型下正确同步的任何代码的同时,我们可以创建一个与大多数开发者的直觉更加一致的内存模型,并且这一切已经由JSR 133 process完成。
标签: 职场管理
本文介绍了编写线程安全的类很难,而分析现有类的线程安全性更难,增强类使其仍然保持线程安全也很难。...FindBugs几乎可以在任何时间找出实际的bug,它的每个检测器都已经在测试、产品、专业的开发代码中发现了bug。
Alonzo Church 早在 1934 年曾表明,所有已知的计算性框架对于它们所能表示的程序集都是等价的,程序员实际编写的程序集是由特定语言形成的,而编程模型(由语言、库和框架驱动)可以简化这些语言的表达。...
简介:虽然用 Java:trade_mark: 语言编写的程序在理论上是不会出现“内存泄漏”的,但是有时对象在不再作为程序的逻辑状态的一部分之后仍然不被垃圾收集。本月,负责保障应用程序健康的工程师 Brian Goetz 探讨了无...
标签: 职场管理
通过内部公开新的低级协调原语,和提供一组公共原子变量类,现在用Java语言开发无等待、无锁定算法首次变为可行。然后,java.util.concurrent中的类基于这些低级原子变量工具构建,为它们提供比以前执行相似功能的类...
并简单概述了老对象和年轻对象、分代收集、小的收集、代间引用、跟踪代间引用、卡片标记、JDK 1.4.1 默认收集器、并行收集器和并发收集器、微调垃圾收集器等理论或技术。得出:随着JVM的发展,默认垃圾收集器变得...
标签: 软件
本文介绍了在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK 1.0的一部分。Hashtable提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的―― Hashtable...
本文定义了什么是事务,列举了事务的基本特性,并探讨了Java事务服务和J2EE容器如何合作为事务提供对 J2EE 组件的透明支持。在本文中,我们将讨论事务的划分和隔离这个主题。为EJB组件定义事务划分和隔离属性的职责...
本文介绍了在大多数情况下,Java应用程序要么是J2EE应用程序、要么是J2SE应用程序,并且在这一点上是泾渭分明的。J2EE 应用程序需要J2EE容器的服务,容器要实现一长串的J2EE API。J2EE API 设计为协同工作。虽然J2EE...
本文介绍了Java 5中添加的...javac中不支持的-target jsr14选项可以为某些Java 5语言特性生成与JDK 1.4兼容的字节码,并且开源的Retroweaver和Retrotranslator项目能把多数Java 5字节码转换成与Java 1.4兼容的字节码。
本文介绍了目前所有智能手机都苦恼的问题--有限的屏幕实际使用区。有些Web站点支持基于手机的浏览器,而且嵌入式浏览器也试图在小小的屏幕上有效地渲染页面,但是,在电话屏幕上查看典型的Web页面,就像要把一头大象...
HSQLDB是一个用Java语言编写的可嵌入的数据库引擎。XQuery为生成XML或者HTML文档作为查询结果而设计的,因此不需要对查询结果进行后处理。从开发成本角度看,XQuery方法已证实可以节约大量成本。树型结构对于构建和...
本文介绍了在没有垃圾收集的语言中,比如C++,必须特别关注内存管理。...尽管垃圾收集意味着Java开发者不必太多地担心内存泄漏,有时我们仍然需要担心对象所有权,以防止数据争用(data races)和不必要的副作用。
同样,大多数开发人员也容易忽略java.math.BigDecimal所提供的任意精度的小数-大多数应用程序不使用它们。然而,在以整数为主的程序中有时确实会出人意料地需要表示非整型数据。在Java程序中使用浮点数和小数充满着...
与其他静态编译的语言相比,评论用Java语言编写的给定惯用法或结构体的性能要困难得多。并指出,应把注意力放在“微”基准上--编写一些实际的程序,用两种方法编写代码,开发一种逼真的负载生成策略,并在逼真的负载...
本文介绍了使用MQ技术经常可以改善应用程序的组织、性能和可伸缩性以及Java消息服务是集成到J2EE中的一部分,它使得消息排队(MQ)服务可以为任何J2EE应用程序所用。MQ工具没有数据库工具为人所知或为人理解,数据库...