Java 应用与开发 - Java 内存模型与分配机制大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java 应用与开发 Java 内存模型与分配机制 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 30, 2018 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 学习目标 1. 理解 JVM 内存模型,掌握 JVM 内存构成 2 内存模型 Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 ���� Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java Class文件 方法区 Java堆 Java栈 程序计数器 本地方法栈 执行引擎 本地接口 通过全限定名装载 操作系统 操作系统本地库 运行时数据区 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 JVM 内存模型 动画演示 JVM 内存模型 JVM内存模型 Heap Method Area Runtime Constant Pool Thread Thread0 码力 | 44 页 | 818.30 KB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东. . . . 54 5.3.2 初始化块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.3.3 静态导入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.3.4 Singleton 设计模式 . . . 59 6.1.2 JVM 内存模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.2 Java 程序内存运行分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 iii 6.2.1 预备知识和所用讲解程序 . . . . . . . 61 6.2.2 程序调用过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.2.3 Java 程序运行内存分析小结 . . . . . . . . . . . . . . . . . . . . . . 64 6.3 Java 内存管理建议 . . . . . . . . . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
Hello 算法 1.1.0 Java版小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 第 2 章 复杂度分析 17 2.1 算法效率评估 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2 若你是算法“大神”,我们期待收到你的宝贵建议,或者一起参与创作。 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的 图 0‑8 算法学习路线 0.3 小结 ‧ 本书的主要受众是算法初学者。如果你已有一定基础,本书能帮助你系统回顾算法知识,书中源代码也 可作为“刷题工具库”使用。 ‧ 书中内容主要包括复杂度分析、数据结构和算法三部分,涵盖了该领域的大部分主题。 ‧ 对于算法新手,在初学阶段阅读一本入门书至关重要,可以少走许多弯路。 ‧ 书中的动画图解通常用于介绍重点和难点知识。阅读本书时,应给予这些内容更多关注。0 码力 | 378 页 | 18.47 MB | 1 年前3
Hello 算法 1.0.0 Java版小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 第 2 章 复杂度分析 17 2.1 算法效率评估 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2 若你是算法“大神”,我们期待收到你的宝贵建议,或者一起参与创作。 � 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的 图 0‑8 算法学习路线 0.3 小结 ‧ 本书的主要受众是算法初学者。如果你已有一定基础,本书能帮助你系统回顾算法知识,书中源代码也 可作为“刷题工具库”使用。 ‧ 书中内容主要包括复杂度分析、数据结构和算法三部分,涵盖了该领域的大部分主题。 ‧ 对于算法新手,在初学阶段阅读一本入门书至关重要,可以少走许多弯路。 ‧ 书中的动画图解通常用于介绍重点和难点知识。阅读本书时,应给予这些内容更多关注。0 码力 | 376 页 | 17.59 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Java 版小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 第 2 章 复杂度分析 17 2.1 算法效率评估 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2 若你是算法“大神”,我们期待收到你的宝贵建议,或者一起参与创作。 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的 图 0‑8 算法学习路线 0.3 小结 ‧ 本书的主要受众是算法初学者。如果你已有一定基础,本书能帮助你系统回顾算法知识,书中源代码也 可作为“刷题工具库”使用。 ‧ 书中内容主要包括复杂度分析、数据结构和算法三部分,涵盖了该领域的大部分主题。 ‧ 对于算法新手,在初学阶段阅读一本入门书至关重要,可以少走许多弯路。 ‧ 书中的动画图解通常用于介绍重点和难点知识。阅读本书时,应给予这些内容更多关注。0 码力 | 379 页 | 18.48 MB | 10 月前3
Java 应用与开发 - 面向对象编程进阶▶ static 标记的属性或方法由整个类(所有实例)共享,如访 问控制权限允许,可不必创建该类对象而直接用类名加“.” 调用。 ▶ static 成员也称“类成员”或“静态成员”,如“类属 性”、“类变量”、“类方法”和“静态方法”等。 大纲 多态性 方法重载 关键字 static 关键字 final 关键字 static 在 Java 类中声明属性、方法和内部类时,可使用关键字 static ▶ static 标记的属性或方法由整个类(所有实例)共享,如访 问控制权限允许,可不必创建该类对象而直接用类名加“.” 调用。 ▶ static 成员也称“类成员”或“静态成员”,如“类属 性”、“类变量”、“类方法”和“静态方法”等。 大纲 多态性 方法重载 关键字 static 关键字 final static 属性和方法 O static 属性 ▶ static 属性由其所在类(包括该类所有的实例)共享。 StaticInitBlockSample.java 大纲 多态性 方法重载 关键字 static 关键字 final 静态导入 静态导入用于在一个类中导入其他类或接口中的 static 成员,语 法格式: import static < 包路径 >.< 类名 >.* 或: import static < 包路径 >.< 类名 >.< 静态成员名 > CODE ± 应用示例 1 import static java.lang0 码力 | 49 页 | 659.74 KB | 1 年前3
Java 应用与开发 - 类加载和反射结构,并和其 它类协调一致。 2. 准备:负责为类的静态属性分配内存,并设置默认初始值。 3. 解析:将类的二进制数据中的符号引用替换成直接引用。 大纲 反射 类的加载、连接和初始化 类加载器 使用反射生成并操作对象 本节习题 类的初始化 主要负责对静态属性进行初始化: ▶ 声明静态属性时指定初始值。 ▶ 使用静态初始化块为静态属性指定初始值。 1 public class Test 程序首次通过下面 6 种方式使用某个类或接口时,系统 会初始化该类或接口: ▶ 创建类的实例,包括通过 new 操作符、通过反射、通过反序 列化的方式。 ▶ 调用某个类的静态方法。 ▶ 访问某个类或接口的静态属性,或为该静态属性赋值。 ▶ 使用反射方式来强制创建某个类或接口对应的 java.lang.Class 对象。例如,Class.forName(”Person”)。 ▶ 初始化某个类的子类,其父类都会被初始化。 ClassLoader cl = ClassLoader.getSystemClassLoader(); 2 cl.loadClass("Tester"); 当使用 Class 的 forName() 静态方法时导致强制初始化该类。 1 Class.forName("Tester"); 大纲 反射 类的加载、连接和初始化 类加载器 使用反射生成并操作对象 本节习题 接下来⋯ 反射 类的加载、连接和初始化0 码力 | 46 页 | 714.40 KB | 1 年前3
Java 应用与开发 - 线程编程线程控制方法,理解各线程控制方法对线程状态切换的作 用。 3. 线程的同步:理解临界资源问题,进一步明白线程安全的意 义;了解关键字 synchronized 的用法;了解死锁的概念;通 过生产者—消费者问题分析理解线程同步。 大纲 线程基础 线程控制 线程的同步 大纲 线程基础 相关知识回顾 线程的概念模型 创建线程 后台线程 线程控制 线程生命的周期 线程优先级 线程串行化 线程休眠 线程让步 public final int getPriority(); ▶ 设定当前线程优先级 1 public final void setPriority(int newPriority); 相关静态整型常量: 1 Thread.MIN_PRIORITY = 1 2 Thread.MAX_PRIORITY = 10 3 Thread.NORM_PRIORITY = 5 练习 请自行编写线程优先级测试代码。 9 public char pop() { 10 idx--; 11 return data[idx]; 12 } 13 } 大纲 线程基础 线程控制 线程的同步 临界资源问题 O 问题分析 1. 操作之前,假设 data = |a|b| | | | |,idx = 2; 2. 线程 A 执行 push 中的第一个语句,将 c 推入堆栈; data = |a|b|c| | | |,idx0 码力 | 82 页 | 1010.73 KB | 1 年前3
Java 应用与开发 - JSP (Java Server Page)JSP 概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题 JSP 页面的组成 一个 JSP 页面由 HTML 标记代码和 JSP 元素组成。HTML 标 记用于生成网页的静态部分,JSP 元素用于生成动态内容部分。 O JSP 所包含的元素 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 JSP 扩展标记 大纲 JSP 概述 JSP 指令 JSP 属性,指定嵌入页面的 URL 地址; ▶ flush 属性,指定是否在嵌入页面之前清空响应缓存区,默 认为 true; ▶ jsp:param,为嵌入的页面传递参数,这些参数可以为动态、 也可以为静态。 大纲 JSP 概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题 include 指令和 include 动作的差异 ▶ 其根本性不同在于他们被调用的时间。include 简答题 1. 什么是 JSP?JSP 运行在哪里?JSP 一般的输出是什么? 2. JSP 有哪些优点和缺点? 3. JSP 的执行过程是怎样的? 4. 能够基于一个简单的 JSP 页面代码进行分析,找出 JSP 转 换为 Servlet 后,相关 JSP 元素在 Servlet 中都是如何转 换的。 大纲 JSP 概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题0 码力 | 47 页 | 740.36 KB | 1 年前3
Hello 算法 1.0.0b1 Java版小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2. 复杂度分析 12 2.1. 算法效率评估 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2 如果您是「算法大佬」,希望可以得到你的宝贵意见建议,或者一起参与创作。 � 前置条件 您需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2. 内容结构 本书主要内容有: ‧ 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 hello‑algo.com 7 0.3. 小结 ‧ 本书主要面向算法初学者。对于已经有一定积累的同学,这本书可以帮助你系统回顾算法知识,源代码 可被当作“刷题工具库”来使用。 ‧ 书中内容主要分为复杂度分析、数据结构、算法三部分,覆盖了该领域的大部分主题。 ‧ 对于算法小白,在初学阶段阅读一本入门书是非常有必要的,可以少走许多弯路。 ‧ 书内的动画和图解往往介绍的是重点和难点知识,在阅读时应该多加关注。0 码力 | 186 页 | 14.71 MB | 1 年前3
共 29 条
- 1
- 2
- 3













