《Java程序设计》电子辅导_第1页
《Java程序设计》电子辅导_第2页
《Java程序设计》电子辅导_第3页
《Java程序设计》电子辅导_第4页
《Java程序设计》电子辅导_第5页
已阅读5页,还剩147页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、奥鹏远程教育中心 高校名称:福建师范大学课程名称:java程序设计目录第一章 java语言概述 课堂笔记3第一章 java语言概述 faq8第一章 java语言概述 关键词汇9第一章 java语言概述 拓展资源10第二章 java语言基础 课堂笔记12第二章 java语言基础 faq19第二章 java语言基础 关键词汇20第二章 java语言基础 拓展资源21第三章 面向对象技术基础 课堂笔记23第三章 面向对象技术基础 faq25第三章 面向对象技术基础 关键词汇26第三章 面向对象技术基础 拓展资源27第四章 java语言中的面向对象特性 课堂笔记30第四章 java语言中的面向对象特性

2、 faq38第四章 java语言中的面向对象特性 关键词汇39第四章 java语言中的面向对象特性 拓展资源40第五章 数组 课堂笔记42第五章 数组 faq46第五章 数组 关键词汇47第五章 数组 拓展资源47第六章 字符串处理 课堂笔记49第六章 字符串处理 faq52第六章 字符串处理 关键词汇54第六章 字符串处理 拓展资源54第七章 输入输出处理 课堂笔记57第七章 输入输出处理 faq63第七章 输入输出处理 关键词汇65第七章 输入输出处理 拓展资源65第八章 例外处理 课堂笔记75第八章 例外处理 faq80第八章 例外处理 关键词汇82第八章 例外处理 拓展资源83第九章

3、多线程 课堂笔记86第九章 多线程 faq102第九章 多线程 关键词汇104第九章 多线程 拓展资源105第十章 图形用户界面 课堂笔记108第十章 图形用户界面 faq116第十章 图形用户界面 关键词汇117第十章 图形用户界面 拓展资源117第十一章 java applet 课堂笔记127第十一章 java applet faq134第十一章 java applet 关键词汇136第十一章 java applet 拓展资源136第十二章 java网络编程 课堂笔记138第十二章 java网络编程 faq146第十二章 java网络编程 关键词汇147第十二章 java网络编程 拓展资源

4、148第一章 java语言概述 课堂笔记主要知识点掌握程度 了解java语言的发展历程,java语言的基本特点。掌握掌握java虚拟机和字节码的概念,理解java程序的内在运行原理,掌握java程序的编译环境、编译方法和编译运行的常见工具。 知识点整理 一、java语言的特点1、简单 java语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。java略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。另外,java也适合于在小型机上运行,它的基本解释器及类的支持只有

5、40kb左右,加上标准类库和线程的支持也只有215kb左右。2、面向对象 java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。3、分布性 java 是面向网络的语言 。通过它提供的类库可以处理tcp/ip协议,用户可以通过url地址在网络上很方便地访问其他对象。 4、鲁棒性 java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误

6、。通过集成的、面向对象的例外处理机制,在编译时,java提示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外,java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。 5.安全性用于网络、分布环境下的java必须要防止病毒的入侵,java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用“ 特洛伊 ”木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。6.体系结构中立java解释器生成与体系结构无关的字节码指令,只要安装了java运行时系统,java程序就可在任意的处理器上运行。这些字节码指

7、令对应于java虚拟机中的表示,java解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。7.可移植性与平台无关的特性使java程序可以方便地被移植到网络上的不同机器。同时,java的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,java编译器是由java语言实现的,java运行时系统由标准c实现,这使得java系统本身也具有可移植性。8.解释执行java解释器直接对java字节码进行解释执行。字节码本身携带了许多编译时信息,使得连接过程更加简单。9.高性能和其他解释执行的语言如basic不同 ,java字节码的设计使之能很容易地直接转换成对应于特定cpu的机器码,从而得

8、到较高的性能。10.多线程多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。11.动态性java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。并且java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。二、java工作方法1.java虚拟机java的心脏是java虚拟机 ,即jvm。java虚拟机是只能驻留在内存中的虚拟计算机。jvm 使 java 程序在各种平台

