Java就业培训教程第一章Word格式文档下载.docx

上传人:b****6 文档编号:19235470 上传时间:2023-01-04 格式:DOCX 页数:25 大小:905.61KB
下载 相关 举报
Java就业培训教程第一章Word格式文档下载.docx_第1页
第1页 / 共25页
Java就业培训教程第一章Word格式文档下载.docx_第2页
第2页 / 共25页
Java就业培训教程第一章Word格式文档下载.docx_第3页
第3页 / 共25页
Java就业培训教程第一章Word格式文档下载.docx_第4页
第4页 / 共25页
Java就业培训教程第一章Word格式文档下载.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

Java就业培训教程第一章Word格式文档下载.docx

《Java就业培训教程第一章Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Java就业培训教程第一章Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。

Java就业培训教程第一章Word格式文档下载.docx

,是以企业为环境而开发应用程序的解决方案。

●J2SE(Java 

Stand 

Edition)即标准版,是桌面开发和低端商务应用的解决方案。

●J2ME(Java 

Micro 

)即小型版,是致力于消费产品和嵌入式设备的最佳解决方案。

J2EE目前已经成为开发商创建电子商务应用的事实标准。

J2SE是Java 

2平台的标准版, 

它适用于桌面系统,提供CORBA标准的ORB技术,结合Java的RMI支持分布式互操作环境。

J2ME提供了HTTP高级Internet协议,使移动电话能以Client/Server方式直接访问Internet的全部信息,不同的Client访问不同的文件,此外还能访问本地存储区,提供最高效率的无线交流。

Java技术又有其广泛的内涵:

首先,它是一门编程语言,Java能够创建所有其它传统语言能编写的应用程序,Java能够编写独立的应用程序,运行在装有Java虚拟机的操作系统上。

Java编写的程序经常用在WWW环境中(比如applet,servlet等),Applet在浏览器中执行不需要操作系统JVM的支持。

其次,Java还是一个开发环境,Java技术包含一系列的工具:

编译器、解释器、文档生成工具、打包工具等等。

另外由Java2SDK提供的JRE(JavaRuntimeEnvioument)还包括了一个完整的Java的类集合,比如基本语言类,GUI控件类等。

最后,Java也是一个运行环境,我们可以从Sun公司提供的Java2SDK中来搭建运行环境,而这一切都是免费的。

时至今日,Java仍然一步步地朝着远大的梦想而迈进,显而易见的成果便是在国际互联网中的应用,如今常见的浏览器也都全面支持JavaApplet以及衍生出来的JavaScript语言等,而市面上可见的操作系统,也利用Java的跨平台特性来开发,包括Windows系列、各类UNIX,Linux,Mac等操作系统,都可以看到Java的踪迹。

这一切都充分说明了Java在计算机语言大家庭中的地位。

Java对Internet编程的影响就如同C语言对系统编程的影响一样。

1.1Java虚拟机及Java的跨平台原理

Java虚拟机(JVM)是可运行Java字节码的假想计算机,Java的跨平台性是相对于其他编程语言而言的,我们这里就用C语言的编程与执行过程来同Java的编程与执行过程进行对比说明。

图1.1

同C语言编程一样,我们首先也要编写Java源程序,然后由Java编译程序将Java源程序编译为JVM可执行的代码,即Java字节码。

Java源程序编译后生成的字节码文件就相当于C源程序编译后的Windows上的exe可执行文件,JVM虚拟机的作用类似Windows操作系统。

在Windows上运行的是exe文件,在JVM上运行的是Java字节码文件,也就是扩展名为.class的文件。

Windows执行exe可执行文件的过程,就是从exe文件中取出一条条的计算机指令,交给CPU去解释执行。

JVM执行Java字节码文件的过程,也是JVM虚拟机从Java字节码文件中取出一条条的字节码指令交给“CPU”去执行。

硬件与软件是可以相互转化的,我们可以用视霸卡硬件解码VCD数据,也可以用超级解霸软件解码VCD数据。

执行Java字节码的“CPU”可以是硬件,也可以是某个系统上运行的一个软件,这个软件称为Java字节码解释程序(也就是Java虚拟机)。

可见,只要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。

