深圳市计算机行业协会

上传人:yx****d 文档编号:242969943 上传时间:2024-09-13 格式:PPT 页数:35 大小:63KB
返回 下载 相关 举报
深圳市计算机行业协会_第1页
第1页 / 共35页
深圳市计算机行业协会_第2页
第2页 / 共35页
深圳市计算机行业协会_第3页
第3页 / 共35页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,深圳市计算机行业协会,2005年6月23日,1,JAVA简史,Sun,的公司,,Patrick Haughton,和,James Gosling(,一个全能的计算机奇才)带领着,Sun,的一个工程师小组,着手设计能够用于像有限电视转换盒一类的消费设备的小型计算机语言。由于这些设备没有很强的处理能力和太多内存,所以这个语言必须非常小并能够生成非常紧凑的代码。另外,因为不同的厂商可能选折不同的,CUP,,所以这个语言不能够限定在一个单一的体系结构下。这个项目的名称是“,Green”.,2,JAVA简史,对代码短小,紧凑,与平台无关的要求使得开发团队找出了很早以前的一个模型。一些,Pascal,实现曾经在早期,PC,上试过这个模型,以,Pascal,的发明者,Nucleus Wirth,为先驱,而,UCSD Pascal,对此做的商业实现是要设计一种能够为假想机器生成中间代码的可移植的语言(假想机器被称为虚拟机,,Java,虚拟机(,JVM),也由此而来)。,3,JAVA简史,对代码短小,紧凑,与平台无关的要求使得开发团队找出了很早以前的一个模型。一些Pascal实现曾经在早期PC上试过这个模型,以Pascal的发明者Nucleus Wirth为先驱,而UCSD Pascal对此做的商业实现是要设计一种能够为假想机器生成中间代码的可移植的语言(假想机器被称为虚拟机,Java虚拟机(JVM)也由此而来)。,4,JAVA简史,不过,,Sun,的开发人员大都具有深厚的,Unix,背景,因此他们的语言基于,C+,,而非,Pascal。,尤其是,他们把语言设计成面向对象的,而不是面向过程的。但正如,Gosling,在采访中说:“毕竟,语言只是工具,而非目标。”,Gosling,把他的语言称为“,Oak”.Sun,的人后来才发现,Oak,已经是一门存在着的计算机语言的名字,于是他们又把名字改成了“,Java”.,与爪哇的名字相同。1995年5月23日,,Java,出现在,Sun,系统公司的年度,SunWorld,会议中,作为公司20项公布项目中的第12项。,5,JAVA简史,1997年,Sun公司因为Java的一些不兼容性而起诉Microsoft公司,喀拉喀托火山也开始活跃起来(从此爪哇岛每年要发生大约十次火山爆发,也许这只是一种巧合吧)。随着官司越打越大,岛上居民的生活也越来越难过了,雅加达的经济危机,造成苏哈托总统下台,东帝汶提出要求政治自由。Sun Java也发生了同样激烈的血战,最终于2001年判决Microsoft公司受罚两千万美元。,6,JAVA简史,下面讲讲,Java,平台。1995年的,Java,只是个编程语言,如今则已成为一个平台。,Sun,在1996年早期发部了,Java,第一版。人们很快认识到,Java 1.0,并不适合做真正的应用开发。的确,你可以使用,Java 1.0,生成在画布上随便游动文本的,applet。,但是你甚至无法用,Java 1.0,进行打印。,Java1.0,显然太过稚嫩,对黄金时期的到来还无准备。它的后继者,,Java1.1,填补了最明显的空缺,极大地提高了反射能力并为,GUI,编程增加了新的事件模型。,7,JAVA简史,1998年,JavaOne,会议的最大新闻是,Java 1.2,版的即将发布,该版本用老练的,可伸缩的版本取代了早期版本中玩具样的,GUI,和图形工具箱,从而比其先前版本更接近“一次编写,到处运行”的承诺。1998年12月,Java1.2,版本发布的3天后,,Sun,的市场部门把名字改为更响亮的“,Java 2,标准版软件开发工具箱1.2版”。随后出现的1.3版,1.4版都是在最初的,Java 2,版本基础上的增量改进,增加了一些新特性,提升了性能,当然也修正了一些,bug,8,Java,标准版,API,的发展,版本 类和接口的数目 方法和字段数目,1.0 212 2125,1.1 504 5478,1.2 1781 20935,1.3 2130 23901,1.4 3020(135个包,) 32138,1.5(5.0) 4000以上(166个包),9,JAVA的优点,Java,的一个显著优点就是运行时环境提供了平台无关性:你可以在,Windows,Solaris,Linux,或者其他操作系统上使用完全一样的代码。这点对于在各种不同平台上运行从,Internet,上下载的程序来说很有必要。,10,JAVA的优点,Java的另个优点在于它具有和C+类似的语法。这使得C和C+程序员可以很容易地学习Java。,Java还是完全面向对象的-甚至比C+还要面向对象。除了数字之类的几个基本类型,Java中的一切都是对象。,11,JAVA的优点,然而,Java绝不仅仅是某种经过改善的C+方言。很关键的一点在于:用Java开发没有bug的代码比用C+要简单的多。,原因何在呢?Java的设计者仔细研究了是什么使得C+代码这么容易出现bug。他们为Java增加了一些特性,来消除出现常见bug的可能性:,12,JAVA的优点,1,Java设计者取消了手工内存分配和回收。在Java中,内存是自动进行垃圾收集的。你永远不必担心会出现内存崩溃的现象。,2,他们引用了真正的数组而且取消了指针算法。你永远不必担心由于指针操作时出现的偏移错误而重写内存区域。,13,JAVA的优点,3,他们消除了在条件性语句中弄混赋值和相等测试的可能性。比如,你根本不能编译通过if(n=3)这样的语句。(VB,PB程序员可能注意不到这种问题,但是请相信,在C/C+代码中,这种语句是导致常见的错误根源。),14,JAVA的优点,4,他们消除了多重继承,替换为“接口”(interface)。接口能够实现多重继承的大部分功能,却没有管理多重继承层次关系带来的复杂性。,15,JAVA,技术特点,简单性,在一次,C+,会议上,,Sun,公司创始人之一,Bill Joy(,现为首席科学家)指出,“,C+,太复杂,我要的是,C+ + - ”。Java,正是满足了这个要求。,Java,加进了自动内存回收之类的新任务(+),减去了,C+,中费解而不常用的方面,如运算符重载(-)。,16,JAVA,技术特点,简单性,Java简单性的另一个方面是Java中没有任何真正的新东西。如果你看看Java特性集和计算历史,则可以发现,一切都是借用现成的东西。,17,JAVA,技术特点,简单性,1,类来自C+和Smalltalk,但Java只限于单实现继承。,2,接口来自Objective-C,向Java提供多接口继承。,3,包来自Modula,在Java中增加了层次试名字空间和逻辑开发单元。,4,并发性来自Mesa,Java内置多线程支持。,18,JAVA,技术特点,简单性,5,异常处理来自,Modula-3,在,Java,方法中增加了抛出异常的声明。,6,动态链接与内存回收来自,Lisp,Java,可以在需要时装入类,不需要时将其释放。,随着新特性不断加进,Java,中,这些特性也是从摸索与实践中来的。例如:在,Java 1.5,中增加参数化类型的支持。,19,JAVA,技术特点,面向对象,简单来说,面向对象设计是一种把重点放在数据(等于对象)和对象接口的编程技术。用问题空间中的元素与对象描述问题,而不是用计算机中执行的一系列步骤来描述。这样,好的设计就能得到可复用,可扩展和可维护的组件。这些组件相当灵活,可以处理环境的改变,因为这些对象的主要工作就是相互之间来回发送消息。,20,JAVA,技术特点,面向对象,实际上,Java APIs是这些预建组件的集合,称为类库。Java中不需要一切从头开始,也可以从标准库开始。这些标准库随着时间推移不断改变,每个新版本推出更多预建组件。,21,JAVA,技术特点,分布式,从1982年成立时起,Sun公司的思想一直是“网络就是计算机”,Java编程语言要求支持网络和像本地对象一样方便地访问分布式对象。这个目标一开始就已经提出,但Java的功能是不断改变的。,22,JAVA,技术特点,分布式,最初,,Java,只能通过,HTTP,之类的标准,TCP/IP,协议访问分布式对象。而利用最新版的,Java,平台,则可以通过,CORBA(Common Object Request Broker Architecture),与,RMI(Remote Method Invocation),等协议和最近增加的,Web Services,像访问同一执行空间的方法一样方便而直接地调用远程机器上的方法。对每个协议,系统自动处理所有转换与传输。,23,JAVA,技术特点,解释性,Java,程序是解释性的,不是编译成自然执行码,而是转换成平台中立的字节码。这些字节码可以传输到任何具有,Java,运行环境(,JRE,Java Runtime Environment),的平台,其中包括,Java,虚拟机(,JVM,Java Virtual Machine),从而在执行时不需要重新编译或重新链接。,24,JAVA,技术特点,解释性,也许你以为这个过程会使速度很慢,但稍后“高性能”一节将会介绍,情况并非如此。平台中立字节码实际上还包含其他信息,可以在运行时根据编译时无法进行的决策进行执行优化。,25,JAVA,技术特点,健壮性,健壮性反映程序的可靠性。,Java,的几个内置特性使程序的可靠性得到改进:,1,,Java,是强类型的语言。编译器和类装入器保证所有方法调用的正确性,防止隐式类型失配和版本不兼容性。,26,JAVA,技术特点,健壮性,2,,Java,没有指针,不能引用内存指针,搞乱内存或越过数组边界。,Java,用引用而不用指针,不能通过删除引用直接操纵内存空间。,3,,Java,进行自动内存回收,编程人员无法意外忘记释放内存,不需要判断何处需要释放内存。,4,,Java,鼓励用接口而不用类。接口定义一组行为,而类实现这些行为。我们传递的是接口而不是类,从而隐藏这些实现细节,27,JAVA,技术特点,安全性,Java,被设计为用于网络/分布式环境。为了达到这个目标,在安全方面投入了很大精力。用,Java,可以构建防病毒和防篡改的系统。,Java,安全机制禁止,Java,程序进行一些操作。下面列出被限制的一些操作:,28,JAVA,技术特点,安全性,1,禁止运行时堆栈溢出,如臭名昭著的,Internet,蠕虫所做的那样。,2,禁止在自己的处理空间外破坏内存。,3,禁止通过安全控制类转载器来读写本地文件,就像,Web,浏览器禁止此类访问。,29,JAVA,技术特点,体系结构中立,体系结构中立性指,Java,的平台中立字节码。,Java,程序不是编译成平台特定的二进制码,而是可以在任何地方执行,不需要重新编译与链接。如果公司开发新硬件,则不必放弃原有的软件投资,而只要在新平台中放上,Java,运行环境。如果新公司开发全新的硬件与操作系统,则不必从没有软件的产品上从零开始,只要放上,Java,运行环境,新设计的平台就可以运行所有现有,Java,程序。,30,JAVA,技术特点,可移植性,Java的格言是一次编写,到处运行(WORA,Write Once, Run Anywhere)。Java的目标是在任何体系结构中运行同一个程序。这种可移植性不仅利用了平台中立字节码,而且在Java Language Specification中定义了所有数字表示的长度,字节顺序和操纵,而不是利用实现特定细节(如 int 多大)。,31,JAVA,技术特点,高性能,也许你认为“解释性”与“高性能”是个矛盾,但平台中立字节码可以在运行时转换成,CPU,特定机器码,和自然编译,C/C+,代码以同样的速度执行。,Java,带有两个运行转换工具,可以自动完成这个工作:第一代工具是即时(,JIT,Just-In-Time),编译器;第二代工具是,HotSpot。,实际上,,HotSpot,和,JIT,编译器的作用是相同的;运行时转换成自然指令集。但是,,HotSpot,还监视代码执行,对经常执行的块进行速度优化,而不是盲目优化。,32,JAVA,技术特点,多线程,可以把线程看成执行情景。例如,联机浏览时,浏览器在后台下载图形的同时显示新的,Web,页面,每个任务可以在不同线程中执行,程序同时运行多个任务或线程时,成为多线程。,多线程程序共享内存,要在线程之间进行通信。,Java,编程语言和标准库中有许多功能,可以帮助进行通信,保证线程安全性。,33,JAVA,技术特点,动态性,Java,还是个动态语言,这里指的是库。具体地说,库可以不断改变,而程序不需要重新链接。,Sun,公司发布新,Java,版本或其他公司发布新的第三方库之后,库中增加了新内容,但早期的平台中立字节码仍然可以工作。只要库中使用的部分没有删除,程序就可以使用,即使库中增加了新内容。前面曾介绍过,,Java,优先采用接口而不是类,从而也保证了这种动态性。,34,谢谢大家,35,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!