



Java 编程语言(Java programming language) 与众不同之处在于:Java 程序既是编译型的(compiled)(转换为一种称为 Java 字节码的中间语言),又是解释型的(interpreted)(JVM 对字节码进行解析和运行)。编译只进行一次,而解释在每次运行程序时都会进行。编译后的字节码采用一种针对 JVM 优化过的机器码形式;解释器是 JVM 的实现。
Java 语言基础
本教程介绍 Java 编程语言,包括一些用来说明面向对象语言的语法示例, 以及一些标准编程的练习,如定义实例方法,使用内建(built-in)类型,创建用户自定义类型, 使用引用变量(reference variables)等。
Java 编程介绍
本教程向您介绍利用 Java 语言进行面向对象编程(object-oriented programming,OOP)。
中级 Java 编程
本教程将介绍 Java 语言的一些功能,这些功能比“Java 编程介绍”教程中介绍的要更复杂一些。
JDK 5.0(也叫做 Java 5.0 或者 Tiger)给 Java 语言带来了一些较大的变化。其中最重要的变化就是引入了泛型 — 支持定义带有抽象类型参数的类,这些参数由您在实例化时指定。泛型为提高大型程序的类型安全和可维护性带来了很大的潜力。
介绍 JDK 5.0 中的泛型
本教程解释了在 Java 语言中引入泛型的动机,详细介绍了泛型的语法和语义,并讲述了如何在自己的类中使用泛型。
多角度看 Java 中的泛型
本文通过一些示例从基本原理,重要概念,关键技术,以及相似技术比较等多个角度对 Java 语言中的泛型技术进行了介绍,重点强调了泛型中的一些基本但又不是很好理解的概念。
编译时使用 Generic Java 捕获更多的错误
参数类型提供了一种实现泛型类的简明方法,它可以减轻强制类型转换的需要,允许更多的错误在编译时被捕获。Generic Java(泛型 Java)是在 Java 语言里增加参数类型的一项提议,并可以支持以前编写的代码和先前存在的 Java 虚拟机。
轻松掌握 Java 泛型系列(共四部分)
Java 理论和实践: 了解泛型
对于初次使用泛型类型的用户来说,泛型的某些方面看起来可能不容易明白,甚至非常奇怪。本文分析了束缚第一次使用泛型的用户的常见陷阱。
Java 理论与实践: 使用通配符简化泛型使用
通配符是 Java 语言中最复杂的泛型之一。本文解释了一些由 javac 生成的怪异错误消息并提供了一些简化泛型使用的技巧和解决方法。
在 Eclipse 3.1 中体验 J2SE 5.0 的新特性:泛型
本文介绍 J2SE 5.0 中的特性 — 泛型 , 并在此基础上介绍如何在 Eclipse 3.1 开发环境中开发泛型应用。
Java 5(Tiger)中的一个重要新特性是枚举构造,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。
枚举类型入门
本文解释枚举的定义,介绍如何在应用程序中运用枚举,以及它为什么能够让您抛弃所有旧的 public static final 代码。
深入研究枚举类型
本文将解释如何使用枚举类及其预定义方法,同时还将展示如何添加构造函数、覆盖方法,以及拥有实例变量。
在 Eclipse 3.1 中体验 J2SE 5.0 的新特性:枚举类型
本文介绍 J2SE 5.0 中的特性 — 枚举类型 , 并在此基础上介绍如何在 Eclipse 3.1 开发环境中开发枚举类型应用。
注释(Annotation),Java 5(Tiger)中的新功能,将非常需要的元数据(Meta Data)工具引入了核心 Java 语言。
Tiger 中的注释,第 1 部分: 向 Java 代码中添加元数据
本文解释了元数据如此有用的原因,向您介绍了 Java 语言中的注释,并研究了 Tiger 的内置注释。
Tiger 中的注释,第 2 部分: 定制注释
本文说明了如何创建定制注释,如何用自己的注释注解文档,并进一步定制代码。
注释与配置文件
本文将讨论注释和配置文件这两种方式的利弊,并研究在将 Java 标准进程和许多开源项目转换成采用基于注释的方式表示元数据时,对开发人员有意义的东西。
在 Eclipse 3.1 中体验 J2SE 5.0 的新特性:注释
本文介绍 J2SE 5.0 中的特性 — 注释 , 并在此基础上介绍如何在 Eclipse 3.1 开发环境中开发注释应用。
for/in 循环通常叫作 增强的 for 或者 foreach,它是 Java 5.0 中一个极为方便的特性。实际上它没有提供任何新的功能,但它显然能让一些日常编码任务变得更简单一些。
用 for/in 在 Java 5.0 中增强循环
在本文中,您将学习这方面的许多内容,其中包括使用 for/in 在数组和集合中进行遍历,以及如何用它避免不必要(或者只是令人厌烦的)类型转换。
Java 中的指针,引用及对象的 clone
Java 语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。
深入理解 abstract class 和 interface
本文将对它们之间的区别进行一番剖析,试图给开发者提供一个在二者之间进行选择的依据。
下列文章选自经验丰富的 Java 开发人员 Brian Goetz 撰写的系列专栏“
Java 理论与实践
”:
-
您的小数点到哪里去了?
本文探讨了在 Java 程序中使用非整数类型时一些常碰到的陷阱和“gotcha”。
-
变还是不变?
尽管不变性可能未必对于所有类都有意义,但大多数程序中至少有一些类将受益于不可变。本文说明了不变性的一些长处和构造不变类的一些准则。
-
关于异常的争论
关于在 Java 语言中使用异常的大多数建议都认为,在确信异常可以被捕获的任何情况下,应该优先使用检查型异常。最近,几位著名的作者已经开始认为非检查型异常在优秀的 Java 类设计中有着比以前所认为的更为重要的地位。本文考察了关于使用非检查型异常的优缺点。
-
用弱引用堵住内存泄漏
虽然用 Java 语言编写的程序在理论上是不会出现“内存泄漏”的,但是有时对象在不再作为程序的逻辑状态的一部分之后仍然不被垃圾收集。本文探讨了无意识的对象保留的常见原因,并展示了如何用弱引用堵住泄漏。
-
伪 typedef 反模式
虽然用 Java 将泛型添加到 Java 语言中增加了类型系统的复杂性,提高了许多变量和方法声明的冗长程度。因为没有提供 “typedef” 工具来定义类型的简短名称,所以有些开发人员转而把扩展当作 “穷人的 typedef”,结果收到了良好的效果。本文解释了这个 “反模式” 的限制。
下列最佳实践节选自由 Addison-Wesley 出版的《Practical Java》一书:
Java 语言中的函数编程
本文展示了如何使用像闭包(closure)和 高阶函数(higher order function)这样的函数编程结构,在 Java 语言中编写良构的、模块化的代码。
闭包之争
Java 语言是否应该引入像闭包这样的主流新特性,然而过多特性又会不会使得原本好端端的语言过于复杂?本文回顾了相关概念,并详细介绍了两种相互竞争的闭包方案。
|