当前,并不是在所有的平台下都有相应的Java解释器程序,这也是Java并不是在所有的平台下都能运行的原因,它只能在已实现了Java解释器程序的平台下运行。

顺便来一句:

Java兼顾解释性与编译性语言的特点,.java源文件转换成.class字节码文件的过程是编译型的,.class在操作系统上运行的过程则是解释型的,Java虚拟机充当了解释器的作用。

关于解释型和编译型的区别就不在这里详细叙述了,不能理解的读者可以自己去查阅相关资料,这并不影响我们学习Java的效果。

1.2Java的开发环境的搭建

Sun公司提供了自己的一套Java开发环境,通常称之为JDK(JavaDevelopmentKit)。

Sun公司提供了多种操作系统下的JDK,随着时间的推移和技术的进步,JDK的版本也在不断地升级,如JDK1.2,JDK1.3,JDK1.4。

各种操作系统下的JDK的各种版本在使用上基本相似,读者可以根据自己的环境,从Sun公司的网站上下载相应的JDK版本,一般情况下是越新越好。

本书的讲解都是基于Windows平台下的JDK1.4,Windows下的JDK安装过程非常简单,这里就不再多说,这个工具包中的内容都放在JDK安装目录下(下面的讲解都假设我们的安装目录为c:

\j2sdk1.4.0),其中的bin子目录中包含了所有相关的可执行文件。

如图1.2所示:

图1.2

下面是bin目录中的常用命令的简要介绍(读者暂且不要关心JDK下的其他目录,在以后的章节中,我们会逐步涉及,到时候理解起来也要比现在容易得多)。

javac.exe是Java源文件的编译工具,Java源文件的扩展名为.java,如Test.java,Java源文件被编译后的Java字节码文件的扩展名为.class,如Test.class。

java.exe是Java字节码解释程序,负责解释执行Java字节码文件,就是一个JVM。

在命令行窗口下,执行Java命令,如果屏幕上能够打出关于这个命令的用法介绍,如图1.3所示:

图1.3

这时你的JDK基本上就可以使用了。

也许你会碰到两种错误:

第一种错误,说Java不是一个可运行的程序,如图1.4所示:

图1.4

第二种可能碰到的错误是,当我们执行Java命令时,屏幕上不是打出关于这个命令的用法介绍,而是类似图1.5所示的错误信息:

图1.5

下面的小节我们就来分析和解决这两种错误:

1.2.1环境变量的介绍

太多的现代人都不会DOS了,根本就不明白系统环境变量和path环境变量的作用。

通俗的说,系统环境变量就是在操作系统中定义的变量,可供操作系统上的所有应用程序使用。

1.2.2如何查看系统环境变量

以Windows2000为例(由于Windows2000具有众多的新特性,这些特性在Java的开发过程中,能为我们提供许多方便快捷的功能,所以在这里建议读者使用Windows2000来做系统平台)。

首先右键单击桌面上的“我的电脑”,从下拉菜单中选择“属性”,在出现的属性面板中选择“高级”标签,如图1.6所示:

图1.6

然后点击“环境变量”打开环境变量面板,在这里可以看到上下两个窗口,上面窗口名为“某用户的环境变量”(在这里是Administrator即管理员的用户变量),下面窗口名为“系统变量”,如图1.7所示:

图1.7

可以在其中任意一个窗口里进行设置,区别在于上面窗口的设置用于个人环境变量,只有以该用户身份登录系统时才有效,而下面窗口中的设置则对所有用户都有效。

我们也可以启动一个命令行窗口(点击“开始”菜单,在“运行”中输入cmd,然后按下“Enter”键即可。

或者点击“开始”菜单,在“程序”中选择“附件”,然后运行“命令提示符”,这两种启动方式的效果是一样的),在这个命令行窗口中执行set命令,如下图1.8所示:

图1.8

如上图所示,在命令行窗口中设置的path变量的值是图1.7所示的用户变量和系统变量窗口中的path变量的值的总和。

也就是说,用set命令看到的环境变量值是Windows环境变量窗口中用户环境变量和系统环境变量的值的总和。

作者在教学的过程中,有时会看到另外一种情况:

命令行窗口中用set命令看到的环境变量的值不是如先前Windows窗口中图1.7所示的用户变量和系统变量的值的总和,而是只有用户变量窗口中的值。

