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 年前3Java 应用与开发 - 线程编程
edu.cn 中国海洋大学 November 6, 2018 大纲 线程基础 线程控制 线程的同步 学习目标 1. 线程基础:理解任务调度、进程和线程,掌握其联系和区别; 掌握 Java 的线程模型,以及如何创建线程;理解后台线程。 2. 线程控制:理解线程的生命周期,明白各阶段的含义;掌握 线程控制方法,理解各线程控制方法对线程状态切换的作 用。 3. 线程的同步:理解临界资源问题,进一步明白线程安全的意 大纲 线程基础 线程控制 线程的同步 大纲 线程基础 相关知识回顾 线程的概念模型 创建线程 后台线程 线程控制 线程生命的周期 线程优先级 线程串行化 线程休眠 线程让步 线程挂起与恢复 线程等待与通知 线程的同步 大纲 线程基础 线程控制 线程的同步 ���� 线程基础 相关知识回顾 线程的概念模型 创建线程 后台线程 线程控制 线程生命的周期 线程优先级 线程串行化 线程休眠 线程休眠 线程让步 线程挂起与恢复 线程等待与通知 线程的同步 大纲 线程基础 线程控制 线程的同步 相关知识回顾 ���� 线程基础 相关知识回顾 线程的概念模型 创建线程 后台线程 线程控制 线程生命的周期 线程优先级 线程串行化 线程休眠 线程让步 线程挂起与恢复 线程等待与通知 线程的同步 大纲 线程基础 线程控制 线程的同步 相关知识回顾 概念回顾 O 任务调度 ▶0 码力 | 82 页 | 1010.73 KB | 1 年前3Nacos架构&原理
Nacos 配置模型 21 Nacos 内核设计 28 Nacos ⼀致性协议 28 Nacos 自研 Distro 协议 38 Nacos 通信通道 42 Nacos 寻址机制 56 Nacos 服务发现模块 63 Nacos 注册中心的设计原理 63 Nacos 注册中心服务数据模型 80 Nacos 健康检查机制 89 Nacos 配置管理模块 97 配置⼀致性模型 97 Nacos 建云原生应用的动态服务发现、配置管理和服务管理平台。 官网:https://nacos.io/ 仓库:https://github.com/alibaba/nacos Nacos 优势 易⽤:简单的数据模型,标准的 restfulAPI,易用的控制台,丰富的使用文档。 稳定:99.9% 高可用,脱胎于历经阿里巴巴 10 年生产验证的内部产品,支持具有数百万服务的大 规模场景,具备企业级 SLA 的开源产品。 20 审计系统:扩展接口方便与不同公司审计系统打通。 通知系统:核心数据变更,或者操作,方便通过 SMS 系统打通,通知到对应人数据变更。 21 > Nacos 架构 Nacos 配置模型 背景 在单体架构的时候我们可以将配置写在配置文件中,但有⼀个缺点就是每次修改配置都需要重启服 务才能生效。 当应用程序实例比较少的时候还可以维护。如果转向微服务架构有成百上千个实例,每修改⼀次配0 码力 | 326 页 | 12.83 MB | 9 月前3基于 Java EE 的企业应用系统设计 - Spring MVC 01
数据绑定和表单标签库 MVC 的特点 1. 多个视图可以对应一个模型,可以减少代码的复制,在模型 发生改变时,易于维护。 2. 模型返回的数据与显示逻辑分离。模型数据可以应用任何显 示技术,例如,使用 JSP、Velocity 模板或者直接产生 Excel。 3. 应用被分为三层,降低各层耦合,提高了可扩展性。 4. 控制层把不同模型和视图组合在一起,完成不同的请求,控 制层包含了用户请求权限的概念。 HttpServletResponse response); 其实现类可以访问对应请求的 HttpServletRequest 和 HttpServletRe- sponse 对象,还必须返回一个包含视图路径或视图模型的 Mode- lAndView 对象。Controller 接口的实现类只能处理一个单一动作。 ▶ 基于注解的控制器可以同时支持多个请求处理动作处理,并 且无须实现任何接口。 大纲 Java Web ModelAndView Model Map 包含模型的属性 View String 代表逻辑视图名的 String void 提供对 Servlet 的访问,以响应 HTTP 头部和内容 HttpEntity 或 ResponseEntity 对象 Callable DeferredResult 其他任意类型 Spring 将其视作输出给 View 的对象模型 大纲 Java Web 应用的开发演化0 码力 | 67 页 | 792.43 KB | 1 年前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 年前3Apache Shiro参考手册中文版
only 许可声明仅能够反映行为(与资源类型相关的行为)。它们不反映是谁能够执行这样的行为。 定义(用户)被允许做什么(权限),是一个以某种方式分配给用户权限的运用。这通常是由应用程序的数据模型 来完成的,并且不同应用程序间变化很大。 例如,权限能够被集合到一个角色中,该角色可以与一个或多个用户对象相关联。或者某些应用程序可以有一组可 以被分配一个角色的用户和组,传递的关联意味着该组中的所有用户都隐式地获得了该角色的权限。 虽然有比较简单和最常用的方法,隐式角色可能强加许多软件的维护和管理问题。 例如,如果你只是想添加或删除一个角色,或者重新定义一个角色的行为呢?你不得不返回到你的代码,并改写所 有你所有的角色检查以反映你的安全模型的改变,每次像这样的改变都是必不可少的!且不说这会招致运营成本(重 新测试,经过 QA,关闭应用程序,新的角色下检查升级软件,重启该应用程序等)。 这对非常简单的应用程序可能没什么问题(例如,也许 你的应用 程序的数据模型定义了 Subject 是如何被允许做某事或不的。 例如,在你的数据模型中,也许你有一个实际的 User 类,而且你直接分配权限给 User 实例。或者,你也许只分配 权限给角色,然后分配角色给用户,通过关联,用户延伸“有”的权限分配给自己的角色。或者你用"Group"的概 念来代替这些东西。这些都随便你——使用什么使得你的程序有意义。 你的数据模型定义授权究竟是如和工作的。Shiro0 码力 | 92 页 | 1.16 MB | 1 年前3Apache Shiro 1.2.x Reference Manual 中文翻译
是描述“什么”可以做的指令。 权限只描述行为 权限指令只描述行为(和资源相关的动作),并不关心“谁”有能力执行这个动作。 定义“谁”(用户)被允许做“什么”(权限)需要用一些方法将权限赋给用户,这通常取决于程 序的数据模型而且经常在程序中发生改变。 例如,一组权限可以归于一个角色而角色与一个或多个用户对象关联,或者一些程序可以有 一组用户而一个组可以指定一个角色,在这里关系将被传递也就是说组内用户隐含被赋予角 色的权限。 Subject 是否允许做什么事情。 例如,在你的数据模型中,你定义了一个普通的用户类并且直接为其设置了权限,或者你只 是直接给角色设置了权限,然后将用户与该角色关联,通过这种关联,用户就“有”了角色所具 备的权限,或者你也可以通过“组”的概念完成这件事,这取决于你程序的设计。 数据模型定义了如何进行授权,Shiro 依赖一个 Realm 实现将你的数据模型关联转换成 Shiro 可以理解的内容,我们将稍后讨论 可以理解的内容,我们将稍后讨论 Realms。 最终,是 Realm 与你的数据源(RDBMS,LDAP等)做交流,Realm 用来告知Shiro 是否角色 或权限是否存在,你可以完全控制你的授权模型如何创建和定义。 Authorizing Subjects 授权对象 在 Shiro 中执行授权可以有三种途径: 程序代码--你可以在你的 JAVA 代码中执行用类似于 if 和 else 的结构来执行权限检查。0 码力 | 196 页 | 2.34 MB | 1 年前3Java 应用与开发 - MVC 和框架初步
2 本节习题 MVC 的特点 1. 多个视图可以对应一个模型,可以减少代码的复制,在模型 发生改变时,易于维护。 2. 模型返回的数据与显示逻辑分离。模型数据可以应用任何显 示技术,例如,使用 JSP、Velocity 模板或者直接产生 Excel。 3. 应用被分为三层,降低各层耦合,提高了可扩展性。 4. 控制层把不同模型和视图组合在一起,完成不同的请求,控 制层包含了用户请求权限的概念。0 码力 | 51 页 | 837.26 KB | 1 年前3Java 应用与开发 - Java GUI 编程
组件结构分为 相对独立的模型、视图、控制器三个模块,模块间存在专门的分 工和协作关系。 1. 模型(Model) 维护数据并提供数据访问方法,即数据和数 据的处理逻辑。 2. 视图(View) 绘制模型的视觉表现,即显示数据。视图就 是用户能够看到并与之进行交互的用户界面。 3. 控制器(Controllor) 负责处理事件或者说程序的流程控制, 接受用户输入,并调用/操控模型和视图以实现用户需求。0 码力 | 73 页 | 876.31 KB | 1 年前3
共 20 条
- 1
- 2