ITEEDU

语言技术:Java Gossip(二)

在学习Java的过程中,您会接触到很多框架(Framework), 而第一步就是从J2SE的框架开始学习,框架让您不用重新打造您需要的功能组件,它也是经验的集成,即使您要重新打造,参考框架的实作方式,就可以让您获 得不少宝贵的经验。

事实上以下的每个主题区都有专书介绍,这边所介绍的内容,都只是某个主题的入门,若有进阶的应用需求,查阅相关书籍是必要的。

对象容器(Container)

    对象容器可以帮您持有对象,在Java中分作两大类:Collection 与 Map。前者可持有各自独立的对象,后者持有成对的key-value对象。

  • Collection 类

Collection 类包括了 List 类与 Set 类,List 以放置对象至容器中的顺序来排列对象,Set 类不接受重复的对象,并有自己的一套排序规则。

  • Map 类

在将对象存入Map类时,需要配合一把key,您要取回对象时就是根据这把key,Map中的key是唯一的,Map拥有自己的排序机制。

输入输出(I/O)

    为了要将程序运行结果储存下来,以供下一次开启时使用,档案输入输出是一个应用程序所必备的,藉由档案的输入输出,也可以一同了解Java的I/O处理。

  • 档案处理

File类别是档案的抽象表示,也是处理档案输入输出时所必备的。

  • 位串流

计算机中的数据都是以 0 与 1 的方式来储存,如果您要在两个装置之间进行数据的存取,当然也是以 0 与 1 位的方式来进行,Java将数据目的地与来源之间的流动抽象化为一个串流(Stream),而当中流动的则是位数据。

  • 字符串流

Reader、Writer等是处理字符串流(Character Stream)的相关类别,简单的说,就是对串流数据以一个字符(16bit)的长度为单位来处理(0~65535、0x0000-0xffff),并进行适当的字符转换处理。

执行绪(Thread)

    一个执行绪是进程(Process)中的一个执行流程,一个进程中可以同时包括多个执行绪,CPU会分配时间片段来处理这些子流程,这使得一个程序可以像是同时间处理多个事务。

  • 执行绪入门

想要实作执行绪功能,只要实作Runnable接口,单就表面上来看,执行绪并不困难。

  • 同步化(synchronized)

您只要实作Runnable接口,就可以实作执行绪功能,入门是简单的,但数据一被共享,事情就变得复杂。

  • JDK 5.0 新增类别

来看看 JDK 5.0 为多执行绪新增的几个好用类别。

反射(Reflection)

    反射机制允许执行时期动态检视与操作类别,一般应用程序开发较不常用到,但是在一些框架或检视工具程序中,就经常使用到反射机制。

  • 检视类别

即使您拿到一个类别并对它一无所知,但其实它本身就包括了许多信息,从 Class 开始,您可以获得这个类的许多讯息。

  • 生成与操作

使用反射机制,您可以于执行时期动态加载类别并生成对象,操作对象上的方法甚至改变类别成员的值。

metadata

    metadata 简单的说就是数据的数据(Data about data),J2SE 5.0 中对 metadata 的支持是 Annotation,目的在对程序代码作出说明以利分析工具使用。

  • Annotation

Annotation 对程序运行没有影响,它的目的在对编译器或分析工具说明程序的某些信息,您可以在package、class、method、field等上加上 Annotation。

  • meta-annotation

在定义 Annotation 型态的时候,为 Annotation 型态加上 Annotation 并不奇怪,这为处理 Annotation 型态的工具提供信息。

数据库(JDBC)

    JDBC是用于执行SQL的Java API,它将数据库存取的API与SQL陈述分开,实现数据库无关的API接口,藉由JDBC统一的接口,开发人员只要专注于SQL陈述,而可以不必理会底层的数据库驱动程序与相关接口。

舍遗补缺

    前面都是有系统的介绍某个主题,然而整个 J2SE 要详细说明是不可能的,这边就随时补充一些可能使用到的工具类别。

  • 属性设定、讯息绑定

您可以将一些属性设定独立于一个.properties文件中,由程序读取,若要修改属性则直接修改.properties档案即可。也可以将讯息另外定义在一个文本文件中,而不是写死在程序中,日后想要更改讯息时,只要更改文本文件内容,而不用重新编译程序。

  • 日期、时间

表面上看来,要取得系统的时间只要使用 Date 类别就可以了,但查阅 Date 后,发现很多方法都被标示为 Deprecated?

  • 记录(Logging)

如果您只是要作一些简单的文件记录,可以考虑内建在JDK中的Logging API,好处是它从JDK 1.4之后就成为J2SE的一员。