收藏 分销(赏)

深圳市计算机行业协会.pptx

上传人:天**** 文档编号:4212208 上传时间:2024-08-25 格式:PPTX 页数:35 大小:110.73KB
下载 相关 举报
深圳市计算机行业协会.pptx_第1页
第1页 / 共35页
深圳市计算机行业协会.pptx_第2页
第2页 / 共35页
深圳市计算机行业协会.pptx_第3页
第3页 / 共35页
深圳市计算机行业协会.pptx_第4页
第4页 / 共35页
深圳市计算机行业协会.pptx_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、深圳市计算机行业协会l2005年6月23日JAVA简史lSun的公司,Patrick Haughton和James Gosling(一个全能的计算机奇才)带领着Sun的一个工程师小组,着手设计能够用于像有限电视转换盒一类的消费设备的小型计算机语言。由于这些设备没有很强的处理能力和太多内存,所以这个语言必须非常小并能够生成非常紧凑的代码。另外,因为不同的厂商可能选折不同的CUP,所以这个语言不能够限定在一个单一的体系结构下。这个项目的名称是“Green”.JAVA简史l对代码短小,紧凑,与平台无关的要求使得开发团队找出了很早以前的一个模型。一些Pascal实现曾经在早期PC上试过这个模型,以Pa

2、scal的发明者Nucleus Wirth为先驱,而UCSD Pascal对此做的商业实现是要设计一种能够为假想机器生成中间代码的可移植的语言(假想机器被称为虚拟机,Java虚拟机(JVM)也由此而来)。JAVA简史l对代码短小,紧凑,与平台无关的要求使得开发团队找出了很早以前的一个模型。一些Pascal实现曾经在早期PC上试过这个模型,以Pascal的发明者Nucleus Wirth为先驱,而UCSD Pascal对此做的商业实现是要设计一种能够为假想机器生成中间代码的可移植的语言(假想机器被称为虚拟机,Java虚拟机(JVM)也由此而来)。JAVA简史l不过,Sun的开发人员大都具有深厚的

3、Unix背景,因此他们的语言基于C+,而非Pascal。尤其是,他们把语言设计成面向对象的,而不是面向过程的。但正如Gosling在采访中说:“毕竟,语言只是工具,而非目标。”Gosling把他的语言称为“Oak”.Sun的人后来才发现Oak已经是一门存在着的计算机语言的名字,于是他们又把名字改成了“Java”.与爪哇的名字相同。1995年5月23日,Java出现在Sun系统公司的年度SunWorld会议中,作为公司20项公布项目中的第12项。JAVA简史l1997年,Sun公司因为Java的一些不兼容性而起诉Microsoft公司,喀拉喀托火山也开始活跃起来(从此爪哇岛每年要发生大约十次火山

4、爆发,也许这只是一种巧合吧)。随着官司越打越大,岛上居民的生活也越来越难过了,雅加达的经济危机,造成苏哈托总统下台,东帝汶提出要求政治自由。Sun Java也发生了同样激烈的血战,最终于2001年判决Microsoft公司受罚两千万美元。JAVA简史l下面讲讲Java平台。1995年的Java只是个编程语言,如今则已成为一个平台。Sun在1996年早期发部了Java第一版。人们很快认识到Java 1.0并不适合做真正的应用开发。的确,你可以使用Java 1.0生成在画布上随便游动文本的applet。但是你甚至无法用Java 1.0进行打印。Java1.0显然太过稚嫩,对黄金时期的到来还无准备。

5、它的后继者,Java1.1填补了最明显的空缺,极大地提高了反射能力并为GUI编程增加了新的事件模型。JAVA简史l1998年JavaOne会议的最大新闻是 Java 1.2版的即将发布,该版本用老练的,可伸缩的版本取代了早期版本中玩具样的GUI和图形工具箱,从而比其先前版本更接近“一次编写,到处运行”的承诺。1998年12月Java1.2 版本发布的3天后,Sun的市场部门把名字改为更响亮的“Java 2标准版软件开发工具箱1.2版”。随后出现的1.3版,1.4版都是在最初的Java 2版本基础上的增量改进,增加了一些新特性,提升了性能,当然也修正了一些bug Java标准版API的发展 版本