9、上运行就像是在编译代码的平台上运行一样。正是因为java虚拟机,才使得java是可移植的,它提供了一个介于编译过的java程序和底层硬件平台及操作系统之间的一个抽象层。运行java虚拟机只内用很少内存 。这样设计的目的是:可以将其用在各种电器上。事实上,java语言最早是为家用电器开发的。电话、pc机、电视机等等在不久的将来都会固化有允许java程序运行的java虚拟机。2.java编译与执行与许多其他编程语言一样,java用一个编译器将人们可读的源程序代码转换成可执行程序 。传统编译器生成的是特定硬件 的可执行码。例如windows 95 c+编译器生成的是intelx86处理器上可以执行的

10、程序,而java编译器生成的是独立于处理器结构的字节代码。字节代码只能用一个java虚拟机(jvm)来执行,jvm是理想化的java处理器芯片,通常是在软件上实现而不是在硬件上实现。图1 java编译过程编译的过程如图1所示 :java 字节 代码文件称为 类文件(class),因为其包含单个java类 。现在,只要把类看作一组相关程序或一个扩展数据类型。大多数java程序由多个类文件组成。3.java与c/c+的区别对于变量声明、参数传递、操作符、流控制等,java使用了和c、c+相同的传统 ,使得熟悉c、c+的程序员能很方便地进行编程。同时,java为了实现其简单、鲁棒、安全等特性,也摒弃

11、了c和c+中许多不合理的内容。(1)全局变量java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。例如:class globalvarpublic static global_var;在类globalvar中定义变量global_var为public static,使得其他类可以访问和修改该变量。java对全局变量进行了更好的封装。而在c和c+中,依赖于不加封装的全局变量常常造成系统的崩溃。(2)gotojava不支持c、c+中的goto语句 ,而是通过例外处理语句try、catch 、final等来代替c 、c+中用goto来处理遇到错误时跳

12、转的情况,使程序更可读且更结构化。(3)指针指针是c、c+中最灵活,也是最容易产生错误的数据类型。由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个c+中的私有成员,从而破坏安全性,造成系统的崩溃。而java对指针进行完全的控制,程序员不能直接进行任何指针操作,例如把整数转化为指针,或者通过指针释放某一内存地址等。同时,数组作为类在java中实现,很好地避免了数组访问越界这一c、c+中不作检查的错误。(4)内存管理在c中 ,程序员通过库函数malloc( )和free( )来分配和释放内存,c+中则通过运算符new和delete来分配和

13、释放内存。如果再次释放已释放的内存块或未被分配的内存块,会造成系统的崩溃;同样,忘记释放不再使用的内存块也会逐渐耗尽系统资源。而在java中,所有的数据结构都是对象,通过运算符new为它们分配内存堆。通过new得到对象的处理权 ,而实际分配给对象的 内存可能随程序运行而改变,java对此自动地进行管理并且进行垃圾收集,有效地防止了由于程序员的误操作而导致的错误,并且更好地利用了系统资源。(5)数据类型的支持在c、c+中,对于不同的平台,编译器对于简单数据类型如int、float等分别分配不同长度的字节数,例如:int在 ibm pc中为16位,在vax-11中为32位,这导致了代码的不可移植性

14、,但在java中,对于这些数据类型总是分配固定长度的位数,如对int型 ,它总占32位,这就保证了java的平台无关性。(6)类型转换在c、c+中,可以通过指针进行任意的类型转换,常常带来不安全性,而java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换。(7)头文件c、c+中用头文件来声明类的原型以及全局变量、库函数等,在大的系统中,维护这些头文件是很困难的。而java不支持头文件,类成员的类型和访问权限都封装在一个类中,运行时系统对访问进行控制,防止对私有成员的操作。同时,java中用import语句来与其他类进行通讯,以使用它们的方法。(8)结构和联合c、c+中的结构

15、和联合中所有成员均为公有,这就带来了安全性问题。java中不包含结构和联合,所有的内容都封装在类中。三、java开发环境jdk是java developers kit的简称,意即java的发展工具。可以直接去sun公司的主页上去下载(htttp:/)。本课程所有的例题程序使用jdkl.3.1版,执行于windows 98操作系统 。取得的jdk是一个自解压的执行文件,最好先存入一个暂时的工作目录,执行自解执行文件后,建议您装入c:jdk1.3目录。然后在自动执行文件autoexec.bat中的path的路径设置层端附加上“ c:jdk1.3bin”和“classpath=.;c:jdkexam

