java基础教程1.docx
- 文档编号:23776187
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:30
- 大小:37.21KB
java基础教程1.docx
《java基础教程1.docx》由会员分享,可在线阅读,更多相关《java基础教程1.docx(30页珍藏版)》请在冰豆网上搜索。
java基础教程1
第1章认识Java
1.1Java的历史
Java来自于Sun公司的一个叫Green的项目,其原先的目的是为家用电子消费产品开发一个分布式代码系统,这样就可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交流。
开始他们准备采用C++,但C++太复杂,安全性差,最后基于C++开发一种新语言Oak(Java的前身)。
Oak是一种用于网以介绍面向对象编程的基本概念、基本理论为重点,结合Java语言的语法规则、编程特点和设计思想、强调容易发生错误和编程应注意的地方,使学生能对Java技术有一个总体了解,通过本课程学习,使学生掌握Java语言的基础知识,理解和掌握面向对象程序设计的基本思想,熟练地使用Java语言进行程序的编写、编译以及调试工作络的精巧而安全的语言,Sun公司曾以此投标一个交互式电视项目,但结果被SGI打败。
于是Oak几乎无家可归,恰巧这时MarkArdreesen开发的Mosaic和Netscape启发了Oak项目组成员,他们用Java编制了HotJava浏览器,得到了Sun公司首席执行官ScottMcNealy的支持,触发了Java进军Internet。
Java技术是由美国Sun公司倡导和推出的,它包括Java语言和JavaMediaAPIS、SecurityAPIs、ManagementAPIs、JavaApplet、JavaRMI、JavaBean、JavaOS、JavaServlet、JavaServerPage以及JDBC等。
现把Java技术的发展历程简述如下:
·1990年,Sun公司JamesGosling领导的小组设计了一种平台独立的语言Oak,主要用于为各种家用电器编写程序。
·1995年1月,Oak被改名为Java;1995年5月23日,Sun公司在SunWorld‘95上正式发布Java和HotJava浏览器。
·1995年8月至12月,Netscape公司、Oracle公司、Borland公司、SGI公司、Adobe公司、IBM公司、AT&T公司、Intel公司获得Java许可证。
·1996年1月,Sun公司宣布成立新的业务部门——JavaSoft部,以开发、销售并支持基于Java技术的产品,由AlanBaratz任总裁。
同时推出Java开发工具包JDK(JavaDevelopmentKit)1.0,为开发人员提供用来编制Java应用软件所需的工具。
·1996年2月,Sun公司发布Java芯片系列,包括PicoJava、MicroJava和UltraJava,并推出Java数据库连接JDBC(JavaDatabaseConnectivity)。
·1996年3月,Sun公司推出JavaWorkShop。
第2页
·1996年4月,Microsoft公司、SCO公司、苹果电脑公司(Apple)、NEC公司等获得Java许可证。
Sun公司宣布允许苹果电脑、HP、日立、IBM、Microsoft、Novell、SGI、SCO、Tamdem等公司将Java平台嵌入到其操作系统中。
·1996年5月,HP公司、Sybase公司获得Java许可证。
北方电讯公司宣布把Java技术和Java微处理器应用到其下一代电话机中的计划。
5月29日,Sun公司在旧金山举行第一届JavaOne世界Java开发者大会,业界人士踊跃参加。
Sun公司在大会上推出一系列Java平台新技术。
·1996年8月,JavaWorkShop成为Sun公司通过互联网提供的第一个产品。
·1996年9月,Addison-Wesley和Sun公司推出Java虚拟机规范和Java类库。
·1996年10月,德州仪器等公司获得Java许可证。
Sun公司提前完成JavaBean规范并发布,同时发布第一个JavaJIT(Just-In-Time)编译器,并打算在JavaWorkShop和Solaris操作系统中加入JIT。
10月29日,Sun公司发布Java企业计算技术,包括JavaStation网络计算机、65家公司发布的85个Java产品及应用、7个新的Java培训课程及Java咨询服务、基于Java的Solstice互联网邮件软件、新的Java开发者支持服务、HotJavaViews演示、JavaTutor、JavaCardAPI等。
Sun公司宣布完成JavaCardAPI规范,这是智能卡使用的第一个开放API。
JavaCard规范将把Java能力赋予全世界亿万张智能卡。
·1996年11月,IBM公司获得JavaOS和HotJava许可证。
Novell公司获得JavaWorkShop许可证。
Sun公司和IBM公司宣布双方就提供Java化的商业解决方案达成一项广泛协议,IBM公司同意建立第一个Java检验中心。
·1996年12月,Xerox等公司获得Java或JavaOS许可证。
Sun公司发布JDK1.1、Java商贸工具包、JavaBean开发包及一系列JavaAPIs;推出一个新的JavaServer产品系列,其中包括JavaWebServer、JavaNCServer和JavaServerToolkit。
Sun公司发布100%纯Java计划,得到百家公司的支持。
·1997年1月,SAS等公司获得Java许可证。
Sun公司交付完善的JavaBean开发包,这是在确定其规范后不到8个月内完成的。
·1997年2月,Sun公司和ARM公司宣布同意使JavaOS运行在ARM公司的RISC处理器架构上。
Informix公司宣布在其UniversalServer和其他数据库产品上支持JDK1.1。
Netscape公司宣布其NetscapeCommunicator支持所有Java
第3页
化的应用软件和核心API。
·1997年3月,HP公司获得JavaWorkShop许可证,用于其HP-UX操作系统。
西门子、AG公司等获得Java许可证。
日立半导体公司、Informix公司等获得JavaOS许可证。
Novell公司获得JavaStudio许可证。
Sun公司发售的JavaOS1.0操作系统,这是一种在微处理器上运行Java环境的最小、最快的方法,可提供给JavaOS许可证持有者使用。
Sun公司发售HotJavaBrowser1.0,这是一种Java浏览器,可以方便地按需编制专用的信息应用软件,如客户自助台和打上公司牌号的网络应用软件。
·1996年6月,Sun公司发布JSP1.0,同时推出JDK1.3和JavaWebServer2.0。
·1999年11月,Sun公司发布JSP1.1,同时推出JSWDK1.0.1和JavaServlet2.2。
·2000年9月,Sun公司发布JSP1.2和JavaServlet2.3API。
1.2Java的现状
Java是Sun公司推出的新一代面向对象程序设计语言,特别适于Internet应用程序开发,它的平台无关性直接威胁到Wintel的垄断地位,这表现在以下几个方面:
·计算机产业的许多大公司购买了Java许可证,包括IBM、Apple、DEC、Adobe、SiliconGraphics、HP、Oracle、TOSHIBA以及Microsoft。
这一点说明,Java已得到了业界的认可。
·众多的软件开发商开始支持Java软件产品。
例如Inprise公司的JBuilder、Sun公司自己做的Java开发环境JDK与JRE。
Sysbase公司和Oracle公司均已支持HTML和Java。
·Intranet正在成为企业信息系统最佳的解决方案,而其中Java将发挥不可替代的作用。
Intranet的目的是将Internet用于企业内部的信息类型,它的优点是便宜、易于使用和管理。
用户不管使用何种类型的机器和操作系统,界面是统一的Internet浏览器,而数据库、Web页面、Applet、Servlet、JSP则存储在Web服务器上,无论是开发人员还是管理人员,或是用户都可以受益于该解决方案。
第4页
1.3Java的特点
1.3.1Java语言的优点
Java语言是一种优秀的编程语言。
它最大的优点就是与平台无关,在Windows9x、WindowsNT、Solaris、Linux、MacOS以及其它平台上,都可以使用相同的代码。
“一次编写,到处运行”的特点,使其在互联网上被广泛采用。
由于Java语言的设计者们十分熟悉C++语言,所以在设计时很好地借鉴了C++语言。
可以说,Java语言是一种比C++语言“还面向对象”的一种编程语言。
Java语言的语法结构与C++语言的语法结构十分相似,这使得C++程序员学习Java语言更加容易。
当然,如果仅仅是对C++改头换面,那么就不会有今天的Java热了。
Java语言提供的一些有用的新特性,使得使用Java语言比C++语言更容易写出“无错代码”。
这些新特性包括:
1、提供了对内存的自动管理,程序员无需在程序中进行分配、释放内存,那些可怕的内存分配错误不会再打扰设计者了;
2、去除了C++语言中的令人费解、容易出错的“指针”,用其它方法来进行弥补;
3、避免了赋值语句(如a=3)与逻辑运算语句(如a==3)的混淆;
4、取消了多重继承这一复杂的概念。
Java语言的规范是公开的,可以在上找到它,阅读Java语言的规范是提高技术水平的好方法。
1.3.2Java语言的关键特性
Java语言有许多有效的特性,吸引着程序员们,最主要的有以下几个:
第5页
1.简洁有效
Java语言是一种相当简洁的“面向对象”程序设计语言。
Java语言省略了C++语言中所有的难以理解、容易混淆的特性,例如头文件、指针、结构、单元、运算符重载、虚拟基础类等。
它更加严谨、简洁。
2.可移植性
对于一个程序员而言,写出来的程序如果不需修改就能够同时在Windows、MacOS、UNIX等平台上运行,简直就是美梦成真的好事!
而Java语言就让这个原本遥不可及的事已经越来越近了。
使用Java语言编写的程序,只要做较少的修改,甚至有时根本不需修改就可以在不同平台上运行了。
3.面向对象
可以这么说,“面向对象”是软件工程学的一次革命,大大提升了人类的软件开发能力,是一个伟大的进步,是软件发展的一个重大的里程碑。
在过去的30年间,“面向对象”有了长足的发展,充分体现了其自身的价值,到现在已经形成了一个包含了“面向对象的系统分析”、“面向对象的系统设计”、“面向对象的程序设计”的完整体系。
所以作为一种现代编程语言,是不能够偏离这一方向的,Java语言也不例外。
4.解释型
Java语言是一种解释型语言,相对于C/C++语言来说,用Java语言写出来的程序效率低,执行速度慢。
但它正是通过在不同平台上运行Java解释器,对Java代码进行解释,来实现“一次编写,到处运行”的宏伟目标的。
为了达到目标,牺牲效率还是值得的,况且,现在的计算机技术日新月异,运算速度也越来越快,用户是不会感到太慢的。
5.适合分布式计算
Java语言具有强大的、易于使用的联网能力,非常适合开发分布式计算的程序。
Java应用程序可以像访问本地文件系统那样通过URL访问远程对象。
使用Java语言编写Socket通信程序十分简单,使用它比使用任何其它语言都简
第6页
单。
而且它还十分适用于公共网关接口(CGI)脚本的开发,另外还可以使用Java小应用程序(Applet)、Java服务器页面(JavaServerPage,简称JSP)、Servlet等等手段来构建更丰富的网页。
6.拥有较好的性能
正如前面所述,由于Java是一种解释型语言,所以它的执行效率相对就会慢一些,但由于Java语言采用了两种手段,使得其性能还是不错的。
A、Java语言源程序编写完成后,先使用Java伪编译器进行伪编译,将其转换为中间码(也称为字节码),再解释;
B、提供了一种“准实时”(Just-in-Time,JIT)编译器,当需要更快的速度时,可以使用JIT编译器将字节码转换成机器码,然后将其缓冲下来,这样速度就会更快。
7.健壮、防患于未然
Java语言在伪编译时,做了许多早期潜在问题的检查,并且在运行时又做了一些相应的检查,可以说是一种最严格的“编译器”。
它的这种“防患于未然”的手段将许多程序中的错误扼杀在摇蓝之中。
经常有许多在其它语言中必须通过运行才会暴露出来的错误,在编译阶段就被发现了。
另外,在Java语言中还具备了许多保证程序稳定、健壮的特性,有效地减少了错误,这样使得Java应用程序更加健壮。
8.具有多线程处理能力
线程,是一种轻量级进程,是现代程序设计中必不可少的一种特性。
多线程处理能力使得程序能够具有更好的交互性、实时性。
Java在多线程处理方面性能超群,具有让设计者惊喜的强大功能,而且在Java语言中进行多线程处理很简单。
9.具有较高的安全性
由于Java语言在设计时,在安全性方面考虑很仔细,做了许多探究,使得Java语言成为目前最安全的一种程序设计语言。
尽管Sun公司曾经许诺过:
“通过Java可以轻松构建出防病毒、防黑客的系统”,但“世界上没有绝对的安全”这一真理是不会因为某人的许诺而失灵验的。
第7页
就在JDK(JavaDevelopmentKit)1.0发布不久后,美国Princeton(普林斯顿)大学的一组安全专家发现了Java1.0安全特性中的第一例错误。
从此,Java安全方面的问题开始被关注。
不过至今所发现的安全隐患都很微不足道,而且Java开发组还宣称,他们对系统安全方面的Bugs非常重视,会对这些被发现的Bugs立即进行修复。
而且由于Sun公司开放了Java解释器的细节,所以有助于通过各界力量,共同发现、防范、制止这些安全隐患。
10.是一种动态语言
Java是一种动态的语言,这表现在以下两个方面:
A、在Java语言中,可以简单、直观地查询运行时的信息;
B、可以将新代码加入到一个正在运行的程序中去。
11.是一种中性结构
“Java编译器生成的是一种中性的对象文件格式。
”也就是说,Java编译器通过伪编译后,将生成一个与任何计算机体系统无关的“中性”的字节码。
这种中性结构其实并不是Java首创的,在Java出现之前UCSDPascal系统就已在一种商业产品中做到了这一点,另外在UCSDPascal之前也有这种方式的先例,在NiklausWirth实现的Pascal语言中就采用了这种降低一些性能,换取更好的可移植性和通用性的方法。
Java的这种字节码经过了许多精心的设计,使得其能够很好地兼容于当今大多数流行的计算机系统,在任何机器上都易于解释,易于动态翻译成为机器代码。
1.4Java虚拟机(JVM)
Java虚拟机(JVM)是可运行Java代码的假想计算机。
只要根据JVM规范描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。
如图1-1所示:
第8页
图1-1Java虚拟机
从图1-1中不难明白JAVA可以实现可移植性的原因,只要在操作系统上(WINNT、Linux、Unix)植入JVM(Java虚拟机),JAVA程序就具有可移植性,也符合SUN公司提出的口号“WriteOnce,RunAnywhere”(“一次编写,处处运行”)。
目前,Java技术的架构包括以下三个方面:
J2EE(Java2PlatformEnterpriseEdition)企业版,是以企业为环境而开发应用程序的解决方案。
J2SE(Java2PlatformStandEdition)标准版,是桌面开发和低端商务应用的解决方案。
J2ME(Java2PlatformMicroEdition)小型版,是致力于消费产品和嵌入式设备的最佳解决方案。
第9页
1.5JDK的安装及环境变量的配置
要开发Java程序首先必须要配置好环境变量,而Java的运行环境的配置比较麻烦,相信有些读者也会有这种体会,下面来看一下JDK的安装过程。
在这里JDK选用的是J2SDK1.4.2版本。
安装分为两个步骤:
1、首先要准备好JDK的安装文件:
j2sdk-1_4_0_03-windows-i586;
2、配置环境变量path。
先来看一下步骤一的安装过程:
图1-2启动JDK安装程序
第10页
图1-3将安装路径设置为c:
\j2sdk
之后走默认的安装设置即可。
从图1-1可以看出,在编译Java程序时需要用到Javac这个命令,执行Java程序需要java这个命令,而这两个命令并不是windows自带的命令,所以使用它们的时候需要配置好环境变量,这样就可以在任何的目录下使用这两个命令了。
那么该如何设置环境变量呢?
在我的电脑上点击右键——>选择属性——>选择高级——>环境变量——>path。
第11页
图1-4系统环境变量的配置
在path后面加上c:
\j2sdk\bin;
c:
\j2sdk是安装JDK的路径,如果记不清楚了,可回去看一下图1-3。
注意:
在这里使用的是windows2000操作系统,至于其他的操作系统,如windows98在设置环境变量的时与windows2000的配置有许多不同,如果读者感兴趣,可以去查阅其他的资料。
第12页
图1-5添加环境变量
这样就可以在任何目录下使用javac和java这两个命令了。
1.6编写第一个Java程序
说了这么多,现在就自己来动手编写一个Java的程序来亲自感受一下Java语言的基本形式。
需要说明的是,JAVA程序分为两种形式:
一种是网页上使用的Applet程序(Java小程序),另一种是Appliction程序(即:
Java应用程序),本书主要讲解的是JavaApplication程序。
第13页
范例:
Hello.java
01publicclassHello
02{
03//是程序的起点,所有程序由此开始运行
04publicstaticvoidmain(Stringargs[])
05{
06//此语句表示向屏幕上打印"HelloWorld!
"字符串
07System.out.println("HelloWorld!
");
08}
09}
将上面的程序保存为HelloCareers.java文件,并在命令行中输入javacHello.java,没有错误后输入javaHello。
输出结果:
HelloWorld!
程序说明:
在所有的JavaApplication中,所有程序都是从publicstaticvoidmain(Stringargs[]),开始运行的,刚接触的读者可能会觉得有些难记,在后面的章节中会详细给读者讲解main方法的各个组成部分。
上面的程序如果暂时不明白也没有关系,读者只要将程序一点一点都敲下来,之后按照步骤编译、执行,就可以了,在这里只是让读者对JavaApplication程序有一个初步印象,因为以后所有的内容讲解的都将围绕JavaApplication程序进行。
1.7classpath的指定
在java中可以使用setclasspath命令指定java类的执行路径。
下面通过一个实验来了解classpath的作用,假设这里的Hello.class类位于c:
\盘下。
第14页
在D盘下的命令行窗口执行下面的指令:
setclasspath=c:
之后在D盘根目录下执行:
javaHello,如下图所示:
图1-6
由上面的输出结果可以发现,虽然在D盘中并没有Hello.class文件,但是却也可以用javaHello执行Hello.class文件,之所以会有这种结果,就是因为在D盘中使用setclasspath命令,将类的查找路径指向了C盘,所以在运行时,会从C盘下开始查找。
小提示:
可能有些读者在按照上述的方法操作时,发现并不好用,这里要告诉读者的是,在设置classpath时,最好将classpath指向当前目录,即:
所有的class文件都从当前文件夹中开始查找:
setclasspath=.
第15页
·本章摘要:
1、Java程序比较特殊,它必须先经过编译,然后再利用解释的方式来运行。
2、Byte-codes最大的好处是——可越平台运行,可让“一次编写,处处运行”成为可能。
3、使用classpath可以指定class的运行路径。
第16页
第2章简单的Java程序
从本章开始,就要正式学习Java语言的程序设计,除了认识程序的架构外,本章还介绍了修饰符、关键字以及一些基本的数据类型。
通过简单的范例,让读者了解到检测与提高程序可读性的方法,以培养读者正确的程序编写观念与习惯。
2.1一个简单的例子
首先来看一个简单的Java程序。
在介绍程序的内容之前,先简单回顾一下第一章讲解的例子,之后再来看下面这个程序,试试看是否看得出它是在做哪些事情!
范例:
TestJava2_1.java
01//TestJava2_1.java,java的简单范例
02publicclassTestJava2_1
03{
04publicstaticvoidmain(Stringargs[])
05{
06intnum;//声明一个整型变量num
07num=3;//将整型变量赋值为3
08//输出字符串,这里用"+"号连接变量
09System.out.println("这是数字"+num);
10System.out.println("我有"+num+"本书!
");
11}
12}
输出结果:
这是数字3
我有3本书!
如果现在看不懂上面的这个程序也没有关系,先将它敲进Java编辑器里,将它存盘、编辑、运行,就可以看到上面的输出结果。
第17页
从上面的输出结果中可以看出System.out.println()的作用,就是输出括号内所包含的文字,至于public、class、static、void这些关键字的意思,将在以后的章节中再做更深入一层的探讨。
程序说明:
1、第1行为程序的注释,Java语言的注释是以“//”标志开始的,注释有助于对程序的阅读与检测,被注释的内容在编译时不会被执行。
2、第2行publicclassTestJava2_1中的public与class是Java的关键字,class为“类”的意思,后面接上类名称,在本程序中取名为TestJava2_1。
public则是用来表示该类为公有,也就是在整个程序里都可以访问到它。
需要注意的是,如果将一个类声明成public,则也要将文件名称取成和这个类一样的名称,如图2-1所示。
本例中的文件名为TestJava2_1.java,而public之后所接的类名称也为TestJava2_1。
也就是说,在一个Java文件里,最多只能有一个public类,否则.java的文件便无法命名。
图2-1如果将类声明成public,则也要将文件名称取成和这个类一样的名称
3、第4行public
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 基础教程