java期末知识点

java期末知识点

ID:40566199

大小:34.50 KB

页数:3页

时间:2019-08-04

java期末知识点_第1页
java期末知识点_第2页
java期末知识点_第3页
资源描述:

《java期末知识点》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1·继承(Inheritance):在既有的class的基础上,使用extends关键字,构造出新的class。(可以理解为把parentclass作为成员“放”入了新class)2ThinkinginJavalearningnotes着Java程序的执行速率会有不一致的现象(因此无法在极其重视程序执行速率的场合,此类程序通常称为即时(realtime)程序——虽然并非所有的realtime程序设计问题都如此严峻)。异常处理:面对错误的发生错误处理始终是程序语言最困难的问题之一。由于良好的错误处理系统很难设计,导致许多程序

2、语言干错直接略去此议题,直接留给程序库设计者。当然,这样做十分依赖程序员自身的警觉性,而非语言本身的法制性。如果程序员不够警觉,则这些问题很有可能被忽略。“异常处理机制”将错误处理直接内嵌于程序语言中,有时甚至内嵌于OS中,所谓exception是一种对象,可在错误发生点被throw,并在适当的处理程序中被catch,介意处理特定类型的错误。当错误发生时,已成处理机制会采取一条截然不同的执行路径。因此,它不会干扰程序代码的正常执行,也使代码的撰写更加单纯。Java的异常处理机制在众多程序语言中格外引人注目,因为Java一开

3、始就将异常处理机制内嵌进来,强迫你使用。如果没有撰写适当的处理异常代码,便会发生编译错误。多线程程序设计有一个基础的概念,就是必须能够同时处理多个task。处理此问题的办法:·中断服务常式(interruptserviceroutine):通过硬件触发,暂停主进程执行。(难度高,不具可携性)·多线程(multithreading):将问题切割为多个可独立执行的片段,让程序更具反应力,这些片段即所谓的线程。通常,线程只是一种用来分配单一处理器执行时间的机制。但如果OS支持多处理器的话,不同的线程可以被指派到不同的处理器进行,

4、真正做并行(parallel)。在程序语言这个层次上提供多线程,所能达到的便利之一便是,让程序设计者不需考虑及其上究竟有多少个处理器,把程序在逻辑上划分为多个线程。当然,如果有多个CPU,不需特别的调整,程序就能执行的更快一些。在发生资源共享时,会出现隐约的问题,则需要锁的机制来解决。Java在程序语言中内置了线程功能,让这一个复杂问题变得单纯。一个线程以一个对象表示。同时也提供邮箱的资源锁定功能,用来锁定任何对性所用的内存,使同一时间内一个线程“独占”一个对象。(可使用关键字synchronized实现)现在,想象你正在

5、位于某个函数之内,你想取得当前对象的reference。由于该reference是由编译器偷偷传入,所以并不存在其识别名称。为此,关键字this诞生。这个关键字仅用于函数之内,能取得“唤起此函数”的那个对象之reference。你可以采用你面对任何objectreference一样的处理方式来处理这个this。你可以:·在构造函数中使用this·在成员方法中使用this·在数据成员上使用this1.static的含义(P145)static函数即是指:对于这个函数,没有所谓的this,你无法在static函数中直接(传入一

6、个对象的reference给静态函数间接调用也可,但不如non‐static来的方便)调用non‐static函数(反之可行)。这很像C中的全局函数,而Java中没有全局函数,你只能通过将static函数置于class之中,以提供对其他static函数和static数据成员的访问,实现类似于C的全局函数。当然,在你的程序中出现static函数对于解决某些问题是高效的,但是如果你的程序出现了大量的static函数,也许你的思想已经和OO思想背道而驰,你这时就应该考虑你的设计了。清理(cleanup)、终结(finalizat

7、ion)与GC(P146)Java提供的GC会在程序运行时回收那些不再使用的对象内存空间,但是如果你的对象是以某种特殊(不是用new产生对象,而是使用Javanativeinterface,JNI调用其他语言函数(如C中的malloc()函数族系))的方式产生对象,则GC就不知道如何释放这个“特殊”内存。为了因应这种情况,Java提供一个finalize()函数,你可以为你的class定义此函数,当GC打算开始释放你的对象所占用的内存空间时,会先调用其finalize(),并在下一次GC回收动作发生时才回收该对象所占用的内

8、存。但是,你必须注意以下几点:·垃圾回收和C++中的析构函数(destruction)不等价:即,在你永远不需要某个对象前,如果某些动作要执行,你必须撰写一个函数来执行清理动作。而15ThinkinginJavalearningnotes在C++中是通过析构函数的机制来解决的。·你的对象可能不会被回收:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。