16、plesapplications ;”,重新开机后就可自动指到c:jdk1.3bin目录了。在c:jdk1.3bin目录中包含jdk的工具组件 ,提供所有可执行文件及动态连结库(dynamic link library简称dll)让你使用。主要软件包括编译程序javac、解释程序java 、调试程序jdb、反编译程序javap、文档生成器javadoc、applet解释器appletviewer、c语言头文件工具程序javah等。详细工具如表:工具程序用途说明javacjava编译器,将java源代码换算成字节代码javajava翻译器,直接从类文件执行java应用程序字节代码appletvi

17、ewer(小程序浏览器)一种类执行html文件上的java小程序类的java浏览器javadoc根据java源代码及其说明语句生成的html文档jdbjava调以器,可以逐行的执行程序、设置断点和检查变量javah产生以调jbjava过程的c过程,或建立能被java程序调用的c过程的文件头javapjava反汇编器,显示编译类文件中的可访问功能和数据, 同时显示字节代码的含义rmic生成支持远程方法调用(rmi)的类文件jarjava档案(jar)文件生成器。jar文件可以在一个压缩文件中发布多个java类和资源四、简单的java程序下面我们先介绍两个简单的java程序,并对其进行分析。例1.

18、1 public class helloworldapp /an applicationpublic static void main (string args )system.out.println(“hello world!”);本程序的作用是输出下面一行信息:hello world!程序中 ,首先 用保留字 class 来声明 一个新的类 ,其类名为helloworldapp ,它是一个公共类(public)。整个类定义由大括号 括起来。在该类中定义了一个main ( )方法 ,其中public表示访问权限,指明所有的类都可以使用这一方法 ;static指明该方法是一个类方法,它可以通过

19、类名直接调用;void则指明main( )方法不返回任何值。对于一个应用程序来说,main( )方法是必须的,而且必须按照以上的格式来定义。java解释器在没有生成任何实例的情况下 ,以main( )作为入口来执行程序。jave程序中可以定义多个类,每个类中可以定义多个方法,但是最多只能有一个公共类,main( )方法也只能有一个,作为程序的入口。main( )方法定义中,括号( )中的string args 是传递给main( )方法的参数 ,参数名为args,它是类string的一个实例 ,参数可以为0个或多个,每个参数用“ 类名 参数名 ”来指定 ,多个参数间用逗号分隔。在main( )

20、方法的实现(大括号中) ,只有一条语句:system.out.println (“hello world!”);它用来实现字符串的输出,这条语句实现与c语言中的 printf 语句和c+中coutjavac helloworldapp.java编译的结果是生成字节码文件helloworldapp.class。最后用java解释器来运行该字节码文件:c:java helloworldapp结果在屏幕上显示hello world!我们再来看下面的一个例子:例1.2 import java.awt.*;import java.applet.*;public class helloworldapple

21、t extends applet /an appletpublic void paint(graphics g)g.drawstring (“hello world!”,20,20); 这是一个简单的applet(小应用程序)。程序中 ,首先用import语句输入java.awt和java.applet下所有的包,使得该程序可能使用这些包中所定义的类,它类似于c中的#include语句。然后声明一个公共类helloworldapplet,用extends指明它是applet的子类。在类中,我们重写父类applet的paint( )方法,其中参数g为graphics类,它表明当前作画的上下文。在

22、paint( )方法中 ,调用g的方法drawstring( ),在坐标(20,20)处输出字符串“hello world!”,其中坐标是用象素点来表示的。这个程序中没有实现main( )方法,这是applet与应用程序application(如例1)的区别之一 。为了运行该程序,首先我们也要把它放在文件helloworldapplet.java中,然后对它进行编译:c:javac helloworldapplet.java得到字节码文件helloworldapplet.class 。由于applet中没有main()方法作为java解释器的入口,我们必须编写html文件 ,把该applet嵌

23、入其中 ,然后用 appletviewer 来运行,或在支持java的浏览器上运行。它的文件如下: an applet 其中用标记来启动helloworldapplet ,code指明字节码所在的文件,width和height指明applet所占的大小,我们把这个html文件存入example.html,然后运行:c:appletviewer example.html这时屏幕上弹出一个窗口,其中显示hello world!,显示结果如图1.3.4所示。从上述例子中可以看出,java程序是由类构成的 ,对于一个应用程序来说,必须有一个类中定义main( )方法,而对applet来说,它必须作为a

