



Java 本机接口(Java Native Interface,JNI)使 JVM 中运行的 Java 代码可以与用其他编程语言编写的应用程序和库进行互操作。
用 JNI 进行 Java 编程
Java 本机接口(JNI)是一个本机编程接口,它是 Java SDK 的一部分。JNI 允许 Java 代码使用以其它语言(譬如 C 和 C++)编写的代码和代码库。Invocation API(JNI 的一部分)可以用来将 Java 虚拟机(JVM)嵌入到本机应用程序中,从而允许程序员从本机代码内部调用 Java 代码。
用 Java 代码处理本地对象的事件
本文通过使用一种透明处理从本地代码到 JVM 的事件通信的设计模式,帮助您有效地处理传统的本地库。
调试集成 Java 和 C/C++ 的代码
当在应用程序中无法使用纯 Java 语言的解决方案时,如何有效地调试 Java 和 C 混合的编程?本文使用命令行工具来说明一些基本技术,并分析了调试多语言应用程序时会遇到的问题。
在 Linux 平台下使用 JNI
本文简要介绍了 JNI 调用规范,及常用函数。并通过具体示例程序展示了实现一个本地调用的基本步骤。
设计具有本机性能的跨平台 Java UI
您将学习如何使用 JNI 来访问 SLIK,后者是一个跨平台的 C API,它同时在 Windows 和 UNIX 上提供本机性能。
JNI 对象在函数调用中的生命周期
Java 本地编程接口易懂且容易上手,但对于一些新手甚至于一些中级开发者,在编程中都没有把 JNI 对象的生命周期考虑在内。本文结合实际开发中遇到的此类问题,讲述和强调了 JNI 对象生命周期的概念,并提出正确的解决方法。
Java 集合框架
本教程彻底介绍了“集合框架”中所有的接口和实现这些接口的类。本教程不仅谈到了用线程安全和只读方式处理集合,还探讨了集合的算法支持。
驯服 Tiger: 集合框架
本文介绍 Java 5(Tiger)的另外几项增强,其中包括新的集合类型,以及现有类和接口的附加特性。
Merlin 的魔力: 维护插入顺序
本文学习如何按插入顺序迭代散列集合中的各个元素,以及如何使用 Java SE 1.4 中的 Collections Framework 按存取顺序维护元素。
并发集合
使用泛型和并发改善集合
本文将向您展示如何使用集合,同时利用 Java SE 6 中对该框架的增强。通过使用泛型和并发功能使您的应用程序具有更好的维护性和可伸缩性。
驯服 Tiger: 并发集合
Doug Lea 最初编写的 util.concurrent 包变成了 JSR-166 ,然后又变成了 Java SE 平台的 Tiger 版本。这个新库提供的是并发程序中通常需要的一组实用程序。
Java 理论与实践:构建一个更好的 HashMap
ConcurrentHashMap 是 Doug Lea 的 util.concurrent 包的一部分,它提供比 Hashtable 或者 synchronizedMap 更高程度的并发性。本文仔细分析了 ConcurrentHashMap 的代码,并探讨 Doug Lea 是如何在不损失线程安全的情况下取得这么骄人成绩的。
Java 理论与实践:并发集合类
Doug Lea 的 util.concurrent 包除了包含许多其他有用的并发构造块之外,还包含了一些主要集合类型 List 和 Map 的高性能的、线程安全的实现。本文向您展示了用 ConcurrentHashMap 替换 Hashtable 或 synchronizedMap ,将有多少并发程序获益。
其它集合包
性能观察: Trove 集合类
Trove 是一种开放源代码的 Java 集合包,提供了核心 Java 集合类的高效替代品,特别针对于实现其键或值是基本类型的集合。本文考察了 Trove 类与传统的 Java 集合的区别,以及何时使用 Trove 类。
集合与通用集合
本文描述了 Jakarta 项目 commons-collection。对 Java 2 SDK 集合框架的整理和示例可以大大加快程序员熟悉和使用集合,文中的例子虽然没有覆盖所有的接口,但却显示了集合主要概念的使用方法。
NIO 入门
本教程将讨论 NIO 库的几乎所有方面,从高级的概念性内容到底层的编程细节。除了学习诸如缓冲区和通道这样的关键 I/O 元素外,您还有机会看到在更新后的库中标准 I/O 是如何工作的。您还会了解只能通过 NIO 来完成的工作,如异步 I/O 和直接缓冲区。
彻底转变流,第 1 部分:从输出流中读取
通常,Java I/O 框架用途极其广泛。同一个框架支持文件存取、网络访问、字符转换、压缩和加密等等。不过,有时它不是十分灵活。本文介绍了使应用程序从仅支持将数据写至输出流的源中有效读取数据的框架。
彻底转变流,第 2 部分:优化 Java 内部 I/O
虽然新的 Java I/O 框架( java.nio )能解决 I/O 支持所具有的多数性能问题,但是它并没有满足使用字节数组和管道的应用程序内部通信的所有性能需求。本文作者开发了一组新的流,以补充标准的 Java I/O 字节数组流类和管道流类,在设计中强调以高性能为目标。
网络数据流的 Java 处理
本文对编写客户服务器应用的 Java 程序员有所帮助,可以解决程序在对方出现故障的时候继续稳定运行。
运用异步输入输出流编写 Socket 进程通信
在 Java SE 1.4(Merlin)中引入异步输入输出机制之后,Java 程序员也可以利用它完成很多简洁却是高质量的代码了。
花 1K 内存实现高效 I/O 的 RandomAccessFile 类
Java 的文件随机存取类(RandomAccessFile)的 I/O 效率较低。本文通过分析其中原因,提出解决方案,逐步展示了如何创建具备缓存读写能力的文件随机存取类,并进行了优化。
Java SE 1.4 在 java.util.regex 包中加入了对使用正则表达式的模式匹配的支持。
Merlin 的魔力: 用新的正则表达式库解析字符序列
Java 1.4 发行版在 java.util.regex 包中加入了对使用正则表达式的模式匹配的支持。本文向您展示了如何用新的正则表达式库解析字符序列,从而使搜索模式的功能更加强大。
Java 中正则表达式的应用,第 1 部分:Jakarta-ORO 篇
Jakarta-ORO 是最全面以及优化得最好的正则表达式 API 之一,Jakarta-ORO 库以前叫做 OROMatcher,是由 Daniel F. Savarese 编写,后来他将其赠与 Jakarta Project。
Java 中正则表达式的应用,第 2 部分:java.util.regex 篇
JDK 1.4 里终于有了自己的正则表达式 API 包,Java 程序员终于可以不用为找第三方提供的正则表达式库而周折了。
构建用于正则表达式的抽象 Java API
当您在 Java 中使用正则表达式时,依赖某一具体 regexp 库通常不是个好主意。如果使用抽象层,您可以在不同 regexp 库之间切换,降低您的代码与特定库之间的耦合,并能选择哪个库最适合您的需要。如果您正在考虑在下一个项目中使用 Java regexp 库,本文将向您演示如何使代码独立于所选择的具体库。
使用正则表达式验证本地化数据
Java 语言的正则表达式支持可以使数据验证变得更容易。您可以定义一个正则表达式,用于描述有效数据,然后让 Java 运行时检查它是否匹配。但是有些类型的数据在不同地区有不同的格式。而 ResourceBundle 类让您可以以一种优雅的方式使用特定于地区的数据。本文展示如何结合这两种技术来解决常见的数据输入问题。
由于很多重要原因,Java 语言在实时系统中的应用非常有限。这些原因包括 Java 语言设计中固有的不确定的性能影响,例如动态类加载,以及 Java 运行时环境(Java Runtime Environment,JRE)本身的不确定的性能影响,例如垃圾收集器和本地代码编译。Real-time Specification for Java (RTSJ) 是一种开放的规范,它进一步增强了 Java 语言的开放性,使它能够用来构建实时系统。要实现 RTSJ 规范,要求具备操作系统、JRE 和 Java 类库(Java Class Library,JCL)的支持。
实时 Java 系列
这个系列文章(目前已有 5 个部分)深入研究了使用 Java 语言实现实时系统存在的挑战,并介绍了能够应对这些挑战的开发工具包和运行时环境。
-
第 1 部分,使用 Java 语言编写实时系统
本文描述了使用 Java 语言开发能够满足实时性能需求的系统的过程中遇到的主要挑战。全面概述了实时应用程序开发的意义,以及如何设计运行时系统以满足实时应用程序的需求。
-
第 2 部分,比较编译技术
本文考察了 Java 语言的本地代码编译所涉及的一些问题。单独使用动态(即时)编译或静态(提前)编译都不能满足所有 Java 应用程序的需求。作者在各种执行环境中对这两种编译技术进行了比较,对二者如何相互补充进行了展示。
-
第 3 部分,线程化和同步
本文考察了 Java 实时规范(RTSJ)的实现必须支持的线程化和同步问题,您将了解到开发和部署实时应用程序时必须牢记的有关这两个方面的基本考虑。
-
第 4 部分,实时垃圾收集
传统垃圾收集(GC)中的不确定暂停使 Java 技术无法提供适合实时(RT)开发的环境。Metronome GC —— IBM WebSphere Real Time 的一部分 —— 提供了确定性的 GC 行为,如果与其他特性结合使用,就能使开发人员用 Java 语言编写硬 RT 应用程序。
-
第 5 部分,编写和部署实时 Java 应用程序
本文展示了如何使用 IBM WebSphere Real Time 附带的工具,编写和部署实时 Java 应用程序。
从早期的 Java 沙箱到 JDK 1.4 引入的健壮的、全功能的安全体系结构,再到 J2EE Web 应用程序安全体系结构的引入,安全性一直是 Java 平台的基本组件。
Java 安全专题
本专题汇集了与 Java 安全性主题相关的文章和教程,是您全面了解与掌握 Java 平台安全技术的最佳资源。
Java 平台提供了一套广泛而功能强大的 API、工具和技术。其中,内建支持线程是它的一个强大的功能。这一功能为使用 Java 编程语言的程序员提供了并发编程这一诱人但同时也非常具有挑战性的选择。
Java 多线程与并发编程专题
本专题汇集了与 Java 多线程与并发编程相关的文章和教程,帮助读者理解 Java 并发编程的模式及其利弊,向读者展示了如何更精确地使用 Java 平台的线程模型。
|