至于为什么会有这种情况,只要不影响我们的使用,我们就不必再去管它了。

实际上,真正起作用的就是我们在命令行窗口中运行set命令所看到的所有的变量和值,所以建议读者每次配置完成后,用set命令查看一下。

你就能发现,用户环境变量修改之后,需要用户重新登录才会生效,相信聪明的读者应该能体会到其中的道理,也知道如何解决环境变量所引起的问题了。

事实上,有经验的程序员在遇到环境变量的问题时,都是通过这样的途径和手段解决问题的。

我们接着就可以进行系统环境变量的配置了。

1.2.3如何设置系统环境变量

还是以path环境变量为例进行讲解吧,path环境变量的作用是设置供操作系统去寻找和执行应用程序的路径,也就是说,如果操作系统在当前目录下没有找到我们想要执行的程序和命令时,操作系统就会按照path环境变量指定的目录依次去查找,以最先找到的为准。

path环境变量可以存放多个路径,路径和路径之间用分号(;

)隔开。

在其他的操作系统下可能是用其他的符号分隔,比如在Linux下就是用冒号(:

)。

我们可以在Windows系统环境变量窗口中设置系统变量。

在图1.7窗口中,单击名为“path”的变量(如果没有你想设置的环境变量选项,在“用户变量”或“系统变量”中选择“新建”来添加),选择“编辑”。

然后如下图所示:

在打开的“编辑系统变量”窗口中的“变量值”输入框中加入你想设置的环境变量值。

图1.9

对于path,我们可以在原有值的基础上添加新的路径,因为我们想在任意路径下运行java.exe,javac.exe等程序,所以我们应当在path原有值的末尾加上分号(;

),然后再加上你的Java编译器所在的路径(这里是c:

\j2sdk1.4.0\bin),最后点击“确定”按钮,这样设置就完成了。

接着,我们重新启动一个新的命令行窗口,执行set命令,查看我们刚才的设置结果。

这种方法的优点是设置一次之后,系统会保存此设置,对以后在当前操作系统上运行的任何程序都有效,但不会影响先前已经运行起来的程序,特别是命令行窗口程序(如果想要使设置的值生效,只能关闭原来的命令行窗口,再重新启动一个新的命令行窗口程序)。

我们也可以直接在命令行窗口下进行设置,针对上面的情况,可以在命令行窗口中执行setpath=c:

\j2sdk1.4.0\bin;

%path%;

这样在这个命令行窗口中的任意路径下都可以执行Java.exe程序了。

讲到这里肯定会有读者提出疑问了,%path%究竟起什么作用呢?

将某个环境变量包含在一对百分号(%)之间,就表示该环境变量的当前取值。

如图1.8中,“C:

\WINNT\system32;

C:

\WINNT;

C:

\WINNT\System32\Wbem;

c:

”这个长长的字符串就代表了%path%。

务必注意,在命令行窗口下的设置只对当前这个窗口有效,并不会影响到其他命令行窗口和程序。

解决了第一种错误,我们再来看看如图1.5所示的第二种错误。

产生这种错误的原因可能是由于在设置path时,忽视了path环境变量中的目录的设置顺序,如我们使用setpath=%path%;

\j2sdk1.4.0\bin命令设置path环境变量,由于c:

\winnt\system32这个路径排在c:

\j2sdk1.4.0\bin前面,而在c:

\winnt\system32下也有一个java.exe程序。

这样,当我们运行Java命令时,执行的不是c:

\j2sdk1.4.0\bin\java.exe,而是c:

\winnt\system32\java.exe,恰恰c:

\winnt\system32\java.exe又是一个有问题的程序。

在c:

\winnt\system32目录下,怎么会出现一个有问题的java.exe呢?

造成这种错误的原因有多种,譬如,我们安装完Jbuilder8这类java开发工具软件时,Jbuilder8安装程序会将自己的java.exe拷贝到c:

\winnt\system32目录下。

java.exe启动需要到原始安装目录中去装载许多相关文件,如果我们以后又删除或移动了JBuilder8的安装目录,就会出现这样的问题。

解决这个问题,我们只要将我们想用的java.exe所在的目录放在path环境变量的前面,如:

setpath=c:

%path%。