6、 类和接口的数目 方法和字段数目 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个包)JAVA的优点lJava的一个显著优点就是运行时环境提供了平台无关性:你可以在Windows,Solaris,Linux或者其他操作系统上使用完全一样的代码。这点对于在各种不同平台上运行从Internet上下载的程序来说很有必要。JAVA的优点lJava的另个优点在于它具有和C+类似的语法。这使得C和C+程序员可以很容易地学习Java。lJava还是完全面向对象的-甚

7、至比C+还要面向对象。除了数字之类的几个基本类型,Java中的一切都是对象。JAVA的优点l然而,Java绝不仅仅是某种经过改善的C+方言。很关键的一点在于:用Java开发没有bug的代码比用C+要简单的多。l原因何在呢?Java的设计者仔细研究了是什么使得C+代码这么容易出现bug。他们为Java增加了一些特性,来消除出现常见bug的可能性:JAVA的优点l1,Java设计者取消了手工内存分配和回收。在Java中,内存是自动进行垃圾收集的。你永远不必担心会出现内存崩溃的现象。l2,他们引用了真正的数组而且取消了指针算法。你永远不必担心由于指针操作时出现的偏移错误而重写内存区域。JAVA的优点

8、l3,他们消除了在条件性语句中弄混赋值和相等测试的可能性。比如,你根本不能编译通过if(n=3)这样的语句。(VB,PB程序员可能注意不到这种问题,但是请相信,在C/C+代码中,这种语句是导致常见的错误根源。)JAVA的优点l4,他们消除了多重继承,替换为“接口”(interface)。接口能够实现多重继承的大部分功能,却没有管理多重继承层次关系带来的复杂性。JAVA技术特点简单性 在一次C+会议上,Sun公司创始人之一Bill Joy(现为首席科学家)指出,“C+太复杂,我要的是C+-”。Java正是满足了这个要求。Java加进了自动内存回收之类的新任务(+),减去了C+中费解而不常用的方面

9、,如运算符重载(-)。JAVA技术特点简单性lJava简单性的另一个方面是Java中没有任何真正的新东西。如果你看看Java特性集和计算历史,则可以发现,一切都是借用现成的东西。JAVA技术特点简单性l1,类来自C+和Smalltalk,但Java只限于单实现继承。l2,接口来自Objective-C,向Java提供多接口继承。l3,包来自Modula,在Java中增加了层次试名字空间和逻辑开发单元。l4,并发性来自Mesa,Java内置多线程支持。JAVA技术特点简单性l5,异常处理来自Modula-3,在Java方法中增加了抛出异常的声明。l6,动态链接与内存回收来自Lisp,Java可以

10、在需要时装入类,不需要时将其释放。随着新特性不断加进Java中,这些特性也是从摸索与实践中来的。例如:在Java 1.5中增加参数化类型的支持。JAVA技术特点面向对象l简单来说,面向对象设计是一种把重点放在数据(等于对象)和对象接口的编程技术。用问题空间中的元素与对象描述问题,而不是用计算机中执行的一系列步骤来描述。这样,好的设计就能得到可复用,可扩展和可维护的组件。这些组件相当灵活,可以处理环境的改变,因为这些对象的主要工作就是相互之间来回发送消息。JAVA技术特点面向对象l实际上,Java APIs是这些预建组件的集合,称为类库。Java中不需要一切从头开始,也可以从标准库开始。这些标准

11、库随着时间推移不断改变,每个新版本推出更多预建组件。JAVA技术特点分布式l从1982年成立时起,Sun公司的思想一直是“网络就是计算机”,Java编程语言要求支持网络和像本地对象一样方便地访问分布式对象。这个目标一开始就已经提出,但Java的功能是不断改变的。JAVA技术特点分布式 最初,Java只能通过HTTP之类的标准TCP/IP协议访问分布式对象。而利用最新版的Java平台,则可以通过CORBA(Common Object Request Broker Architecture)与RMI(Remote Method Invocation)等协议和最近增加的Web Services像访问