24、pplet一个子类。在类的定义中 ,应包含类变量的声明和类中方法的实现。java在基本数据类型 、运算符、表达式、控制语句等方面与c、c+基本上是相同的 ,但它同时也增加了一些新的内容。第一章 java语言概述 faq一、java与c/c+的区别对于变量声明、参数传递、操作符、流控制等,java使用了和c、c+相同的传统 ,使得熟悉c、c+的程序员能很方便地进行编程。同时,java为了实现其简单、鲁棒、安全等特性,也摒弃了c和c+中许多不合理的内容。1.全局变量java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。例如:class global

25、varpublic static global_var;在类globalvar中定义变量global_var为public static,使得其他类可以访问和修改该变量。java对全局变量进行了更好的封装。而在c和c+中,依赖于不加封装的全局变量常常造成系统的崩溃。2.gotojava不支持c、c+中的goto语句 ,而是通过例外处理语句try、catch 、final等来代替c 、c+中用goto来处理遇到错误时跳转的情况,使程序更可读且更结构化。3.指针指针是c、c+中最灵活,也是最容易产生错误的数据类型。由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式

26、类型转换后,可以访问一个c+中的私有成员,从而破坏安全性,造成系统的崩溃。而java对指针进行完全的控制,程序员不能直接进行任何指针操作,例如把整数转化为指针,或者通过指针释放某一内存地址等。同时,数组作为类在java中实现,很好地避免了数组访问越界这一c、c+中不作检查的错误。4.内存管理在c中 ,程序员通过库函数malloc( )和free( )来分配和释放内存,c+中则通过运算符new和delete来分配和释放内存。如果再次释放已释放的内存块或未被分配的内存块,会造成系统的崩溃;同样,忘记释放不再使用的内存块也会逐渐耗尽系统资源。而在java中,所有的数据结构都是对象,通过运算符new为

27、它们分配内存堆。通过new得到对象的处理权 ,而实际分配给对象的 内存可能随程序运行而改变,java对此自动地进行管理并且进行垃圾收集,有效地防止了由于程序员的误操作而导致的错误,并且更好地利用了系统资源。5.数据类型的支持在c、c+中,对于不同的平台,编译器对于简单数据类型如int、float等分别分配不同长度的字节数,例如:int在 ibm pc中为16位,在vax-11中为32位,这导致了代码的不可移植性,但在java中,对于这些数据类型总是分配固定长度的位数,如对int型 ,它总占32位,这就保证了java的平台无关性。6.类型转换在c、c+中,可以通过指针进行任意的类型转换,常常带来

28、不安全性,而java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换。7.头文件c、c+中用头文件来声明类的原型以及全局变量、库函数等,在大的系统中,维护这些头文件是很困难的。而java不支持头文件,类成员的类型和访问权限都封装在一个类中,运行时系统对访问进行控制,防止对私有成员的操作。同时,java中用import语句来与其他类进行通讯,以使用它们的方法。8.结构和联合c、c+中的结构和联合中所有成员均为公有,这就带来了安全性问题。java中不包含结构和联合,所有的内容都封装在类中。二、java应用程序与小程序java程序可分为两种: java应用程序(java appli

29、cation)java小程序(java applet)小程序就是小的应用程序,其在计算机行业中有传统的含义 。在java中 ,小程序就是可从web文档进来的java程序 ,换句话说,是从html文件进来的程序。而java应用程序则是从命令行上运行的程序 ,对java而言,java小程序的大小和复杂性都没有限制 。事实上,java小程序有的方面比java应用程序更强大。但是在internet上 ,由于通信速度有限,下载时间很长,因此大多数java小程序规模较小。第一章 java语言概述 关键词汇1、鲁棒性java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误。它提供自动垃圾收集来进

30、行内存管理,防止程序员在管理内存时容易产生的错误。通过集成的、面向对象的例外处理机制,在编译时,java提示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外,java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。2、java虚拟机(jvm)java的心脏是java虚拟机 ,即jvm。java虚拟机是只能驻留在内存中的虚拟计算机。jvm 使 java 程序在各种平台上运行就像是在编译代码的平台上运行一样。正因为java程序是由java虚拟机编译的,所以它成为不平凡的语言。但是为了使java程序能够运行在某个特定的平台上,该平台必须启用java

