1Java的发展历史Java的起源Java是Sun公司1995年正式推出的新一代面向对象程序设计语言,特别适合于Internet应用程序开发,其平台无关性直接威胁到Wintel的垄断地位。Java来自于1991年Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制。开始,准备采用C++,但C++太复杂,安全性差,最后基于C++开发了一种新的语言Oak(Java的前身),Oak是一种用于网络的精巧而安全的语言。1994年下半年,Internet的快速发展,促进了Java语言研制的进展,Green项目组成员用Java编制了HotJava浏览器,触发了Java进军Internet,使得它逐渐成为Internet上受欢迎的开发与编程语言,现已发展成为一种重要的Internet平台。2关于Java的大事•Duke(Java吉祥物)•2005JavaChina中国开发者大会1991年Sun公司的一个叫Green的项目开始启动1992年“Oak”编程语言诞生,绿色小组开发出StarSeven(*7),Duke作为Java语言的吉祥物登上国际舞台1993年绿色工程成为焦点,Mosaicv1.0版本发布(历史上第一个多媒体的网络浏览器)1994年第一个支持移动对象和动态可执行内容的浏览器WebRunner发布1995年以JamesGosling为首的编程小组在wicked.neato.org网站上发布了Java技术,Java语言的名字从Oak变为Java,Java技术通过Sunworld正式发布1996年第一次举办JavaOne开发者大会,JDK1.0软件发布计算机深蓝色首次击败国际象棋大师GarryKasparov1997年三周内超过22万的开发者下载了JDK1.1软件,超过8,000名开发者参加了JavaOne大会,JavaCard2.0平台发布1998年JDK1.1发布,其被下载次数超过2百万,VISA公司应用JavaCard技术推出了世界上首张智能卡,Java社区(JCP)成立1999年Java2平台源代码公开,JavaOne大会参会人数增长到20,000人,J2EEbeta软件发布2000年全球有超过400个Java开发团队,在JavaOne大会上,SteveJobs与ScottnMcNealy一起宣布苹果公司会全力支持Java技术2001年首个国际性JavaOne会议在日本横滨召开,超过百万的开发者下载JavaPlatformEnterpriseEdition(JavaEE)SDKGoogle公司的PageRank查询算法被授予专利2002年2EESDK下载次数达2百万,78%的决策者认为,J2EE技术是最有影响力的网络构建开发平台2003年大约有5.5亿个桌面系统应用了Java技术,有75%的专业开发者使用Java编程语言,并将其作为主要的开发语言2004年Java2Platform,StandardEdition5发布,利用Java技术开发的火星探测器成功登陆火星,SunJavaStudioCreator发布2005年有大约450万名开发者正在使用Java技术,全球有25亿台设备使用了Java技术,用于生态系统中的Java技术约合1000亿美金展望当前版本:JavaEE5.0代号:TigerJ2SE6.0:明年推出,代号:Mustang野马J2SE7.0:代号:Dolphin海豚3Java风云人物“Java之父”JamesGosling40年前,一个寒冷的冬天出生在加拿大一个村庄里,12岁做了一台电子游戏机,14岁学习计算机编程。80年代初,JamesGosling获得博士学位后到IBM工作,设计IBM第一代工作站,后跳槽到Sun,1991年开始从事“绿色计划”项目,随后创造了Java。“Java之母”Java2元勋JoshuaBloch将Java“哺育”成长,主要贡献:JDK1.1中的java.math、JDK1.4中的assertions、CollectionsFramework、Tiger,2004年7月离开Sun到Google公司。BillJoy,软件行业的爱迪生1954年出生,是兼通计算机软硬件技术的天才,Sun的创始人之一,世界上最优秀的程序员(BestCoder)AcottMcNealySun十年来的掌舵者,Sun的CEO、总裁兼懂事长DougLea世界上对Java影响力最大的个人,因为在Java的两次大变革中,他都起了举足轻重的作用,服务于纽约州立大学Oswego分校计算机科学系BruceEckel《ThinkinginJava》的作者,具有超人的表达能力和捕捉机会的能力4Java著名产品SunJDKJava的基石,Sun公司产品,1996年1月推出JDK1.1,目前是2004年9月推出的J2SE5.0Eclipse以构架赢天下,2001年IBM投资成立了Eclipse联盟,是目前最受欢迎的Java开发工具Junit/Ant让Java自动化的绝代双骄,Junit是单元测试的工具,Ant是编译部署工具,是Java程序员的必备工具Websphere1999年IBM推出,开发Web应用程序的平台WebLogic1998年BEA推出的以Java为基础的应用平台服务器JBuilderJava开发工具的王者,是由Borland公司推出的Java集成开发环境,半年推出一个新版本,目前为2005版JdeveloperIDEOracle公司提供的Java开发工具5Java语言的特点-简单易学:1)风格类似于C++,基本语法与C语言类似;2)摒弃了C++中容易引发程序错误的地方,如指针和内存管理;3)提供了丰富的类库。–面向对象:支持静态和动态风格的代码继承及重用,是完全面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。–解释执行:Java解释器(运行系统)能直接运行目标代码指令。–平台无关:Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,被设计在Java虚拟机上运行。–性能优异:Java可以在运行时直接将目标代码翻译成机器指令,Sun用直接解释器一秒钟内可调用300,000个过程,翻译目标代码的速度与C/C++的性能没什么区别。–分布式:Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。–可移植:Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,通过定义独立于平台的基本数据类型及其运算,Java数据得以在任何硬件平台上保持一致。–多线程:Java提供的多线程功能使得在一个程序里可同时执行多个小任务。多线程带来的好处是可以有更好的交互性能和实时控制性能。–健壮:Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。–安全:Java的安全性可从两个方面得到保证。一方面,在Java语言里,象指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和一些浏览器本身提供的功能结合起来,使它更安全。–动态:Java的动态特性是其面向对象设计方法的拓展,它允许程序动态地装入运行过程中所需要的类。与Java语言相关的应用JavaApplication(Java应用程序):用Java语言编写的通过独立的Java解释器来解释运行的桌面应用程序(类似于其它高级语言编制的应用程序)。JavaApplet(Java小程序):用Java语言编写的、嵌入在HTML编写的Web页面中的非独立程序,由Web浏览器内部包含的Java解释器来解释运行,是动态、安全、跨平台的网络应用程序。JSP(JavaServerPages,Java服务器页):是一种实现普通静态HTML和动态HTML混合编码的技术,是在Sun公司倡导及多个公司参与下共同建立的一种动态网页标准,实现了Web动态内容与其显示的分离,用于构建动态Web网站,JSP文件运行于服务器端,JSP的脚本语言是Java,其平台无关性使得JSP一次编写,各处运行。最新应用——Java为用户推出了游戏、天气预报、地图等一系列紧俏时髦的应用,它能够帮助汽车司机避免交通阻塞,还能让公司对即将出行的销售人员进行跟踪。目前在移动通讯中被广泛使用,如手机抓捕图象、手机游戏等。6与Java相关的几个常见名词•J2EE——Java2Platform,EnterpriseEdition(Java2企业版)J2EE首先是一种构架,它包罗了Java的多种先进的技术,最合适使用MVC的方法来构建系统,其表现层使用JSP,控制层可以使用Servlet或SessionBean,用于实现业务逻辑,EntityBean则对业务实体进行抽象。此外它还使用JAAS实现安全机制,JNDI用于查询资源,JDBC和JTA访问数据库和管理事务;JMS实现企业的消息处理;JavaMail实现与企业外界的联系。今年10月份将发布的最新版本为JavaEE5.0。•J2SE——Java2Platform,StandardEdition(Java2标准版),是Java最核心的技术,最新版本为J2SE5.0。•J2ME——Java2Platform,MicroEdition(Java2袖珍版),是一个重要的用于无线方面的Java平台,它从可移植的、以网络为中心的Java虚拟机转变而来。•JVM——JavaVirtualMachine(Java虚拟机),它通过采用一种被称之为Java虚拟机的虚拟微处理器的规范,用软件在计算机芯片内模拟出一个假芯片,然后开始运行程序,为Java程序提供统一的脱离软、硬件平台的运行环境。JDK——JavaDevelopmentKit(Java开发工具包),由Sun公司免费发行的,JDK有多个版本,大体经历过1.02、1.1.x、1.2、1.3、1.4、1.5几个系列,最新版本为2004年发布的JDK1.5。JSDK——JavaServerDevelopmentKit(Java服务器开发工具包),是JDK的一个典型的扩展工具包。JDBC——JavaDataBaseConnectivity(Java数据库连接),是一种用于执行SQL语句的JavaAPI(应用程序接口),可以为多种关系数据库提供统一访问,是由一组用Java语言编写的类和接口组成。•Applet——JavaApplet是用Java语言编写的、包含在网页里的“小应用程序”,通常被放在Web服务器上。当有人上网浏览时,Applet随网页一起下载到客户端的浏览器中,并借助浏览器中的Java虚拟机(JVM)运行工作。•Servlet——Servlet是用Java编写的Server端程序,它与协议和平台无关。Servlet运行于Java-enabledWebServer中。JavaServlet可以动态地扩展Server的能力,并采用请求-响应模式提供Web服务。Servlet与Jsp之间的交互为开发Web服务提供了优秀的解决方案。•Swing与AWT(抽象窗口工具包)——是Java设计GUI(图形用户界面)的基础。AWT设计有严重缺陷,不能满足发展的需要。Swing是在AWT基础上发展起来的,为JavaGUI编程提供了强大丰富的API和灵活的结构设计,提供了替代AWT重量组件的轻量组件,Swing中大部分是轻量级组件。Swing几乎无所不能,不但有各式各样先进的组件,而且更为美观易用。二者最好不要混用。EJB(EnterpriseJavaBeans)--J2EE核心组件,EJB并不是一个产品。它是Java服务器端服务框架的规范,软件厂商根据它来实现EJB服务器。EnterpriseBean与JavaBean不同。JavaB