网站大量收购独家精品文档,联系QQ:2885784924

java 课程part2.ppt

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

类装载器(Class Loader) 类装载器负责加载(load)类的字节码文件,并完成类的链接和初始化工作 类的加载步骤 把要加载的类名转换为类的字节码文件名,并在环境变量CLASSPATH指定的每个目录搜索该文件 把字节码文件读入缓冲区 将类转换为JVM内部的数据结构 使用校验器检查类的合法性 如果类是第一次被加载,则对类中的静态数据进行初始化 加载类中所引用的其它类 把类中的某些方法编译为本地代码 字节码解释器(Bytecode Interpreter) JVM使用单字节长度的操作码,被称为“字节码” 字节码可以看作是JVM的汇编语言 JVM定义了14类200多个单字节指令 字节码解释器是整个JVM的核心组件,负责解释执行由类装载器加载的字节码文件中的字节码指令集合,并通过Java运行时环境(JRE)由底层的操作系统实现操作 优化字节码解释器 使用汇编语言编写解释器 重组指令流,提高处理器的吞吐量 最大程度的使用高速缓存 最大程度的使用寄存器 安全管理器(Security Manager) 安全管理器根据一定的安全策略(security policy)对JVM中指令的执行进行控制,主要包括那些可能影响下层操作系统的安全性或者完整性的Java服务调用 每个类装载器都与某个安全管理器相关,安全管理器负责保护系统不受由加载器载入系统的类企图执行的违法操作所侵害 默认的类转载器使用信任型安全管理器 垃圾收集器(Garbage Collector) 垃圾收集器用于检测不再使用的对象,并将它们所占用的内存回收 Java语言并不是第一个使用垃圾收集技术的语言,垃圾收集是一种成熟的技术,早期的面向对象语言LISP、SmallTalk等已经提供了垃圾收集机制 理想的垃圾收集应该回收所有形式的垃圾,如网络连接、I/O路径等 JVM中垃圾收集的启动方式 请求式:调用System.gc()方法请求JVM进行垃圾收集 要求式:使用new方法创建对象时,如果内存资源不足,则JVM进行垃圾收集 后台式:通过一个独立的线程检测系统的空闲状态,如果发现系统空闲了多个指令周期,则进行垃圾收集 终结器方法 (finalize) 终结器方法是对垃圾收集的补充,JVM保证在对象回收以前调用对象的finalize()方法 finalize方法的声明形式: protected void finalize() {…} finalize方法的设计缺陷 垃圾收集的不可预期性、对象复活问题 应该尽量避免使用finalize方法,如果必须使用,应使该方法的执行时间尽量短 线程管理(Thread Management) 线程的概念 Java在语言级别提供了对线程的支持,Java语言提供了专门API来启动、停止线程,改变线程的优先级以及处理线程执行过程中发生的中断 线程管理组件中的分派器(Dispatcher)负责控制线程的切换,调度器(Scheduler)负责决定线程的运行 多线程的实现机制 使用内核线程 (Kernel Threads) 使用内核线程的优点 内核线程是由操作系统的内核提供的基本服务。 - 很容易扩展到多个处理器 - 线程在创建它的进程外可见 - JVM可以利用操作系统提供的优秀的调度机制 多线程的实现机制 使用库线程 (Library Threads) Sun的绿色线程库(Greenthreads Library) 使用库线程的优点   如果操作系统不提供内核线程的服务,或者操作系统支持的内核线程不满足JVM的需要,JVM则通过自己提供的线程库来支持多线程 - 线程在不同的平台上具有一致的行为 - 线程的优先级仅在一个进程中有意义 输入/输出(Input/Output) Java提供了两种访问I/O设备的途径: - 直接调用操作系统提供的与I/O相关的库函数 - 通过AWT支持异步的用户界面I/O,通过网络包支持异步的网络I/O 用纯的Java语言不能编写设备驱动程序 图象(Graphics) 抽象窗口工具包 (AWT) AWT的实现机制与不足 更强的图形表现能力Swing 触摸屏界面的支持Truffles Assignment (作业) 1.练习Fibonacci数列的程序,编译、执行后观察结果。 2.仿照Fibonacci数列程序,采用面向对象的思想,编写代码求n!要求输入n的值,求出n!。 3.根据你对虚拟机的理解,谈谈你认为虚拟机最有可能的两种用途,并说明理由。 注意:只交作业2,3即可。 第2部分: Java 程序基础 软件学院 2010 面向对象程序设计(OOP) 问题及解决思路 Java程序的编写 Java源程序编译 Java程序的运行 开发步骤 虚拟机的概念 JVM体系结构 作

文档评论(0)

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

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

1亿VIP精品文档

相关文档