31、虚拟机。正是因为java虚拟机,才使得java是可移植的,它提供了一个介于编译过的java程序和底层硬件平台及操作系统之间的一个抽象层。运行java虚拟机只内用很少内存 。这样设计的目的是:可以将其用在各种电器上。事实上,java语言最早是为家用电器开发的。电话、pc机、电视机等等在不久的将来都会固化有允许java程序运行的java虚拟机。3、面向对象java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。4、可移植

32、性与平台无关的特性使java程序可以方便地被移植到网络上的不同机器。同时,java的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,java编译器是由java语言实现的,java运行时系统由标准c实现,这使得java系统本身也具有可移植性。第一章 java语言概述 拓展资源java相关技术1、jdbc(java database connectivity)提供连接各种关系数据库的统一接口。2、ejb(enterprise javabeans)使得开发者方便地创建、部署和管理跨平台的基于组件的企业应用。3、java rmi(java remote method invocation)用

33、来开发分布式java应用程序。一个java对象的方法能被远程java虚拟机调用。这样,远程方法激活可以发生在对等的两端,也可以发生在客户端和服务器之间,只要双方的应用程序都是用java写的。4、java idl(java interface definition language) 提供与corba(common object request broker architecture)的无缝的互操作性。这使得java能集成异构的商务信息资源。5、jndi(java naming and directory interface)提供从java平台到的统一的无缝的连接。这个接口屏蔽了企业网络所使用的

34、各种命名和目录服务。6、jmapi(java management api)为异构网络上系统、网络和服务管理的开发提供一整套丰富的对象和方法。7、jms(java message service)提供企业消息服务,如可靠的消息队列、发布和订阅通信、以及有关推拉(push/pull)技术的各个方面。8、jts(java transaction service)提供存取事务处理资源的开放标准,这些事务处理资源包括事务处理应用程序、事务处理管理及监控。在java技术中,值得关注的还有javabeans,它是一个开放的标准的组件体系结构,它独立于平台,但使用java语言。一个javabean是一个满足

35、javabeans规范的java类,通常定义了一个现实世界的事物或概念。一个javabean的主要特征包括属性、方法和事件。通常,在一个支持javabeans规范的开发环境(如sun java studio 和ibm visualage for java)中,可以可视地操作javabean,也可以使用javabean构造出新的javabean。javabean的优势还在于java带来的可移植性。现在,ejb (enterprise javabeans) 将javabean概念扩展到java服务端组件体系结构,这个模型支持多层的分布式对象应用。除了javabeans,典型的组件体系结构还有dco

36、m和corba,关于这些组件体系结构的深入讨论超出了本书的范围。java开源项目spring framework spring 是一个解决了许多在j2ee开发中常见的问题的强大框架。 spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。spring的架构基础是基于使用javabean属性的 inversion of control容器。然而,这仅仅是完整图景中的一部分:spring在使用ioc容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 spring提供了唯一的数据访问抽象,包括简单和有效率的jdbc框架,极大的改进了效率并且减少了可能的错

37、误。spring的数据访问架构还集成了 hibernate和其他o/r mapping解决方案。spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如jta或者jdbc事务提供一个一致的编程模型。 spring提供了一个用标准java语言编写的aop框架,它给pojos提供了声明式的事务管理和其他企业事务-如果你需要-还能实现你自己的 aspects。这个框架足够强大,使得应用程序能够抛开ejb的复杂性,同时享受着和传统ejb相关的关键服务。spring还提供了可以和ioc容器集成的强大而灵活的mvc web框架。webworkwebwork 是由opensymphony组

38、织开发的,致力于组件化和代码重用的拉出式mvc模式j2ee web框架。webwork目前最新版本是2.1,现在的webwork2.x前身是rickard oberg开发的webwork,但现在webwork已经被拆分成了xwork1和webwork2两个项目。 xwork简洁、灵活功能强大,它是一个标准的command模式实现,并且完全从web层脱离出来。 xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(ognl the object graph notation language),ioc(inversion of con

39、trol倒置控制)容器等。 webwork2建立在xwork之上,处理http的响应和请求。webwork2使用servletdispatcher将http请求的变成 action(业务层action类), session(会话)application(应用程序)范围的映射,request请求参数映射。webwork2支持多视图表示,视图部分可以使用 jsp, velocity, freemarker, jasperreports,xml等。在webwork2.2中添加了对ajax的支持,这支持是构建在dwr与dojo这两个框架的基础之上. struts struts 是一个基于sun j2e

