已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
透视JAVA 深圳市计算机行业协会李红蕾2006年12月26日 JAVA简史 Sun的公司 PatrickHaughton和JamesGosling 一个全能的计算机奇才 带领着Sun的一个工程师小组 着手设计能够用于像有限电视转换盒一类的消费设备的小型计算机语言 由于这些设备没有很强的处理能力和太多内存 所以这个语言必须非常小并能够生成非常紧凑的代码 另外 因为不同的厂商可能选择不同的CUP 所以这个语言不能够限定在一个单一的体系结构下 这个项目的名称是 Green JAVA简史 对代码短小 紧凑 与平台无关的要求使得开发团队找出了很早以前的一个模型 一些Pascal实现曾经在早期PC上试过这个模型 以Pascal的发明者NucleusWirth为先驱 而UCSDPascal对此做的商业实现是要设计一种能够为假想机器生成中间代码的可移植的语言 假想机器被称为虚拟机 Java虚拟机 JVM 也由此而来 JAVA简史 不过 Sun的开发人员大都具有深厚的Unix背景 因此他们的语言基于C 而非Pascal 尤其是 他们把语言设计成面向对象的 而不是面向过程的 但正如Gosling在采访中说 毕竟 语言只是工具 而非目标 Gosling把他的语言称为 Oak Sun的人后来才发现Oak已经是一门存在着的计算机语言的名字 于是他们又把名字改成了 Java 与爪哇的名字相同 1995年5月23日 Java出现在Sun系统公司的年度SunWorld会议中 作为公司20项公布项目中的第12项 JAVA简史 1997年 Sun公司因为Java的一些不兼容性而起诉Microsoft公司 喀拉喀托火山也开始活跃起来 从此爪哇岛每年要发生大约十次火山爆发 也许这只是一种巧合吧 随着官司越打越大 岛上居民的生活也越来越难过了 雅加达的经济危机 造成苏哈托总统下台 东帝汶提出要求政治自由 SunJava也发生了同样激烈的血战 最终于2001年判决Microsoft公司受罚两千万美元 JAVA简史 下面讲讲Java平台 1995年的Java只是个编程语言 如今则已成为一个平台 Sun在1996年早期发部了Java第一版 人们很快认识到Java1 0并不适合做真正的应用开发 的确 你可以使用Java1 0生成在画布上随便游动文本的applet 但是你甚至无法用Java1 0进行打印 Java1 0显然太过稚嫩 对黄金时期的到来还无准备 它的后继者 Java1 1填补了最明显的空缺 极大地提高了反射能力并为GUI编程增加了新的事件模型 JAVA简史 1998年JavaOne会议的最大新闻是Java1 2版的即将发布 该版本用老练的 可伸缩的版本取代了早期版本中玩具样的GUI和图形工具箱 从而比其先前版本更接近 一次编写 到处运行 的承诺 1998年12月Java1 2版本发布的3天后 Sun的市场部门把名字改为更响亮的 Java2标准版软件开发工具箱1 2版 随后出现的1 3版 1 4版都是在最初的Java2版本基础上的增量改进 增加了一些新特性 提升了性能 当然也修正了一些bug Java标准版API的发展版本类和接口的数目方法和字段数目1 021221251 150454781 21781209351 32130239011 43020 135个包 321381 5 5 0 4000以上 166个包 JAVA的优点 Java的一个显著优点就是运行时环境提供了平台无关性 你可以在Windows Solaris Linux或者其他操作系统上使用完全一样的代码 这点对于在各种不同平台上运行从Internet上下载的程序来说很有必要 JAVA的优点 Java的另个优点在于它具有和C 类似的语法 这使得C和C 程序员可以很容易地学习Java Java还是完全面向对象的 甚至比C 还要面向对象 除了数字之类的几个基本类型 Java中的一切都是对象 JAVA的优点 然而 Java绝不仅仅是某种经过改善的C 方言 很关键的一点在于 用Java开发没有bug的代码比用C 要简单的多 原因何在呢 Java的设计者仔细研究了是什么使得C 代码这么容易出现bug 他们为Java增加了一些特性 来消除出现常见bug的可能性 JAVA的优点 1 Java设计者取消了手工内存分配和回收 在Java中 内存是自动进行垃圾收集的 你永远不必担心会出现内存崩溃的现象 2 他们引用了真正的数组而且取消了指针算法 你永远不必担心由于指针操作时出现的偏移错误而重写内存区域 JAVA的优点 3 他们消除了在条件性语句中弄混赋值和相等测试的可能性 比如 你根本不能编译通过if n 3 这样的语句 VB PB程序员可能注意不到这种问题 但是请相信 在C C 代码中 这种语句是导致常见的错误根源 JAVA的优点 4 他们消除了多重继承 替换为 接口 interface 接口能够实现多重继承的大部分功能 却没有管理多重继承层次关系带来的复杂性 JAVA技术特点简单性 在一次C 会议上 Sun公司创始人之一BillJoy 现为首席科学家 指出 C 太复杂 我要的是C Java正是满足了这个要求 Java加进了自动内存回收之类的新任务 减去了C 中费解而不常用的方面 如运算符重载 JAVA技术特点简单性 Java简单性的另一个方面是Java中没有任何真正的新东西 如果你看看Java特性集和计算历史 则可以发现 一切都是借用现成的东西 JAVA技术特点简单性 1 类来自C 和Smalltalk 但Java只限于单实现继承 2 接口来自Objective C 向Java提供多接口继承 3 包来自Modula 在Java中增加了层次试名字空间和逻辑开发单元 4 并发性来自Mesa Java内置多线程支持 JAVA技术特点简单性 5 异常处理来自Modula 3 在Java方法中增加了抛出异常的声明 6 动态链接与内存回收来自Lisp Java可以在需要时装入类 不需要时将其释放 随着新特性不断加进Java中 这些特性也是从摸索与实践中来的 例如 在Java1 5中增加参数化类型的支持 JAVA技术特点面向对象 简单来说 面向对象设计是一种把重点放在数据 等于对象 和对象接口的编程技术 用问题空间中的元素与对象描述问题 而不是用计算机中执行的一系列步骤来描述 这样 好的设计就能得到可复用 可扩展和可维护的组件 这些组件相当灵活 可以处理环境的改变 因为这些对象的主要工作就是相互之间来回发送消息 JAVA技术特点面向对象 实际上 JavaAPIs是这些预建组件的集合 称为类库 Java中不需要一切从头开始 也可以从标准库开始 这些标准库随着时间推移不断改变 每个新版本推出更多预建组件 JAVA技术特点分布式 从1982年成立时起 Sun公司的思想一直是 网络就是计算机 Java编程语言要求支持网络和像本地对象一样方便地访问分布式对象 这个目标一开始就已经提出 但Java的功能是不断改变的 JAVA技术特点分布式 最初 Java只能通过HTTP之类的标准TCP IP协议访问分布式对象 而利用最新版的Java平台 则可以通过CORBA CommonObjectRequestBrokerArchitecture 与RMI RemoteMethodInvocation 等协议和最近增加的WebServices像访问同一执行空间的方法一样方便而直接地调用远程机器上的方法 对每个协议 系统自动处理所有转换与传输 JAVA技术特点解释性 Java程序是解释性的 不是编译成自然执行码 而是转换成平台中立的字节码 这些字节码可以传输到任何具有Java运行环境 JRE JavaRuntimeEnvironment 的平台 其中包括Java虚拟机 JVM JavaVirtualMachine 从而在执行时不需要重新编译或重新链接 JAVA技术特点解释性 也许你以为这个过程会使速度很慢 但稍后 高性能 一节将会介绍 情况并非如此 平台中立字节码实际上还包含其他信息 可以在运行时根据编译时无法进行的决策进行执行优化 JAVA技术特点健壮性 健壮性反映程序的可靠性 Java的几个内置特性使程序的可靠性得到改进 1 Java是强类型的语言 编译器和类装入器保证所有方法调用的正确性 防止隐式类型失配和版本不兼容性 JAVA技术特点健壮性 2 Java没有指针 不能引用内存指针 搞乱内存或越过数组边界 Java用引用而不用指针 不能通过删除引用直接操纵内存空间 3 Java进行自动内存回收 编程人员无法意外忘记释放内存 不需要判断何处需要释放内存 4 Java鼓励用接口而不用类 接口定义一组行为 而类实现这些行为 我们传递的是接口而不是类 从而隐藏这些实现细节 JAVA技术特点安全性 Java被设计为用于网络 分布式环境 为了达到这个目标 在安全方面投入了很大精力 用Java可以构建防病毒和防篡改的系统 Java安全机制禁止Java程序进行一些操作 下面列出被限制的一些操作 JAVA技术特点安全性 1 禁止运行时堆栈溢出 如臭名昭著的Internet蠕虫所做的那样 2 禁止在自己的处理空间外破坏内存 3 禁止通过安全控制类转载器来读写本地文件 就像Web浏览器禁止此类访问 JAVA技术特点体系结构中立 体系结构中立性指Java的平台中立字节码 Java程序不是编译成平台特定的二进制码 而是可以在任何地方执行 不需要重新编译与链接 如果公司开发新硬件 则不必放弃原有的软件投资 而只要在新平台中放上Java运行环境 如果新公司开发全新的硬件与操作系统 则不必从没有软件的产品上从零开始 只要放上Java运行环境 新设计的平台就可以运行所有现有Java程序 JAVA技术特点可移植性 Java的格言是一次编写 到处运行 WORA WriteOnce RunAnywhere Java的目标是在任何体系结构中运行同一个程序 这种可移植性不仅利用了平台中立字节码 而且在JavaLanguageSpecification中定义了所有数字表示的长度 字节顺序和操纵 而不是利用实现特定细节 如int多大 JAVA技术特点高性能 也许你认为 解释性 与 高性能 是个矛盾 但平台中立字节码可以在运行时转换成CPU特定机器码 和自然编译C C 代码以同样的速度执行 Java带有两个运行转换工具 可以自动完成这个工作 第一代工具是即时 JIT Just In Time 编译器 第二代工具是HotSpot 实际上 HotSpot和JIT编译器的作用是相同的 运行时转换成自然指令集 但是 HotSpot还监视代码执行 对经常执行的块进行速度优化 而不是盲目优化 JAVA技术特点多线程 可以把线程看成执行情景 例如 联机浏览时 浏览器在后台下载图形的同时显示新的Web页面 每个任务可以在不同线程中执行 程序同时运行多个任务或线程时 成为多线程 多线程程序共享内存 要在线程之间进行通信 Java编程语言和标准库中有许多功能 可以帮助进行通信 保证线程安全性 JAVA技术特点动态性 Java还是个动态语言 这里指的是库 具体地说 库可以不断改变 而程序不需要重新链接 Sun公司发布新Java版本或其他公司发布新的第三方库之后 库中增加了新内容 但早期的平台中立字节码仍然可以工作 只要库中使用的部分没有删除 程序就可以使用 即使库中增加了新内容 前面曾介绍过 Java优先采用接口而不是类 从而也保证了这种动态性 J2ee概述 J2ee概述 了解基于B S S的多层Web体系架构中各层的基本功能理解J2EE技术的整体框架以及同其他应用的集成技术理解Web容器和应用服务器容器在多层体系中的作用及其相互联系详细掌握J2EE框架中包含的各项技术的具体用法及相应的编程技巧掌握J2EE应用的集成技术掌握J2EE应用的部署技术培养学生设计和开发大型Web应用系统的能力 J2ee架构图 客户层 中间层和数据层 J2ee框架 J2ee容器及组件 MVC和ORM StrutsSpringJSFWebworkHibernate与Ejb3 0 J2ee服务器 TomcatJbossWeblogicWebsphere XML技术与应用 命
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年司法行政系统公务员招录法律真题试题及完整答案
- 2026年齐齐哈尔依安县营商环境建设监督局公开选调事业单位工作人员笔试试题及答案解析
- 广西桂林市(2025年)省直机关公开遴选公务员笔试题及答案解析
- 2026年公安机关人民警察执法资格等级考试题库含完整答案
- 2025年下半年辽宁鞍山全国英语等级考试(PETS)二级复习试题库
- 2026浅析全球光伏行业市场深度研究及竞争格局与发展趋势分析报告
- 2026生物制药中间体市场供给调研及投资结构评估
- 2026生产制造行业智能制造及自动化趋势报告
- 2026中国智慧城市环境监测项目市场研究及产业链竞争格局与投资机会综合报告
- 2026中国卫卫生生材行业市场前景供需分析投资评估发展策略研究报告规划
- 2026 第六届“四川工匠杯”职业技能大赛 餐厅服务赛项 理论考试参考题库 含答案
- 中原银行校园招聘笔试真题
- 化工企业承压类特种设备完整性管理指南(试行)
- 河北省村务监督制度
- 代理商kpi考核制度
- 2025年学校管理岗笔试真题题库及答案
- 胃癌患者HER2阳性双靶联合(曲妥珠单抗+帕妥珠单抗)治疗方案
- 医院检验科设备更新计划方案
- 高校招标采购年终总结(3篇)
- 盲人推拿培训教程课件
- 眼镜从业人员培训制度
评论
0/150
提交评论