Java的语言特性.pdf_第1页
Java的语言特性.pdf_第2页
Java的语言特性.pdf_第3页
Java的语言特性.pdf_第4页
Java的语言特性.pdf_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

千锋教育 精品课程 全程面授 千锋教育-中国 IT 职业教育领先品牌 Java 的语言特性 Java 之所以被开发,是要达到以下五个目的: 应当使用面向对象程序设计方法学 应当允许同一程序在不同的计算机平台执行 应当包括内建的对计算机网络的支持 应当被设计成安全地执行远端代码 应当易于使用,并借鉴以前那些面向对象语言(如 C+)的长处。 Java 技术主要分成几个部分:Java 语言、Java 运行环境、类库。一般情况 下说 Java 时并不区分指的是哪个部分。 千锋教育 精品课程 全程面授 千锋教育-中国 IT 职业教育领先品牌 Java 在 1.5 版本时, 做了重大改变, 太阳公司并 1.5 版本重命名为 Java 5.0。 面向对象 Java 的特点之一就是面向对象, 是程序设计方法的一种。“面向对象程序 设计语言” 的核心之一就是开发者在设计软件的时候可以使用自定义的类型和关 联操作。代码和数据的实际集合体叫做“对 象”。一个对象可以想象成绑定了 很多“行为(代码)”和“状态(数据)”的物体。对于数据结构的改变需要和 代码进行通信然后操作,反之亦然。面向对象设计 让大型软件工程的计划和设 计变得更容易管理,能增强工程的健康度,减少失败工程的数量。 跨平台性 Java 语言的第二个特性就是跨平台性,也就是说使用 Java 语言编写的程序 可以在编译后不用经过任何更改,就能在任何硬件设备条件下运行。这个特性经 常被称为“一次编译,到处运行”。 执行 Java 应用程序必须安装 Java Runtime Environment(JRE),JRE 内 部有一个Java虚拟机 (Java Virtual Machine, JVM) 以及一些标准的类库 (Class Library)。通过 JVM 才能在电脑系统执行 Java 应用程序(Java Application) , 这与.Net Framework 的情况一样,所以电脑上没有安装 JVM,那么这些程序 将不能够执行。 千锋教育 精品课程 全程面授 千锋教育-中国 IT 职业教育领先品牌 实现跨平台性的方法是大多数编译器在进行 Java 语言程序的编码时候会生 成一个用字节码写成的“半成品”,这个“半成品”会在 Java 虚拟机(解释层) 的帮助下运行,虚拟机会把它转换成当前所处硬件平台的原始代码。之后,Java 虚拟机会打开标准库,进行数据(图片、线程和网络)的访问工作。主要注意的 是,尽管已经存在一个进行代码翻译的解释层,有些时候 Java 的字节码代码还 是会被 JIT 编译器进行二次编译。 有些编译器,比如 GCJ,可以自动生成原始代码而不需要解释层。但是这些 编译器所生成的代码只能应用于特定平台。 并且GCJ目前只支持部分的Java API。 对于 Java 的许可是“全兼容的”,导致了微软和升阳关于微软的程序不支 持 RMI 和 JNI 接口、并且增加特性为己所用的法律争端。升阳最终赢得了官司, 获得了大约两千万美元的赔偿,法院强制要求微软执行升阳公司关于 Java 的许 可要求。作为回应,微软不再在 Windows 系统中捆绑 Java,最新的 Windows 版本, Windows Vista 和 Internet Explorer 7.0 版本也不再提供对于 Java 应用 程序和控件的支持。但是升阳公司和其他使用 Java 运行时系统的公司在 Windows 操作系统下对用户提供无偿的第三方插件和程序支持。 Java 语言使用解释层最初是为了轻巧性。所以这些程序的运行效率比 C 语 言和 C+要低很多,用户也对此颇有微词。很多最近的调查显示 Java 的程序运 行速度比几年前要高出许多,有些同样功能的程序的效率甚至超过了 C+和 C 语言编写的程序来源请求。 千锋教育 精品课程 全程面授 千锋教育-中国 IT 职业教育领先品牌 Java 语言在最开始应用的时候是没有解释层的,所有需要编译的代码都直 接转换成机器的原始代码。这样做的后果就是获得了最佳的性能,但是程序臃肿 异常。从 JIT 技术开始,Java 的程序都经过一次转换之后才变成机器码。很多老 牌的第三方虚拟机都使用一种叫做“动态编译”的技术,也就是说虚拟机实时监 测和分析程序的运行行为,同时选择性地对程序所需要的部分进行编译和优化。 所有这些技术都改善了代码的运行速度,但是又不会让程序的体积变得失常。 程序的轻便性事实上是软件编写很难达到的一个目标,Java 虽然成功地实 现了“一次编译,到处运行”,但是由于平台和平台之间的差异,所编写的程序 在转换代码的时候难免会出现微小的、不可察觉的错误和意外。有些程序员对此 非常头疼, 他们嘲笑 Java 的程序不是 “一次编译, 到处运行” , 而是 “一次编 译, 到处调试”。以 Java AWT 为例,早期 Java AWT 内提供的按钮、文字区等均 是以电脑系统所默认的样式而显示。这令 Java 程序在有些没有提供图案的电脑 系统产生错误(在 Microsoft Windows 设有窗口管理器,在一些 Linux distribution 则没有)。后来 SUN 公司针对 Java AWT 一些问题而推出 Java Swing。 平台无关性让 Java 在服务器端软件领域非常成功。很多服务器端软件都使 用 Java 或相关技术建立。 自动垃圾回收(Garbage Collection) 千锋教育 精品课程 全程面授 千锋教育-中国 IT 职业教育领先品牌 C+语言被用户诟病的原因之一是大多数 C+编译器不支持垃圾收集机制。 通常使用 C+编程的时候,程序员于程序中初始化对象时,会在主机内存堆栈 上分配一块内存与地址,当不需要此对象时,进行析构或者删除的时候再释放分 配的内存地址。如果对象是在堆栈上分配的,而程序员又忘记进行删除,那么就 会造成内存泄漏(Memory Leak)。长此以往,程序运行的时候可能会生成很 多不清除的垃圾,浪费了不必要的内存空间。而且如果同一内存地址被删除两次 的话,程序会变得不稳定,甚 至崩溃。因此有经验的 C+程序员都会在删除之 后将指针重置为 NULL,然后在删除之前先判断指针是否为 NULL。 C+中也可以使用“智能指针”(Smart Pointer)或者使用 C+托管扩 展编译器的方法来实现自动化内存释放,智能指针可以在标准类库中 找到,而 C+托管扩展被微软的 Visual C+ 7.0 及以上版本所支持。智能指针的优点是 不需引入缓慢的垃圾收集机制,而且可以不考虑线程安全的问题,但是缺点是如 果不善使用智能指针的话,性能有可能 不如垃圾收集机制,而且不断地分配和 释放内存可能造成内存碎片,需要手动对堆进行压缩。除此之外,由于智能指针 是一个基于模板的功能,所以没有经验的程序 员在需要使用多态特性进行自动 清理时也可能束手无策。 Java 语言则不同,上述的情况被自动垃圾收集功能自动处理。对象的创建 和放置都是在内存堆栈上面进行的。当一个对象没有任何引用的时候,Java 的 自动垃圾收集机制就发挥作用,自动删除这个对象所占用的空间,释放内存以避 免内存泄漏。 千锋教育 精品课程 全程面授 千锋教育-中国 IT 职业教育领先品牌 注意程序员不需要修改 finalize 方法,自动垃圾收集也会发生作用。但是内 存泄漏并不是就此避免了, 当程序员疏忽大意地忘记解除一个对象不应该有的引 用时,内存泄漏仍然不可避免。 不同厂商、不同版本的 JVM 中的内存垃圾回收机制并不完全一样,通常越 新版本的内存回收机制越快,IBM、BEA、SUN 等等开发 JVM 的公司都曾宣称 过自己制造出了世界上最快的 JVM来源请求,JVM 性能的世界纪录也在不断 的被打破并提高。 如果你真的想学好 Java,找一家靠谱的培训机构能让你的学习过程事半功 倍。 “年度最受信赖职业教育品牌”千锋教育,一直秉承“用良心做教育”的理 念,同期在校学员 5000 余人,合作院校超 500 所,合作企业超 10000 家。全 国有十三个校区。 数十位总监级专家讲师全职授课, 200 余位业内强师全程面授。 千锋教育 精品课程 全程面授 千锋教育-中国 IT 职业教育领先品牌 “中国教育集团领先品牌”千锋教育,关注学员和企业的双向需求,每年为 企业输出 20000+计算机精英, 毕业学员占据全国移动互联网培训人才一半以上 的份额。毕业学员平均薪资也是全行业最高。 “年度最具影响力 IT 教育机构”千锋教育 Java 课程的教学老师,全部来自 央企及上市公司,平均从业经验 5 年以上。而且千锋教育的老师实行淘汰制,学 生进行匿名投票。留下来的都是经过学生投票检验过的名师。 千锋教育的 Java 课程采用实战教学和分阶教学模式。课程内容紧贴名企需 求,以实战传授理论,千锋教育力求将学员打造成具备完美职场竞争力的精英。 千锋教育也是学员项目敢上线的唯一机构。 四个阶段的课程:第一阶段为 Java 基础、第二阶段为 JavaWeb、第三阶段 为 Java 框架、第四阶段为 Java+云数据。课程大纲详细到每节内容,让学员放 心入学。从基础到面试培训,一步步为千锋学子铺就前往高薪职场的就业之路 阶段检测不合格的会要求重新学习当前阶段的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论