《Java 应用与开发》课程讲义 - 王晓东
6.1 Java 内存模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.1.1 Java 虚拟机(Java Virtual Machine, JVM) . . . . . . . . . . . . . . 59 6.1.2 JVM 内存模型 . . . . . . . . . . . . . . . . . . . 62 6.2.3 Java 程序运行内存分析小结 . . . . . . . . . . . . . . . . . . . . . . 64 6.3 Java 内存管理建议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.3.1 Java 垃圾回收机制 . . . . . . . 65 6.3.3 内存优化的小示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.3.4 对象其他生命周期阶段内存管理 . . . . . . . . . . . . . . . . . . . 67 6.4 课后习题 . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3Linux Docker Mess
Installation n 直接格掉Windows,安装一个Linux发行版,如Ubuntu(强烈推荐) n 双系统,Windows和Linux并存(不推荐) n 虚拟机方式安装 n Windows系统中通过虚拟机安装Linux(较推荐) n Linux系统中通过虚拟机安装Windows(Kid me?) http://www.linuxfromscratch.org/ 建议用一个连续的时间(例如你的寒假,或者没人打扰的完整的一周) Scratch. 阴险的笑 Architecture Shell Kernel File System Applications Architecture Kernel n 内存管理 n 进程管理 n 文件系统(虚拟文件系统 VFS) n 设备驱动 n 网络接口 建议阅读Linux内核源代码,可以从Linux-0.11入手,推荐Linux内核完全注释 (赵炯著) Architecture 包成标准的container/image,进 而发布到不同的平台上运行。 Docker Why Docker? n 应用环境管理复杂 n 云计算时代的到来 n 虚拟化手段的变化 n LXC的便携性 Docker Docker Container和普通的虚拟机Image相比,最大的区别是它并不包含操作系统内核。 Docker vs. LXC 基本上可以认为目前的Docker是LXC的一0 码力 | 77 页 | 7.40 MB | 1 年前3Nacos架构&原理
Nacos 寻址机制 56 Nacos 服务发现模块 63 Nacos 注册中心的设计原理 63 Nacos 注册中心服务数据模型 80 Nacos 健康检查机制 89 Nacos 配置管理模块 97 配置⼀致性模型 97 Nacos ⾼可⽤设计 100 Nacos 高可用设计 100 Nacos 鉴权插件 103 Nacos 账号权限体系 103 Nacos 认证机制 110 281 Eureka 平滑迁移 Nacos 方案 281 Nacos 打通 CMDB 实现就近访问 288 跨注册中心服务同步实践 298 配置管理最佳实践 310 Nacos 限流最佳实践 310 Nacos 无缝支持 confd 配置管理 320 结语 326 结语 326 作者 < 6 作者 李艳林(彦林) 李晓双 孙立(涌月) 柳遵飞(翼严) 廖春涛(春少) 杨翊(席翁) 的架构设计、功能使用和最佳实践,推荐分布式应用的开发人员、运维人员和 对该领域感兴趣的技术爱好者阅读。 推荐序 < 8 Facebook 工程师 & CNCF 前 TOC 成员 - 李响 服务注册、发现与配置管理是构成大型分布式系统的基石。Nacos 是集成了这三种能力的现代化、 开源开放的代表系统。本书系统化的介绍了 Nacos 诞生的历史背景以及其在阿里集团内部孕育的过 程,阐述了打造⼀款实用、易用0 码力 | 326 页 | 12.83 MB | 9 月前3Apache Shiro 1.2.x Reference Manual 中文翻译
Tutorial 初学者web应用教程 22. Application Security With Apache Shiro 用Shiro保护你的应用安全 23. CacheManager 缓存管理 24. Apache Shiro Cryptography Features 加密功能 Apache Shiro 1.2.x Reference Manual 中文翻译 3 apache-shiro-1 1. Introduction 介绍 What is Apache Shiro? Apache Shiro是一个功能强大、灵活的,开源的安全框架。它可以干净利落地处理身份验 证、授权、企业会话管理和加密。 Apache Shiro的首要目标是易于使用和理解。安全通常很复杂,甚至让人感到很痛苦,但是 Shiro却不是这样子的。一个好的安全框架应该屏蔽复杂性,向外暴露简单、直观的API,来 Management(会话管理), Cryptography(加密)被 Shiro 框架的开发团队称之为应用安全的四大基石。那么就让我们来 看看它们吧: Authentication(认证):用户身份识别,通常被称为用户“登录” Authorization(授权):访问控制。比如某个用户是否具有某个操作的使用权限。 Session Management(会话管理):特定于用户的会话管理,甚至在非web0 码力 | 196 页 | 2.34 MB | 1 年前3Java 应用与开发 - 异常处理
是指程序链接错误。例如,一个类中用到另外一个类,在编译前 一个类之后,后一个类发生了不相容的改变时,再使用前一个类 则会出现链接错误。最常见的就是后一个类的.class 文件被误删 除。 O 虚拟机错误(VirtualMachineError) 当 Java 虚拟机崩溃或资源耗尽时会抛出该错误。其中比较有代 表性的是 StackOverflowError,当应用程序递归太深而导致栈内 存溢出时会出现该异常。 课程配套代码 ± 是指程序链接错误。例如,一个类中用到另外一个类,在编译前 一个类之后,后一个类发生了不相容的改变时,再使用前一个类 则会出现链接错误。最常见的就是后一个类的.class 文件被误删 除。 O 虚拟机错误(VirtualMachineError) 当 Java 虚拟机崩溃或资源耗尽时会抛出该错误。其中比较有代 表性的是 StackOverflowError,当应用程序递归太深而导致栈内 存溢出时会出现该异常。 课程配套代码 ± 异常的概念及分类 Java 异常处理机制 使用 finally 语句 ▶ finally 语句是可选的 ▶ 作用是为异常处理提供一个统一的出口,使得在控制流转到 程序的其他部分以前,能够对程序的状态作统一的管理。 ▶ 不论 try 代码块中是否发生了异常事件,finally 块中的语句 都会被执行。当 catch 语句块中出现 return 语句时,finally 语句块同样会执行。 大纲 异常的概念及分类0 码力 | 33 页 | 626.40 KB | 1 年前3Java 应用与开发 - Java 内存模型与分配机制
大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java 应用与开发 Java 内存模型与分配机制 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 30, 2018 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 学习目标 1. 理解 JVM 内存模型,掌握 JVM 内存构成 2 程序的运行过程,学会通过调试模式观察内存的 变化 3. 了解 Java 内存管理,认识垃圾回收 4. 建立编程时高效利用内存、避免内存溢出的理念 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 ���� Java 内存模型 Java Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java 虚拟机(Java Virtual Machine, JVM) ▶ Java 程序运行在 JVM 上,JVM 是程序与操作系统之间的桥梁。 ▶ JVM 实现了 Java 的平台无关性。 ▶ JVM 是内存分配的前提。 类装载子系统 Class文件 Class文件0 码力 | 44 页 | 818.30 KB | 1 年前3Java 对象的创建过程
在之前的一篇文章《关于java继承的哪些事》简单讲了Java创建对象的过程,但具体细节当时并没有 细讲。因而本篇文章以HotSpot虚拟机为例,来讲一下Java虚拟机是如何创建一个对象的? 简单来说Java对象的创建过程总共分为5步: Java创建对象的过程 类加载检查 首先当虚拟机遇到一个new指令时,首先会去检查这个参数能否在常量池中定位到这个类的符号引用 并且检查这个符号引用所代表的的类是否已经 被加载、连接、解析和初始化过,如果没有需要先执行 的加载操作(详细过程可参考"类的加载流程" )。 分配内存 当类加载检查通过后,接下来虚拟机需要为新生对象分配内存,为对象分配空间的任务等同于把一块 定大小的内存从 Java 堆中划分出来。分配内存的方式主要有两种:指针碰撞和空闲列表。 具体选择哪种方式取决于Java堆是否规整。而Java堆是否规整取决于垃圾收集器所采用的垃圾回收算 是否具有空间压缩整理的能力。 另一种算法是空闲列表,其分配内存的过程如下: 虚拟机会维护一个列表,该列表中会记录那些内存块是可用的,在分配内存时,会在空闲列表中找到 块足够大的内存块来给对象实例,最后更新列表记录。 当然该算法也有不足,由于需要时刻维护一个空闲列表,因而会增加空间和时间开销,但优点就是它 以用来对离散的空间进行内存分配。 最后在分配内存时,可能也会存在并发安全的问题,为了解决该问题,虚拟机采用两种方式来解决: ● CAS+失败重试:0 码力 | 4 页 | 389.87 KB | 1 年前3Java 应用与开发 - Java 技术概述及开发环境
引入Swing 2000.5 2002.2 2004.10 2006.11 J2SE1.3 J2SE1.4 J2SE1.5 J2SE5.0 JavaSE6.0 支持XML,采用新的虚拟机Hotspot 引入Assert语言特性 增加范型、for-each循环、可变数目参数、注解、自动装箱和拆箱 将Java2重新做回Java,性能、易用性前所未有的提高 Java7 Ora 技术概述 Java 平台核心机制 Java 开发环境 Java 基本开发流程 Java 平台 Java应用程序 Java API Java 虚拟机 操作系统(Windows, Linux, Mac) 硬 件 O 核心概念 ▶ Java 虚拟机 ▶ 垃圾回收机制 ▶ Java 运行时环境(Java Runtime Environment, JRE) 大纲 Java 技术概述 Java THIRDPARTYLICENSEREADME-JAVAFX.txt THIRDPARTYLICENSEREADME.txt bin Java 开发工具,包括编译器、虚拟机、调试器、反编译器等; jre Java 运行时,包括 Java 虚拟机、类库和其他资源文件; lib 类库和所需支持性文件; include 用于调试本地方法(底层平台)的 C++ 头文件; src.zip 类库的源代码;0 码力 | 33 页 | 1.17 MB | 1 年前3Java 源码剖析——彻底搞懂Reference 和ReferenceQueue
原文链接:https://ld246.com/article/1513083921948 来源网站:链滴 许可协议:署名-相同方式共享 4.0 国际 (CC BY-SA 4.0) 之前博主的一篇读书笔记——《深入理解Java虚拟机》系列之回收对象算法与四种引用类型博客中为 家介绍了Java中的四种引用类型,很多同学都希望能够对引用,还有不同类型引用的原理进行更深入 了解。因此博主查看了抽象父类Reference和负责注册引用0 码力 | 6 页 | 283.24 KB | 1 年前3Java 应用与开发 - 类加载和反射
ClassLoader 基类来创建自己的 类加载器。 ▶ 可以从本地文件系统、jar 包和网络方式加载类的 class 文 件。 ▶ 类加载器通常无须等到“首次使用”该类时才加载此类, Java 虚拟机允许系统预先加载某些类。 大纲 反射 类的加载、连接和初始化 类加载器 使用反射生成并操作对象 本节习题 类的连接 类被加载生成对应的 Class 对象后,进入连接阶段,负责把类的 二进制数据合并到0 码力 | 46 页 | 714.40 KB | 1 年前3
共 30 条
- 1
- 2
- 3