40、e平台的mvc框架,主要是采用servlet和jsp技术来实现的。由于struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。struts把servlet、jsp、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套mvc模式,极大的节省了时间,所以说struts是一个非常不错的应用框架。hibernate hibernate 是一个开放源代码的对象关系映射框架,它对jdbc进行了非常轻量级的对象封装,使得java程序员可以随心所欲的使用对象编程思维来操纵数据库。 hibernate可以应用在

41、任何使用jdbc的场合,既可以在java的客户端程序实用,也可以在servlet/jsp的web应用中使用,最具革命意义的是,hibernate可以在应用ejb的j2ee架构中取代cmp,完成数据持久化的重任。 quartz quartz 是opensymphony开源组织在job scheduling领域又一个开源项目,它可以与j2ee与j2se应用程序相结合也可以单独使用。quartz可以用来创建简单或为运行十个,百个,甚至是好几万个jobs这样复杂的日程序表。jobs可以做成标准的java组件或 ejbs。quartz的最新版本为quartz 1.5.0。velocity velocit

42、y 是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循mvc架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在jsp和php之外又提供了一种可选的方案。 velocity的能力远不止web站点开发这个领域,例如,它可以从模板(

43、template)产生sql和postscript、xml,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。velocity也可以为turbine web开发架构提供模板服务(template service)。velocity+turbine提供一个模板服务的方式允许一个web应用以一个真正的mvc模型进行开发。 ibatis 使用ibatis 提供的orm机制,对业务逻辑实现人员而言,面对的是纯粹的java对象, 这一层与通过hibernate 实现orm 而言基本一致,而对于具体的数据操作,hibernate 会自动生成sql 语句,而ibatis 则要求开

44、发者编写具体的sql 语句。相对hibernate等 “全自动”orm机制而言,ibatis 以sql开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。作为“全自动”orm 实现的一种有益补充,ibatis 的出现显 得别具意义。compiere erp&crmcompiere erp&crm为全球范围内的中小型企业提供综合型解决方案,覆盖从客户管理、供应链到财务管理的全部领域,支持多组织、多币种、多会计模式、多成本计算、多语种、多税制等国际化特性。易于安装、易于实施、易于使用。只需要短短几个小时,您就可以使用申购-采购-发票-付款、报价-订单-发票-收款、产品与定价、资产管

45、理、客户关系、供应商关系、员工关系、经营业绩分析等强大功能了。roller weblogger这个weblogging 设计得比较精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得html编辑,trackback,提供页面模板,rss syndication,blogroll管理和提供一个xml-rpc 接口。eclipse eclipse平台是ibm向开放源码社区捐赠的开发框架,它之所以出名并不是因为ibm宣称投入开发的资金总数 4千万美元,而是因为如此巨大的投入所带来的成果:一个成熟的、精心设计的以及可扩展的体系结构。netbeansnetbeans

46、 ide 是一个为软件开发者提供的自由、开源的集成开发环境。您可以从中获得您所需要的所有工具,用 java、c/c+ 甚至是 ruby 来创建专业的桌面应用程序、企业应用程序、web 和移动应用程序。此 ide 可以在多种平台上运行,包括 windows、linux、mac os x 以及 solaris;它易于安装且非常方便使用。xplannerxplanner 一个基于web的xp团队计划和跟踪工具。xp独特的开发概念如iteration、user stories等,xplanner都提供了相对应的的管理工具,xplanner支持xp开发流程,并解决利用xp思想来开发项目所碰到的问题。 x

47、planner特点包括:简单的模型规划,虚拟笔记卡(virtual note cards),iterations、user stories与工作记录的追踪,未完成stories将自动迭代,工作时间追踪,生成团队效率,个人工时报表,soap界面支持。hsqldbhsqldb(hypersonic sql)是纯java开发的关系型数据库,并提供jdbc驱动存取数据。支持ansi-92 标准 sql语法。而且他占的空间很小。大约只有160k,拥有快速的数据库引擎。liferay代表了完整的j2ee应用,使用了web、ejb以及jms等技术,特别是其前台界面部分使用struts 框架技术,基于xml的