有时,我们的计算机上安装了多个java开发工具,我们怎么知道在命令行窗口中执行的java命令属于哪个开发工具包中的呢?

其实,我们只要在运行java.exe的时候加上verbose参数,格式如下:

java-verbose

java虚拟机启动时,就会显示其详细的加载过程信息,如图1.10所示:

图1.10

从上面显示的信息中,我们就能看出所运行的Java命令是属于哪个开发工具包。

作为初学者,你不一定马上会碰到上面的问题,但你一旦变成了Java老手,反而有可能会碰到这些问题,因为老手使用Java的频率更高了,遇到的环境更复杂了,碰到问题的概率也就大多了。

尽管传染科的医生防范传染病的经验很丰富,但他接触传染源的机会也越多,反而比普通医生被传染的可能性大多了。

这正是“常在河边走,哪能不湿鞋”。

别着急,熟能生巧、勤能补拙,编的程序多了,遇到的错误就多了,排除错误的能力也多了,你的经验也就更丰富了。

现在读者基本有了一个可实验的环境,我们就可以来体验一下Java的编程过程了。

1.3体验Java编程的过程

首先用记事本程序建立一个名为Test.java的源文件(在实际操作中,我们常常会用到一些更好的工具软件,例如UltraEdit、EditPlus等,它们有很多记事本程序不能比拟的优点。

比如:

支持用不同的颜色标记关键字,类名;

自动显示行号,以便于我们更加方便的查找所需要的代码;

能够自动缩进,减少了书写程序代码的工作量;

能够同时编辑多个文件,方便在多个文件之间反复切换;

还可以正常显示Linux格式的文本文件),文件内容如下:

程序清单:

Test.java

classTest

{

publicstaticvoidmain(String[]args)

{

System.out.println(“MyfirstJavaprogram”);

}

}

在编译和运行这个程序之前,我们必须对这个程序的内容作简要介绍:

1).java中的程序必须以类(class)的形式存在,一个类要能被解释器直接启动运行,这个类中必须有main函数,java虚拟机运行时首先调用这个类中的main函数,main函数的写法是固定的,必须是publicstaticvoidmain(String[]args),等到大家学到后面的章节,就明白这个函数的各组成部分的具体意义了,由于以后的每个例子几乎都要用这个函数,读者现在先硬记下来再说。

2).如果我们要让程序在屏幕上打印出一串字符信息(包括一个字符),我们可以用System.out.println(“填写你要打印的若干字符”)语句,或是System.out.print(“填写你要打印的若干字符”)语句。

前者会在打印完的内容后再多打印一个换行符(\n),你的窗口光标的位置会移动到打印行的下一行的开始处。

而后者只打印你的字符串,不增加换行符,你窗口的光标停留在所打印出的字符串的最后一个字符后面。

println()等于print("

\n"

3).如果在class之前没有使用public修饰符,源文件的名可以是一切合法的名称。

而带有public修饰符的类名必须与源文件名相同,如上面程序第一行改为下面的形式,源文件名必须是Test.java,但与源文件名相同的类却不一定要带有public修饰符。

publicclassTest

在命令行窗口中,用cd命令进入Test.java源文件所在的目录,运行javacTest.java。

命令执行完后,我们能看到该目录下多了一个Test.class文件,这就是编译后的Java字节码文件。

经常有初学者问我一个如下面这样的错误,如图1.11所示:

图1.11

这是因为你可能在设置Windows的文件夹选项时,选中了“隐藏已知文件类型的扩展名”,如图1.12所示:

图1.12

我们的源文件名实际上是Test.java.txt,但因为系统隐藏了后面的txt扩展名,我们会误以为源文件名就是Test.java。

我曾经碰到过一个网站泡沫时代的“中级程序员”,因为一个类似的问题而花费了几天的时间也没有找到问题所在,后来我发现不少学员也被这个问题给绊倒了,所以拿出来说一下,建议读者取消“隐藏已知文件类型的扩展名”的设置。

我们接着运行javaTest命令,屏幕上打出MyfirstJavaprogram这行文字,这样,我们编译运行第一个Java程序的过程就算完成了。

脚下留心:

上面运行时用的是javaTest,而不是javaTest.class!

运行时不要带上.class扩展名。

