还剩7页未读,继续阅读
文本内容:
Java的故事和Java编程环境搭建13Sep
一、《Java基础讲座》前言
二、Java的故事我们明白人能够使用程序软件来操控计算机的硬件来完成一些工作,而软件程序则是由某种编程语言编写的Java就是这样一种正在广泛流行与使用的面向对象的编程语言,也是我们今后研究的重点语言
1、Java的诞生让我们把时空切换到1982年,那一年一个伟大的公司诞生于美国斯坦福大学校园,它的名字叫Sun Microsystems,直译的话叫太阳微系统公司,事实上Sun是Stanford UniversityNetwork的缩写Sun在IT行业中被认为是最具制造性的企业是极少数几个同时拥有自己微处理器、电脑系统、操作系统的公司1990年的一天,Sun的总裁麦克尼利McNealy听说他最好的一个工程师詹姆斯・高斯林James Gosling打算离职,他感受事态很严重直觉告诉他优秀的员工的离去意味着公司正在出大烦恼麦克尼利务必找高斯林与其他员工好好谈谈,看看问题出在哪里这些员工的意见很一致Sun公司本来是硅谷极为特殊的一个公司,以充满活力、富于创新著称太阳微系统公司一直很尊重员工,尽量发挥他们的制造力与热情但是,近年来,太阳微系统公司却越来越像成熟的大公司了连哥斯林这样的人,公司也安排他去做一些为老系统写升级软件这种琐碎的工作正在扼杀着太阳微系统公司员工的创新思想与工作热情高斯林他们想做一些伟大的、革命性的情况,但在Sun公司现在的状况中是不可能实现的随后,麦克尼利采取了一个大胆的举动,他让高斯林自己组建一个完全独立于公司的小组,由小构成员自己决定工作目标与进度麦克尼利对哥斯林说“我不管你们要做什么,要多少钱、多少人,也不管你们花多长时间做出来,公司都无条件支持”这个后来取名为“绿色小组”所要研究的产品就是十年后风靡IT界的数字家电、后PC设备与家庭网事实证明,绿色小组的研究并不十分成功,直到2001年,Sun在数字家电方面的业绩并不很突出但是,绿色小组的一个副产品,高斯林发明的Java程序设计语言,却深深改变了这个世界……绿色小构成立之初只有4个人他们有一个很模糊的办法,甚至连最终的目标产品是硬件还是软件也不明白但是他们明白务必发明一些技术或者者产品让Sun公司赶上信息领域的下一波大浪潮当时人类已经发明了很多种消费类电子产品,包含微机、手机、手持电脑、录相机、电视机、洗衣机、冰箱、微波炉等等他们认为要将这些设备数字化并用网络互联讲是今后的方向(物联网?)绿色小组将这个需求归结成两个产品原型目标,即发明一种手持遥控设备来实现所有家电设备的互联(硬件);发明一种程序设计语言,用它来编写能在这些设备上运行的小巧程序(软件)高斯林给当时设计了一种运行在虚拟机中的面向对象的语言,起名叫Oak(橡树,高斯林窗外的一颗树)但是申请注册上商标时,发现Oak被其他公司注册了,不得不重新起名当时他们正在咖啡馆里喝着印尼爪哇(Java)岛出产的咖啡,有一个人灵机一动说就叫Java怎么样,并得到了其他人的赞赏,因此他们就将这种程序语言命名为Java绿色小组的成员每周工作七天,平均每天工作12到14个小时,后期工程师们几乎住在实验室,没日没夜地干,只是每隔几天回家洗澡换衣服三年以后他们制作出了第一台样机,尽管实现了基本功能,但造价在一万美元以上,尽管市场前景不明朗,技术上也还有很多问题,Sun公司的管理层还是用奖金与股权大大奖励了绿色小组的成员,并加大投入,努力实现产品化但是公司内外对其产品都不看好,市场也并不认可绿色小组的成员在沮丧与失望中度过了整个1993年与1994年在士气最低落的时候,大部分成员都离开了绿色小组,有的甚至离开了Sin公司留下来的人也失去了工作热情很多人每天早上H点钟上班,下午4点钟就离开了有些人一天到晚只是玩游戏,还有的人则念学术论文在黑暗的日子里他们都期待着上天能眷顾他们这些苦命的人,期待着某种奇迹出现……当时互联网已经出现了20年左右,但Ftp与Telnet的方式无法在科研人员之外的人群普及与应用,1994年一个名叫网景的公司推出了一种叫做Netscape浏览器的东西,加速了互联网的普及;高斯林他们意识到互联网是一个今后的进展方向开始制作针对互联网的Java应用,希望会有所斩获1995年初的一天,高斯林与以往一样不停地参加各类会议以期让人们认可他们的产品,这次他参加的是“硅谷-好莱坞”互联网及娱乐业的研讨会演讲刚开始是,大家对高斯林的讲解意兴阑珊,直到他将鼠标移向一个分子模型,这个分子模型动起来了,而且会随着鼠标的移动上下翻滚!场面立刻发生了逆转,会场一下子沸腾起来,人们惊叹不已、啧啧称奇刹那间,人们对互联网的潜力进行了一番新的审视!也就在刹那间,这一批有影响力的人成了高斯林最忠实也是最有力的说客Java活下来了,同时成了互联网时代最强势、最具代表性的语言
2、微软与Sun针对Java的世纪之战Java特点是,一次编写,到处运行,能够习惯于任何平台而互联网就是这样一个能够是任意平台的超大网络因此Java借着互联网快速进展的东风,扶摇而上,迅速穿红面对Java金矿,大家都跃跃欲试……这其中要数微软与Sun之间的斗争最为曲型.1996年9月的某一天,微软浏览器部门的主管艾达姆-波茨瓦斯几经考量之后,提笔给时任微软CEO的比尔•盖茨写了一邮件,他非常恳切地提醒比尔•盖茨注意一个正在形成的威胁他写到〃务必意识到Java不仅仅是一种语言,假如它只是一种语言,我们愿意同时能够容易地为它建立最佳的表现形式,情况能够圆满解决了但是事实上,Java绝不仅仅是一种语言,它是COM的替代者!〃而COM恰恰是Windows的编程模型而Java编程很多时候比C++编程要容易的多,更致命的是他是跨平台的波茨瓦斯也提出了对抗Java的方法,就是悄悄地为Java提供某些扩展,使得用Java编写的程序能够在Windows中工作得更好,但是在其它平台上却不能运行盖茨显然被这封信吓坏了,他第二天就回信了〃这可把我吓坏了我不清晰微软的操作系统要为Java的客户应用程序代码提供什么样的东西,而这些东西将足够让它来取代我们的市场地位熟悉这一点非常重要,是应该最优先考虑的情况〃(没想到,这封信成为几年后司法部针对微软的反托拉斯案的呈堂证供)自此微软与Sun针对Java的世纪之战拉开了……第一回合微软推出J++语言,并推出了Visual j++集成编程工具,对Java进行了大量的修改1997年,Sun公司以歧视使用Java软件,旨在维持其视窗操作系统的垄断地位,违反反垄断法为由起诉微软,2001年1月,SUN胜诉,根据双方达成的与解协议,微软不得对Windows操作系统中包含的Java语言作任何改动,并获赔2000万美元第二回合2001年年底,微软在推出新版操作系统Windows XP与新版IE时,有意不安装Java软件,同时推出自己仿造Java制造的语言C#与.net框架2002年的3月8日,SUN公司向美国加州地区法庭提出起诉,称此举造成它直接经济缺失高达10亿美元2002年6月,微软干脆称从2004年起,由于安全原因微软的Windows操作系统将不再支持Java语言就在双方口水战日益升级之际,迎来了有关SUN诉微软案的第一次听证会SUN起诉微软的听证会被安排在2002年12月的第一周,当时,在巴尔的摩市下了近三年来最大的一场雪整个城市几乎都停止运转但是弗雷德里克•摩兹法官坚持要求开庭,同时要求几十位与案件有关的律师到场出席;据审判时一位目击者说,为了保证早上能够到庭,法官他自己在会议室中睡了一晚几周后,也就是2002年12月23日,摩兹法官公布了那份长达42页的判决书,他裁定微软公司务必在其Windows操作系统与IE中公布与其竞争的Java编程语言摩兹法官的意见是在微软的垄断下,Java拥有一个并不健全的市场,比如说,大部分PC上所安装的Java软件要么就是旧版本,要么就是仅适用于Windows的版本,这使得其它软件开发者对Java平台产生了厌恶的情绪,这些都是由于微软反竞争行为的结果,看来微软已经利用Windows的垄断地位来破坏SUN对Java的销售渠道树立市场正义的唯一方法是纠正微软的所作所为,〃阻止微软从它过去的错误中获得将来的利益!〃针尖对麦芒的斗争一直在继续……与解2004年4月2日,两者达成与解协议微软将向Sun赔付20亿美元以消解旧怨,他们开始共同应对来自IBM与Linux的挑战从上面的故事中可能有同学认为Sun是正义的,微软是非正义的,是这样的吗?我们能够再看看下面的故事……
3、Oracle与Google针对Java的再次对决事实上,不止微软一家意识到Java是座金矿Oracle是第二家从Sun手中购买Java许可证的公司,而IBM甚至比Sun更早的意识到Java在企业级应用方面的价值,在对Java支持上投入了巨大的精力,我们平常编写Java程序使用的Eclipse IDE集成编程环境,就是IBM主导开发、用以争夺Java领导权的重大举措(有空能够细讲IBM与Sun的恩恩怨怨,从Eclipse这个名字就能够看到其中的火药味)“与谐”的阴影IBM与Intel为了争夺Java的话语权,向Sun发出了新一轮的挑战,2005年他们支持Apache开源社区发起了一个叫做Harmony的项目,Harmony有个有趣的中文意思-与谐Harmony的目的有两个
1、在Apache Licencev2的许可之下,独立的(不阅读Sun JDK的源代码,仅仅根据Java SE5specification)开发一个与Java SE兼容的JDKo
2、通过Harmony的开发社区,创建一个模块化的架构(包含虚拟机与类库)该架构同意所有的独立开发项目能够共享运行时组件简单的说,Harmony就是让其他公司能够使用它来绕开SUN JDK的商业限制Sun为了保持自己对Java的主导权,坚决不给Harmony颁发JDK认证这让开源社区Apache与SUN发生了决裂……“太阳”的终结Sun制造了Sparc SolarisJava等伟大的产品,Sun曾经风光无限,市值估价2000亿美金Sun预测到网络就是计算机,但是真正的网络时代到来时,它却没有真正调整过来,不断的亏损与决策失误让它举步维艰2009年4月Oracle宣布以74亿美金收购Sun,2010年1月欧盟决定无条件同意这项收购,一个伟大公司就这样走到生命的尽头(墓前站的是Linux的吉祥物Tux塔克斯与Java的吉祥物Duke杜克)尽管Sun已经离去,Java还会继续前行……“机器人”的小伎俩1998年Sun的共同创始人Andy Bechtolsheim给了斯坦福大学的两个学生一笔10万美金的天使投资,他们成立了一个小公司名字叫----Googleo2007年11月5日,已经成长为互联网领域内巨人的Google公布了一个叫做Android的手机操作系统平台Android使用我们上面提到的Harmony来作为JDK(Java开发工具包)的替代品,使用Dalivk虚拟机来替代JVM(Java虚拟机),它这次从头至尾都没有说它用的是Java,但是所有的Java程序员都懂这就是Java Oracle对Google的诉讼2010年8月12日,Java专利权的新主人Oracle指控Google在Android开发中“有意,直接并反复侵犯Oracle的Java有关的知识产权”,新一轮的斗争正在继续
三、Java的版本演进1995年5月23Java语言公布日1996年1月,JDKL0诞生,4月,10个最要紧的操作系统供应商申明将在其产品中嵌入JAVA技术,9月,约
8.3万个网页应用了JAVA技术来制作1997年2月18JDK
1.1公布1998年12月4JDK
1.2Java2公布日随后,SUN公司公布Java的三个版本标准版(J2SE)、企业版(J2EE)与微型版(J2ME),为Java今后的方向指明了道路2000年5月8日J2SE
1.3公布2000年5月29J2SEL4公布日2004年9月30J2SEL5公布,成为Java语言进展史上的又一里程碑日为了表示该版本的重要性,J2SEL5更名为Java SE
5.02005年6月Java SE
6.0公布J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME
四、Java JDK安装与编程环境搭建接下来我们就开始学习这个改变了世界的编程语言我们学打扑克牌需要先买一副扑克牌,然后打开牌盒先认认牌学习一门语言的第一步就是搭建它的编程环境,然后写一个简单的Java程序的例子,简单熟悉一下最后看看别人都用这个语言都弄出来些什么好玩的程序
1、JDK的下载(Windows环境)JDK的意思是Java DevelopmentKit,直译就是Java开发套件JDK是我们学习Java必备工具我们能够从Oracle的网站可下列载最新版的JDK b、在出来的页面中点击Download按钮c在下面的页面中选择Platform为Windows,然后点击Continue按钮安装过程我就不演示了,只需要建议的是,能够把JDK安装在类似“C:\javasoft”的目录中,而不是c:\program filel下d、在接下来的页面里点击带下划线的下载链接即可
2、JDK的安装a、下面介绍一下安装步骤,双击下载回来的jdk-6u21-windows-i
586.exe,点击下一步b更换安装位置为c:\JavaSoft\jdkl.
6.021C、稍等片刻d、在选择JRE(Java RuntimeEnvironment Java运行时环境)安装目录步骤时能够直接点下一步e>安装jre的过程中居然有个OOo OpenOfficeOrganization的广告3再稍等一下就能够看到成功安装的提示g>最后打开命令行窗口敲一个命令检查是否运行正常java-version,这是个查看Java版本号的命令,我们这次安装的是JDK
1.6的第21个更新包,因此看到的反馈应该是这样好吧,恭喜你完成了最重要的一步
3、环境变量环境变量通常是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置与系统文件夹位置等Java的运行环境需要配置如下几个参数,JAVA_HOME,classpath与Path,下面简单叙述一下在“我的电脑”上点右键,在随后的菜单中选属性,能够看到系统属性选项卡,右下角就是“环境变量”按钮点击“新建…”变量名写JAVA_HOME,变量值写c:\javasoft\jdkl.
6.0_21,这样就配置好了JAVAJOME,这个变量时其他JAVA程序约定俗称的寻找Java安装目录的根据找到变量Path,点击“编辑…”,在最前端加入%JAVA_HOME%\bin;”这样,我们就能够在任何路径下使用java与javac命令了找到classpath,假如没有则新建一个变量值为;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar v,留意一下最前面的.,它代表当前目录classpath的作用是让java虚拟机能够找到class文件的位置配置完成后需要检测一下,运行cmd,敲命令javac-version,假如不报错,就说明配置成功了
4、创建、编译与运行一个Java文件a、我们建立一个目录,今后所有的实验都将在这里进行“c:\workspace、java”b、在java目录下建立今天课程的目录lessonOl,记住目录名小写c、创建LessonOl.java建立一个名字叫LessonOl.java的文件,右键用Editplus打开不可能使用EditPlus的请自行搜索与学习使用,很简单不用怕在文件中写入1class LessonOl{2)上面的代码你能够懂得成有个东西叫LessonOl d、编译LessonOl.java:在命令行窗口(不熟悉命令行窗口的同学能够自行搜索并学习)中敲入如下命令javac LessonOl.java假如成功的话会没有任何提示,同时会出现一个名字叫LessonOl.class的文件,生成class的过程就是编译的过程e>运行LessonOl.class在命令行窗口中敲入如下命令,1java LessonOl提示如下图所示意思是“在主线程中产生了一个叫做没有main这个方法的错误”我们下面就来尝试修正这个错误,重新编辑LessonOl.java,内容如下2class LessonOl{3public staticvoid mainString[]args{4System,out.printin〃欢迎进入Java的世界!〃;56再次编译、运行,这次看到将是恭喜你成功完成了一个Java程序从创建、编译到运行的全过程,Java的世界就此向你展开
六、Java虚拟机与Java程序运行原理我们在命令行中运行一下java-version,看看结果注意它的反馈信息实际上有3行,分别是java sdk的版本,JRE的版本与JVM的版本,而Java HotSpotClient VirtualMachine就是Sun公司开发的Java虚拟机那么什么是Java虚拟机Java虚拟机JVM是可运行Java代码的假想计算机只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证通过编译的任何Java代码能够在该系统上运行Java程序的运行过程大致就是先吧Java源文件后缀是.java的文件编译成.class文件,然后再运行class文件
七、Java程序演示Demo Java能够做些什么,同学们能够先到java安装目录的demo子目录C:\javasoft\jdkl.
6.0_21\demo中看一看,这就是个本节课的作业,大家去寻宝吧最后送大家一架钢琴,JavaSoundDemo.jar这个小程序是我从Mac OS自带的JDK包目录里发现的,双击即可运行,鼠标放上去就会有音乐飘出,尽情的演奏吧「这个文件我打包源文件里了,不用向我单独要本讲就到这里,Take yourtime andenjoy it。