大可制作:QQ群:31564239(asp|jsp|php|mysql)

语言技术:Java Gossip(二)

I'm Tiger...hoo... 在学习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接口,单就 表面上来看,线程并不困难。
您只要实现 Runnable接口,就可以实现线程功能, 入门是简单的,但数据一被共用,事情就变得复杂。
来看看 JDK 5.0 为多线程新增的几个好用类。

反射(Reflection)
    反射机制允许运行时动态检视与操作类,一般应用程序开发较不常用到,但是在一些框架或检视工具程序中,就经常使用到反射机制。
  • 检视类
即使您拿到一个类 别并对它一无所知,但其实它本身就包括了 许多信息,从 Class 开始,您可以获得这个类的许多讯息。
  • 生成与操作
使用反射机制,您 可以于运行时动态载入类并生成对象, 操作对象上的方法甚至改变类成员的值。

metadata
    metadata 简单的说就是数据的数据(Data about data),J2SE 5.0 中对 metadata 的支持是 Annotation,目的在对程序码作出说明以利分析工具使用。
  • Annotation
Annotation 对程序运行没有影响,它的目的在对编译器或分析工具说明程序的某些信息,您可以在package、class、method、field等上加上 Annotation。
在定义 Annotation 类型的时候,为 Annotation 类型加上 Annotation 并不奇怪,这为处理 Annotation 类型的工具提供信息。

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

网路
    这边介绍一下简单的网路程序设计,并使用 Socket 与 ServerSocket 设计一些简单的实例。
  • 入门
首先从认识 java.net 包下的几个类认识起。
  • 程序实例
以 Socket 及 ServerSocket 所实现的一些简单网路程序范例。

舍遗补缺
    前面都是有系统的介绍某个主题,然而整个 Java SE 要详细说明是不可能的,这边就随时补充一些可能使用到的类。
  • 属性设定、讯息绑定
您可以将一些属性 设定独立于一个.properties档 中,由程序读取,若要修改属性则直接修改.properties文件即可。也可以将讯息另外定义在一个文字文件中,而不是写死在程序中,日后想要更改讯息 时,只要更改文字文件内容,而不用重新编译程序。
表面上看来,要取 得系统的时间只要使用 Date 类就可以了,但查阅 Date 后,发现很多方法都被标示为 Deprecated?
如果您只是要作一 些简单的文件记录,可以考虑内建在JDK 中的Logging API,好处是它从JDK 1.4之后就成为J2SE的一员。
如果您想要排定任 务在某些时间点运行,那么您可以使用标准 API中的Timer与TimerTask。

视窗程序