JVM 内存模型
JVM 内存模型 Heap Method Area Runtime Constant Pool Thread Thread Thread PC Register JVM Stack Native Method Stack PC Register JVM Stack Native Method Stack PC Register JVM Stack Native Method0 码力 | 1 页 | 48.42 KB | 1 年前3Java 应用与开发 - 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 Java栈 程序计数器 本地方法栈 执行引擎 本地接口 通过全限定名装载 操作系统 操作系统本地库 运行时数据区 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 JVM 内存模型 动画演示 JVM 内存模型 JVM内存模型 Heap Method Area Runtime Constant Pool Thread Thread Thread PC Register0 码力 | 44 页 | 818.30 KB | 1 年前3Apache Shiro参考手册中文版
Subject 可以是一个人,但它还可以代表第三方服务,daemon account,cron job, 或其他类似的任何东西——基本上是当前正与软件进行交互的任何东西。 所有 Subject 实例都被绑定到(且这是必须的)一个 SecurityManager 上。当你与一个 Subject 交互时,那些交 互作用转化为与 SecurityManager 交互的特定 subject 的交互作用。 进制编码,但可以使用 Base64 编码代替 16 进制编码来配置(见下面)。 一旦你指定了文本密码散列值,你得告诉 Shiro 这些都是加密的。你可以通过配置在[main] section 中隐式地创建 iniRealm 来使用合适的 CredentialsMatcher 实现来对应到你所指定的哈希算法: 你可以像任何其他对象一样在 CredentialsMatcher 它将会遍历该集合,并对每一个支持提交 AuthenticationToken 的 Realm 调用 Realm 的 getAuthenticationInfo 方 法。 Implicit ordering(隐式排列) 当使用 Shiro 的 INI 配置文件格式时,你应该配置 Realm 处理 AuthenticationToken 的顺序,你想要的顺序。例 如,在 shiro.ini 中,Realm 将会以它们在0 码力 | 92 页 | 1.16 MB | 1 年前3Apache Shiro 1.2.x Reference Manual 中文翻译
任何应用程序 Apache Shiro设计从一开始就支持任何应用程序——从最小的命令行应用程序最大的集群 web 应用程序。对于本教程,尽管我们创建一个简单的应用程序,你都知道运用相同的使用模 式来进行应用程序创建或部署。 本教程需要 Java 1.5 或更高版本。 我们还将使用 Apache Maven 作为我们的构建工具,当然 这对于 Apache Shiro 来说不是必须使用。你可能获得 ,Subject 可以是一个人,但也可以是第三 方服务、守护进程帐户、时钟守护任务或者其它--当前和软件交互的任何事件。 Subject 实例都和(也需要)一个 SecurityManager 绑定,当你和一个Subject 进行交互,这些交 互动作被转换成 SecurityManager 下Subject 特定的交互动作。 SecurityManager: SecurityManager getAuthenticationInfo 方法调用之后; 4.在所有的 Realm 被执行之后。 AuthenticationStrategy 还有责任从每一个成功的 Realm 中收集结果并将它们“绑定”到一个单 独的 AuthenticationInfo,这个AuthenticationInfo 实例是被 Authenticator 实例返回的,并且 shiro 用它来展现一个 Subject0 码力 | 196 页 | 2.34 MB | 1 年前3跟我学Shiro - 张开涛
.......................................................................... 184 第二十三章 多项目集中权限管理及分布式会话 ....................................................................... 191 部署架构............... API 的含义: Subject:主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互 的任何东西都是 Subject,如网络爬虫,机器人等;即一个抽象概念;所有 Subject 都绑定 到 SecurityManager,与 Subject 的所有交互都会委托给 SecurityManager;可以把 Subject 认 为是一个门面;SecurityManager 才是实际的执行者; 来管理主体与应用之间交互的数据;这样的话,比如我们在 Web 环境用,刚开始是一台 Web 服务器;接着又上了台 EJB 服务器;这时想把两台服务器的会话数据放到一个地方, 这个时候就可以实现自己的分布式会话(如把数据放到 Memcached 服务器); SessionDAO:DAO 大家都用过,数据访问对象,用于会话的 CRUD,比如我们想把 Session 保存到数据库,那么可以实现自己的 SessionDAO,通过如0 码力 | 219 页 | 4.16 MB | 10 月前3《Java 应用与开发》课程讲义 - 王晓东
Java 内存模型与分配机制 58 6.1 Java 内存模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.1.1 Java 虚拟机(Java Virtual Machine, JVM) . . . . . . . . . . . . . . 59 6.1.2 JVM 内存模型 . . . . . . 181 14.1.3 线程和进程的区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 14.1.4 线程的概念模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 14.1.5 创建线程 . . . . . . . . . . . . 47 6.1 Java 虚拟机架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.2 JVM 内存模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 7.1 接口实现示例 . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3基于 Java EE 的企业应用系统设计 - Spring MVC 02
表达式语言(EL) JSTL 转换器和格式化(Converter and Formatter) ▶ Spring MVC 框架具备数据自动绑定能力,但其数据绑定并 非没有任何限制,在如何正确绑定数据方面是杂乱无章的。 ▶ 例如,Spring 总是试图用默认的语言区域将日期输入绑定到 java.util.Date。 ▶ 假如想让 Spring 使用不同的日期样式,就需要使用 Converter 或者 Formatter。 2017-05-31。默认情况下,Spring 会期待用户输入的 日期样式与当前语言区域的日期样式相同。例如,对于美国的用 户而言,就是月/日/年格式。 如果希望 Spring 在将输入的日期字符串绑定到 Date 时使用不同 的日期样式,则需要编写一个 Converter,才能将字符串转换成 日期。 大纲 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) ,就不 需要在 controller 类中将字符串转换成日期了。 saveEmployee 方法的 BindingResult 参数中放置了 Spring 的所有 绑定错误。该方法利用 BindingResult 记录所有绑定错误。绑定错 误也可以利用 errors 标签显示在一个表单中,如 EmployeeForm.jsp 中 error 标签0 码力 | 56 页 | 866.07 KB | 1 年前3Hello 算法 1.1.0 Java版
我们按照说明书一步步操作,就能组装出精美的积木模型。 第 1 章 初识算法 hello‑algo.com 15 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结 return n + res; } 图 2‑3 展示了该函数的递归过程。 图 2‑3 求和函数的递归过程 虽然从计算角度看,迭代与递归可以得到相同的结果,但它们代表了两种完全不同的思考和解决问题的范 式。 ‧ 迭代:“自下而上”地解决问题。从最基础的步骤开始,然后不断重复或累加这些步骤,直到任务完成。 ‧ 递归:“自上而下”地解决问题。将原问题分解为更小的子问题,这些子问题和原问题具有相同的形式。 总结以上内容,如表 2‑1 所示,迭代和递归在实现、性能和适用性上有所不同。 表 2‑1 迭代与递归特点对比 第 2 章 复杂度分析 hello‑algo.com 27 迭代 递归 实现方 式 循环结构 函数调用自身 时间效 率 效率通常较高,无函数调用开销 每次函数调用都会产生开销 内存使 用 通常使用固定大小的内存空间 累积函数调用可能使用大量的栈帧空间 适用问 题0 码力 | 378 页 | 18.47 MB | 1 年前3Hello 算法 1.0.0 Java版
我们按照说明书一步步操作,就能组装出精美的积木模型。 第 1 章 初识算法 hello‑algo.com 15 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结 return n + res; } 图 2‑3 展示了该函数的递归过程。 图 2‑3 求和函数的递归过程 虽然从计算角度看,迭代与递归可以得到相同的结果,但它们代表了两种完全不同的思考和解决问题的范 式。 ‧ 迭代:“自下而上”地解决问题。从最基础的步骤开始,然后不断重复或累加这些步骤,直到任务完成。 ‧ 递归:“自上而下”地解决问题。将原问题分解为更小的子问题,这些子问题和原问题具有相同的形式。 总结以上内容,如表 2‑1 所示,迭代和递归在实现、性能和适用性上有所不同。 表 2‑1 迭代与递归特点对比 第 2 章 复杂度分析 hello‑algo.com 27 迭代 递归 实现方 式 循环结构 函数调用自身 时间效 率 效率通常较高,无函数调用开销 每次函数调用都会产生开销 内存使 用 通常使用固定大小的内存空间 累积函数调用可能使用大量的栈帧空间 适用问 题0 码力 | 376 页 | 17.59 MB | 1 年前3Hello 算法 1.0.0b5 Java版
我们按照说明书一步步操作,就能组装出精美的积木模型。 第 1 章 初识算法 hello‑algo.com 14 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结构 return n + res; } 图 2‑3 展示了该函数的递归过程。 图 2‑3 求和函数的递归过程 虽然从计算角度看,迭代与递归可以得到相同的结果,但它们代表了两种完全不同的思考和解决问题的范 式。 ‧ 迭代:“自下而上”地解决问题。从最基础的步骤开始,然后不断重复或累加这些步骤,直到任务完成。 ‧ 递归:“自上而下”地解决问题。将原问题分解为更小的子问题,这些子问题和原问题具有相同的形式。 根据以上方法,可以得到算法运行时间为 6? + 12 ns : 1 + 1 + 10 + (1 + 5) × ? = 6? + 12 但实际上,统计算法的运行时间既不合理也不现实。首先,我们不希望将预估时间和运行平台绑定,因为算 法需要在各种不同的平台上运行。其次,我们很难获知每种操作的运行时间,这给预估过程带来了极大的难 度。 2.3.1 统计时间增长趋势 时间复杂度分析统计的不是算法运行时间,而是算法运行时间随着数据量变大时的增长趋势。0 码力 | 376 页 | 30.69 MB | 1 年前3
- 1
- 2
- 3
- 4