如果我们的源文件名为Xxx.java,文件中有多个类(class)定义,我们编译后的.class文件就有多个,能直接用java命令启动运行只有那个含有main函数的类,java命令后跟的参数是类名,而不是文件名,尽管我们的文件名为Xxx.java,但我们却不见得是以javaXxx的形式来运行我们的程序的,关键还是要看类名。

对javaTest命令,从Windows的方面讲,Java是一个命令,Test是这个命令的参数。

从Java方面来说,Java命令是启动了一个虚拟机,Test是这个虚拟机上能独立运行的一个Java类,而不是Test.class文件,关于类的知识,我们将在后面的章节进行详细讲解。

1.4classpath的设置

运气差的读者在执行javaTest命令时,会碰到这样或那样的错误提示信息,运气好的读者也不要庆幸和掉以轻心,这对你来说,是迟早要遇到的问题。

当Java虚拟机要装载某一个类时,它会去哪个目录下查找这个类呢?

这里通过几个实验步骤来了解classpath的作用,假设我们的Test.class类位于c:

\myjava目录中。

步骤1,在命令行窗口下用cd命令进入一个除c:

\myjava以外的目录,如c:

\根目录。

运行javaTest,结果屏幕上提示找不到Test这个类。

步骤2,执行setclasspath=c:

\myjava,再运行javaTest,结果正常。

这个实验说明了classpath的作用和path环境变量的作用相似,Java虚拟机按照classpath环境变量指定的目录顺序去查找这个类,以最先找到的为准。

Java虚拟机除了在classpath的环境变量指定的目录中查找要运行的类,会不会也在当前目录下查找呢?

我们接着用几个实验来说明这个问题。

步骤3,进入c:

\myjava目录(也就是Test.class所在的目录),执行:

setclasspath=c:

\mytmpdir

注意:

这里指定的c:

\mytmpdir可以用除了c:

\myjava之外的任意目录替代,再运行javaTest,屏幕上提示找不到Test这个类。

这个结果似乎告诉我们,Java虚拟机查找类的过程,同Windows查找可执行命令(.exe,.bat或.cmd文件以及.dll动态连接库)的过程还是有点区别,不会在当前目录下查找,只找classpath指定的目录。

熟悉Linux的读者,知道Linux命令也不会在当前目录下查找,只在path指定的目录中查找。

步骤4,还是在c:

\myjava目录下,执行setclasspath=c:

\mytmpdir;

,注意最后多了个分号(;

),或干脆执行setclasspath=,取消classpath环境变量的定义。

再运行javaTest,结果又正常了。

这又与我们刚才在第三步中得到的结论相矛盾了。

我们与其去反复思考为什么,还不如认为这是Sun公司提供的JDK的问题,像这些东西是没法死记硬背的,在不同的环境下可能会有不同的情况。

读者只要明白了那些最根本的东西,再多动手实践,总结分析,就能够使这些问题迎刃而解。

步骤5,既然Java总是查找classpath中所指定的路径,我们能否通过某种方式,让Java虚拟机在任何情况下都会去当前目录下查找要使用的类呢?

我们只要在classpath环境变量中添加一个点(.),如“setclasspath=c:

\mydir;

.”即可,这个点(.)就代表Java虚拟机运行时的当前工作目录。

作者不敢肯定Sun公司在以后的JDK版本中是否会注意并更正上面的那些小问题,给用户一个方便,但这对初学者来说,确实非常重要,要不然,连学习Java的第一步都无法通过,怎么可能还有信心继续学习下去呢?

有好的产品,却不一定能够赢得天下,虽然Java是一门优秀的语言和技术,但从上面这些小的问题方面,我们不难想象Sun公司的业务不如Microsoft公司的原因,因为他们替一般用户想的不多。

在配置Java环境变量的时候经常会因为空格而导致错误,比如以下两种情况:

1.setclasspath=c:

2.setclasspath=c:

第一种错误:

等号和classpath之间有空格。

这样本来应该设置变量“classpath”的值,却被设置成了变量“classpath+空格”的值。

第二种错误:

等号和路径名之间有空格。

把需要设置的正确路径“c:

”替换成了“空格+c:

”的路径,导致了路径设置的错误。

还有一种情况:

setclasspath=C:

\DocumentsandSetting

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1