一个 Applet 是一个运行在网页浏览器上的 Java 程序。一个 Applet 可以使一个全功能的 Java 应用程序因为它在处理上拥有整个 Java API。 在一个 Applet 和一个独立的 Java 应用程序间有一些重要的不同,包括以下方面:一个 Applet 是继承 java.applet.Applet 类的一个 Java 类。main() 方法不在 Applet 上被调用,并且一个 applet 类将不定义 main()。
Java 是一种多线程编程语言,这意味着我们能用 java 开发多线程程序。一个多线程程序包含两个或更多的能并行运行的部分,并且每一部分能最优利用可用资源,尤其是当你的计算机有多个 CPU 时,同时解决不同的任务。 多任务处理表示多个过程共同处理像CPU这样共享的资源时。多线程将多任务处理的思想扩展到应用程序,你可以将一个单独的应用中的特定的操作细分为单独的线程。
用你的 Java 应用程序来发送一封电子邮件是足够简单的但是开始时你应该在你的机器上安装有 JavaMail API 和 Java Activation Framework (JAF)。 你可以从 Java 的标准企业网站上下载最新的 JavaMail(1.2 版本)版本。 你可以从 Java 的标准企业网站上下载最新的 JAF(1.1.1 版本)版本。下载并解压这些文件,在新创建的顶级目录中你将找到许多应用程序的 jar 文件。
术语网络编程指编写跨多种设备(电脑)执行的,设备使用一个网络互相连接的程序。 J2SE API 的 java.net 包包含了一个类的集合和提供底层通信细节的接口,允许你编写专注解决即将到来的问题的程序。 java.net 包为两种常用的网络协议提供支持: TCP: TCP 代表传输控制协议,允许两个应用程序间的可靠通信。TCP 通常在因特网协议上被使用,这被称为 TCP/IP。
Java 提供了一种机制,叫做对象序列化,这里对象被描述成一系列包括对象的数据以及有关对象的类型和在对象中存储的数据的类型的字节。 在一个序列化的对象被写进文件之后,它能在文件中被读出并被反序列化为类型信息和表示对象的字节,并且它的数据可以被用来重新创建在内存中的对象。
如果我们可以写一个单独的能在一个整型数组,一个字符串数组或者一个任何类型支持排序的数组内排列元素的排序方法将会是很好的。 Java Generic 方法和 generic 类让程序员可以用一种单独的方法声明,一系列有关的方法或者用一个单独的类声明来各自指定一系列有关的类型。 Generic 也提供了编译时类型安全来允许程序员在编译时捕获无效的类型。
Java 2 之前,Java 为对象组的存储和操作提供了特别的类比如 字典,向量,堆栈和属性。尽管这些类确实有用,它们缺少一个中心的,统一的主题。因此,你使用向量的方法和你使用属性的方法是不同的。 集合框架被设计来满足几个目标 框架需要是高性能的。基础集合(动态数组,链表,数和哈希表)是高效的。 框架需要允许不同的集合类型以类似的方式和高度的互操作性工作。
Java 工具包中所提供的数据结构非常强大并且有很多的功能。这些数据结构包含以下的接口和类:EnumerationBitSetVectorStackDictionaryHashtableProperties现在这些类都是旧的了, Java-2 已经引入了一种新的框架叫做 Collections Framework,在下一个章节中来讲解它。Enumeration枚举接口本身并不是一个数据结构,但是它在其他数据结构中非常重要。
接口是抽象方法的集合。如果一个类实现了一个接口,那么就需要继承这个接口中的所有抽象方法。接口不是类。写一个接口和写一个类很相似,但是它们是两个不同的概念。类是描述一个对象的成员属性和行为。接口只包含一个类所实现的行为。除非实现了接口的类是抽象的,否则接口中的所有方法都需要在类中实现。在以下方面,接口和类非常相似:一个接口可以包含任意数量的方法。
封装是面向对象程序设计四大基本概念之一,其余三个分别是继承,多态和抽象。封装是一种可以使类中的字段私有并能通过公有方法来访问私有字段的技术。如果一个字段被声明为私有,它就不能在类的外部被访问,从而隐藏了类内部的字段。基于这个原因,封装有时也被称为数据隐藏。封装可以被认为是一种能够保护代码和数据被定义在类外的其它代码任意访问的屏障。
Abstraction 是指在 OOP 中让一个类抽象的能力。一个抽象类是不能被实例化的。类的功能仍然存在,它的字段,方法和构造函数都以相同的方式进行访问。你只是不能创建一个抽象类的实例。如果一个类是抽象的,即不能被实例化,这个类如果不是子类它将没有什么作用。这体现了在设计过程中抽象类是如何被提出的。
多态性是指对象能够有多种形态。在 OOP 中最常用的多态性发生在当父类引用指向孩子类对象时。任何能够通过一个以上的 IS-A 测试的 Java 对象被认为是多态的。在 Java 中所有对象都是多态的,因为任何一个对象都会有一个他们自己类型的和 Object 类的 IS-A 关系。重要的是知道,通过引用变量是唯一可以用来访问一个对象的方法。引用变量可以只有一个类型。
在上一章节中,我们讨论了父类和子类。如果一个类从它的父类继承了一个方法,如果这个方法没有被标记为 final ,就可以对这个方法进行重写。重写的好处是:能够定义特定于子类类型的行为,这意味着子类能够基于要求来实现父类的方法。在面向对象编程中, overriding 意味着去重写已经存在的方法。
继承可以被定义为一个对象获取另一个对象属性的过程。使用继承可以使信息以继承顺序有序管理。当我们谈论起继承,最常用的关键字应该为 extends 和 implements。这些关键字将决定一个对象是否是 A 类型或是其他类型。通过使用这些关键字,我们可以使一个对象获得另一个对象的属性。IS-A 关系IS-A 是说:这个对象所属于另一个对象。
异常是一个程序执行过程中出现的问题。引起异常的原因包括以下几点:用户输入无效的数据用户打开一个不能被找到的文件网络连接已经丢失或 JVM 已经耗尽内存一些异常是由于用户的错误,也有是因为程序员的错误,还有是因为一些物理资源在某些形式上的错误。
在 Java 中 java.io 包含的每一个类几乎都要进行输入和输出操作。所有的这些流代表一个输入源和输出目的地。在 java.io 包中支持许多数据,如原语,对象,本地化字符等等。流可以被定义为一个序列的数据。输入流用来从一个源中读数据,输出流用来向一个目的地写数据。Java 提供了强大且灵活的有关文件和网络的 I/O 功能,但本教程涵盖的是非常基础的流和 I/O 操作。
一个 Java 方法是为了执行某个操作的一些语句的组合。举个例子来说,当你调用 System.out.println 方法时,系统实际上会执行很多语句才能在控制台上输出信息。现在你将学习怎么创建你自己的方法,他们可以有返回值也可以没有返回值,可以有参数,也可以没有参数,重载方法要使用相同的方法名称,并在程序设计中利用抽象的方法。
Java 提供了 java.util.regex 包来与正则表达式进行模式匹配。Java 正则表达式和 Perl 编程语言非常相似,也容易学习。正则表达式是一个特殊的字符序列,有助于你用一种专门的语法模式来匹配或找到其他字符串或字符串集。他们可以用来搜索编辑或是操纵文本和数据。java.util.regex 包主要包含了下面的三个类:Pattern 类:一个 Pattern 对象是正则表达式编译表示。
Java 在 java.util 包中提供了 Date 类,这个类封装了当前的日期和时间。Date 类支持两种构造函数。第一个构造函数初始化对象的当前日期和时间。
Java 提供了一个数据结构:数组,用于存储相同类型的元素的一个固定大小的连续集合。数组是用于存储数据的集合,但往往将数组认为是相同类型的变量的集合。 跟声明单个变量相反,如 number0, number1, ... number99, 声明一个数组变量,如数字和使用 numbers[0], numbers[1] ..., numbers[99] 来表示各个变量。
关注时代Java