第1部分Java基础程序设计·Java语言介绍·简单的Java程序·Java中的变量与数据类型·运算符、表达式与语句·循环与选择结构·数组与方法的使用第1页第1章认识Java1.1Java的历史Java来自于Sun公司的一个叫Green的项目,其原先的目的是为家用电子消费产品开发一个分布式代码系统,这样就可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交流。开始他们准备采用C++,但C++太复杂,安全性差,最后基于C++开发一种新语言Oak(Java的前身)。Oak是一种用于网络的精巧而安全的语言,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.31.3.1Java的特点Java语言的优点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语言在伪编译时,做了许多早期潜在问题的检查,并且在运行时又做了一些相应的检查,可以说是一种最严格的“编译器”。它的这种“防患于未然”的手段将许多程序中的错误扼杀在摇蓝之中。经常有许多在其它语言中必须通过运行才会暴露