12、同一执行空间的方法一样方便而直接地调用远程机器上的方法。对每个协议,系统自动处理所有转换与传输。JAVA技术特点解释性 Java程序是解释性的,不是编译成自然执行码,而是转换成平台中立的字节码。这些字节码可以传输到任何具有Java运行环境(JRE,Java Runtime Environment)的平台,其中包括Java虚拟机(JVM,Java Virtual Machine),从而在执行时不需要重新编译或重新链接。JAVA技术特点解释性 也许你以为这个过程会使速度很慢,但稍后“高性能”一节将会介绍,情况并非如此。平台中立字节码实际上还包含其他信息,可以在运行时根据编译时无法进行的决策进行执行

13、优化。JAVA技术特点健壮性 健壮性反映程序的可靠性。Java的几个内置特性使程序的可靠性得到改进:1,Java是强类型的语言。编译器和类装入器保证所有方法调用的正确性,防止隐式类型失配和版本不兼容性。JAVA技术特点健壮性2,Java没有指针,不能引用内存指针,搞乱内存或越过数组边界。Java用引用而不用指针,不能通过删除引用直接操纵内存空间。3,Java进行自动内存回收,编程人员无法意外忘记释放内存,不需要判断何处需要释放内存。4,Java鼓励用接口而不用类。接口定义一组行为,而类实现这些行为。我们传递的是接口而不是类,从而隐藏这些实现细节JAVA技术特点安全性 Java被设计为用于网络/

14、分布式环境。为了达到这个目标,在安全方面投入了很大精力。用Java可以构建防病毒和防篡改的系统。Java安全机制禁止Java程序进行一些操作。下面列出被限制的一些操作:JAVA技术特点安全性 1,禁止运行时堆栈溢出,如臭名昭著的 Internet蠕虫所做的那样。2,禁止在自己的处理空间外破坏内存。3,禁止通过安全控制类转载器来读写本地文件,就像Web浏览器禁止此类访问。JAVA技术特点体系结构中立l体系结构中立性指Java的平台中立字节码。Java程序不是编译成平台特定的二进制码,而是可以在任何地方执行,不需要重新编译与链接。如果公司开发新硬件,则不必放弃原有的软件投资,而只要在新平台中放上J

15、ava运行环境。如果新公司开发全新的硬件与操作系统,则不必从没有软件的产品上从零开始,只要放上Java运行环境,新设计的平台就可以运行所有现有Java程序。JAVA技术特点可移植性lJava的格言是一次编写,到处运行(WORA,Write Once,Run Anywhere)。Java的目标是在任何体系结构中运行同一个程序。这种可移植性不仅利用了平台中立字节码,而且在Java Language Specification中定义了所有数字表示的长度,字节顺序和操纵,而不是利用实现特定细节(如 int 多大)。JAVA技术特点高性能 也许你认为“解释性”与“高性能”是个矛盾,但平台中立字节码可以在

16、运行时转换成CPU特定机器码,和自然编译C/C+代码以同样的速度执行。Java带有两个运行转换工具,可以自动完成这个工作:第一代工具是即时(JIT,Just-In-Time)编译器;第二代工具是HotSpot。实际上,HotSpot和JIT编译器的作用是相同的;运行时转换成自然指令集。但是,HotSpot还监视代码执行,对经常执行的块进行速度优化,而不是盲目优化。JAVA技术特点多线程 可以把线程看成执行情景。例如,联机浏览时,浏览器在后台下载图形的同时显示新的Web页面,每个任务可以在不同线程中执行,程序同时运行多个任务或线程时,成为多线程。多线程程序共享内存,要在线程之间进行通信。Java编程语言和标准库中有许多功能,可以帮助进行通信,保证线程安全性。JAVA技术特点动态性lJava 还是个动态语言,这里指的是库。具体地说,库可以不断改变,而程序不需要重新链接。Sun公司发布新Java版本或其他公司发布新的第三方库之后,库中增加了新内容,但早期的平台中立字节码仍然可以工作。只要库中使用的部分没有删除,程序就可以使用,即使库中增加了新内容。前面曾介绍过,Java优先采用接口而不是类,从而也保证了这种动态性。谢谢大家

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服