java期末知识点.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java期末知识点

1·继承(Inheritance):在既有的class的基础上,使用extends关键字,构造出新的class。(可以理解为把parent class作为成员“放”入了新class) 2Thinking in Java learning notes 着Java程序的执行速率会有不一致的现象(因此无法在极其重视程序执行速率的场合,此类程序通常称为即时(real time)程序——虽然并非所有的real time 程序设计问题都如此严峻)。 异常处理:面对错误的发生 错误处理始终是程序语言最困难的问题之一。由于良好的错误处理系统很难设计,导致许多程序语言干错直接略去此议题,直接留给程序库设计者。当然,这样做十分依赖程序员自身的警觉性,而非语言本身的法制性。如果程序员不够警觉,则这些问题很有可能被忽略。 “异常处理机制”将错误处理直接内嵌于程序语言中,有时甚至内嵌于OS中,所谓exception是一种对象,可在错误发生点被throw,并在适当的处理程序中被catch,介意处理特定类型的错误。当错误发生时,已成处理机制会采取一条截然不同的执行路径。因此,它不会干扰程序代码的正常执行,也使代码的撰写更加单纯。 Java的异常处理机制在众多程序语言中格外引人注目,因为Java一开始就将异常处理机制内嵌进来,强迫你使用。如果没有撰写适当的处理异常代码,便会发生编译错误。 多线程 程序设计有一个基础的概念,就是必须能够同时处理多个task。 处理此问题的办法: ·中断服务常式(interrupt service routine):通过硬件触发,暂停主进程执行。(难度高,不具可携性) ·多线程(multithreading):将问题切割为多个可独立执行的片段,让程序更具反应力,这些片段即所谓的线程。 通常,线程只是一种用来分配单一处理器执行时间的机制。但如果OS支持多处理器的话,不同的线程可以被指派到不同的处理器进行,真正做并行(parallel)。在程序语言这个层次上提供多线程,所能达到的便利之一便是,让程序设计者不需考虑及其上究竟有多少个处理器,把程序在逻辑上划分为多个线程。当然,如果有多个CPU,不需特别的调整,程序就能执行的更快一些。 在发生资源共享时,会出现隐约的问题,则需要锁的机制来解决。 Java在程序语言中内置了线程功能,让这一个复杂问题变得单纯。一个线程以一个对象表示。同时也提供邮箱的资源锁定功能,用来锁定任何对性所用的内存,使同一时间内一个线程“独占”一个对象。(可使用关键字synchronized实现) 现在,想象你正在位于某个函数之内,你想取得当前对象的reference。由于该reference是由编译器偷偷传入,所以并不存在其识别名称。为此,关键字this诞生。这个关键字仅用于函数之内,能取得“唤起此函数”的那个对象之reference。你可以采用你面对任何object reference一样的处理方式来处理这个this。你可以: ·在构造函数中使用this ·在成员方法中使用this ·在数据成员上使用this static的含义(P145) static函数即是指:对于这个函数,没有所谓的this,你无法在static函数中直接(传入一个对象的reference给静态函数间接调用也可,但不如non‐static来的方便)调用non‐static函数(反之可行)。这很像C中的全局函数,而Java中没有全局函数,你只能通过将static函数置于class之中,以提供对其他static函数和static数据成员的访问,实现类似于C的全局函数。 当然,在你的程序中出现static函数对于解决某些问题是高效的,但是如果你的程序出现了大量的static函数,也许你的思想已经和OO思想背道而驰,你这时就应该考虑你的设计了。 清理(cleanup)、终结(finalization)与GC(P146) Java提供的GC会在程序运行时回收那些不再使用的对象内存空间,但是如果你的对象是以某种特殊(不是用new产生对象,而是使用Java native interface,JNI调用其他语言函数(如C中的malloc()函数族系))的方式产生对象,则GC就不知道如何释放这个“特殊”内存。为了因应这种情况,Java提供一个finalize()函数,你可以为你的class定义此函数,当GC打算开始释放你的对象所占用的内存空间时,会先调用其finalize(),并在下一次GC回收动作发生时才回收该对象所占用的内存。但是,你必须注意以下几点: ·垃圾回收和C++中的析构函数(destruction)不等价:即,在你永远不需要某个对象前,如果某些动作要执行,你必须撰写一个函数来执行清理动作。而

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档