48、portlet配置文件可以自由地动态扩展,使用了web services来支持一些远程信息的获取,使用 apahce lucene实现全文检索功能。jetspeedjetspeed 是一个开放源代码的企业信息门户(eip)的实现,使用的技术是java和xml。用户可以使用浏览器,支持wap协议的手机或者其它的设备访问jetspeed架设的信息门户获取信息。jetspeed扮演着信息集中器的角色,它能够把信息集中起来并且很容易地提供给用户。jonasjonas 是一个开放源代码的j2ee实现,在objectweb协会中开发。整合了tomcat或jetty成为它的web容器,以确保符合servle

49、t 2.3和jsp 1.2规范。jonas服务器依赖或实现以下的java api:jca、jdbc、jta 、jms、jmx、jndi、jaas、javamail 。jfox3.0 jfox 是 open source java ee application server,致力于提供轻量级的java ee应用服务器,从3.0开始,jfox提供了一个支持模块化的mvc框架,以简化ejb以及web应用的开发! 如果您正在寻找一个简单、轻量、高效、完善的java ee开发平台,那么jfox正是您需要的。java ide当今最流行的是eclipse,myeclipse,jbuilder2008,jde

50、veloper,netbeans等。第二章 java语言基础 课堂笔记u 主要知识点掌握程度 掌握java语言的基本语法;java语言的简单数据类型,包括整型数据、浮点型数据、字符型数据、逻辑型数据和常见数据类型构成的数组和向量的使用;理解数据类型转换的格式;理解数组使用的特点和必要性;掌握java语句结构,包括复合语句、分支语句、转移语句。掌握数组及java一般程序结构。u 知识点整理 一、java数据类型。 1、标识符 标识符是变量、类和函数的名称。标识符可以随意选择,只要以字母开头,由字母、数字、_和$号组成且不属关键字即可。标识符不限于ascii码,如果编辑器支持,变量名可以用unic

51、ode字符 。标识符中的字符个数也没有限制。如果二个变量的第512个位置不同 ,则编译器也能发现并分别处理 。当然 ,大多数人谈起你的代码可能没这么精确,所以要慎用。 下列列出一些合法的及非法的标识符合法的标识符:idertifierusernameuser_name_sys_value$change非法的标识符号:2mail room# class其中class是java语言中的保留字,不能作为普通标识符使用。2、关键字abstractelse longswichboolenextendsnativesynchronizedbreakfinalnewthisbytefinallynullth

52、rowcasefloatpackagethrowscatchforprivatetransientchargoto*protectedtryclassifpublicvoidconst*implementsreturnvolatilecontinueimportshortwhiledefaultinstanceofstaticwidefpdointsstrictfpdoubleinterfacesuper* 这些是目前未用的保留关键字3、常量 java中的常量值是用文字串表示的,它区分为不同的类型,如整型常量123,实型常量1.23,字符常量a ,布尔常量true、false,以及字符串常量“

53、this is a constant string.”。 4、变量 变量是java程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分。 变量名是一个合法的标识符 ,它是字母、数字、下划线或美元符“”的序列,java对变量名区分大小写,变量名不能以数字开头 ,而且不能为保留字 。合法的变量名如 :myname 、value_1 、 dollar等。非法的变量名如:2mail 、 room# 、 class (保留字)等,变量名应具有一定的含义,以增加程序的可读性。 变量类型可以为上面所说的任意一种数据类型。 变量的作用域指明可访问该变量的一段代码 。声明一个变量的同时也就指明了变

54、量的作用域。按作用域来分,变量可以有下面几种:局部变量,类变量,方法参数,例外处理参数。变量的声明格式为:数据类型 标识符(变量名)缺省值,标识符缺省值 ;type identifier=value,identifier=value;例如: int a, b, c; double d1, d2=0.0; 5.数据类型整数类型(1)整型常量与c、c+相同,java的整常数有三种形式:十进制整数,如123,456,0。八进制整数,以0开头,如0123表示十进制数83,011表示十进制数9。十六进制整数 ,以0x或0x开头 ,如0x123表示十进制数291,0x12表示十进制数18。整型常量在机器中占32位,具有int型的值 ,对于long型值,则要在数字后加l或l,如123l表示一个长整数,它在机器中占64位。(2)整型变量的类型有byte, short, int, long四种。浮点型(实型)数据(1)实型常量与c、c+相同,java的实常数有两种表示形式:十进制数,由数字和小数点组成,且必须有小数点,如0.123,1.23,123.0。科学计数法形式。如:123e3或123e3,其中e或e之

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论