- 博客(61)
- 收藏
- 关注
原创 第9章 类加载及执行子系统的案例与实战
第9章 类加载及执行子系统的案例与实战9.2案例分析9.2.1 Tomact:正统的类加载器架构在Tomact目录结构中,可以设置3组目录(/commom/* ,/server/, 和/shared/ ,但默认不一定是开放的,可能只有/lib/目录存在)用于存放Java类库,另外还应该加上程序自身的“/WEB-INF/”目录,一共四组。9.2.2 OSGi:灵活的类加载器架构OSGi(Open Service Gateway Initiative)是OSGi联盟制订的一个基于Java语言的动
2020-12-19 22:12:25
80
1
原创 第8章 虚拟机字节码执行引擎
第8章 虚拟机字节码执行引擎8.1 概述执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器,缓存,指令集和操作系统层面上,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。在不同的虚拟机实现中,执行引擎在执行字节码的时候,通常会有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择
2020-12-18 20:17:10
188
原创 第5章 虚拟存储概念
第5章 虚拟存储概念5.1 虚拟内存的起因(1)目录-起因-覆盖技术(早期)/交换技术(早期)/虚存技术-虚拟内存技术:目标/程序局部性原理/基本概念/基本特征/虚拟页式内存管理(2)起因经常出现内存不够了。程序规模的增长速度远远大于存储器容量的增长速度。理想的存储器:容量更大,速度更快,价格更便宜的非易失性存储器。实际的存储器:(3)操作系统对存储的抽象:地址空间(4) 虚拟存储的需求计算机系统时常出现内存空间不够用覆盖(overlay) 应用程序手动把需要的指令和数
2020-12-17 20:28:02
799
原创 第7章 虚拟机类加载机制
第7章 虚拟机类加载机制Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。与那些在编译时需要进行连接的语言不同,在Java语言里面,类型的加载,连接和初始化过程都是在程序运行期间完成的。7.2 类加载的时机一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载,验证,准备,解析,初始化,使用和卸载七个阶段,其中验证,准备,解析三个部分统称为连接。
2020-12-15 18:46:07
103
原创 第四章 非连续式内存分配
第四章 非连续式内存分配4.1 非连续内存分配:分段1)非连续内存分配的原因连续内存分配的缺点分配给一个程序的物理内存是连续的内存利用率低内存分配的动态修改困难有外碎片/内碎片问题非连续内存分配的设计目标:提高内存利用效率和管理灵活性非连续内存分配的优点分配给一个程序的物理内存是非连续的更好的内存利用和管理允许共享代码和数据(共享库等)支持动态加载和动态链接非连续内存分配的缺点(需要解决的问题)如何建立虚拟地址和物理地址之间的转换软件方案实现(灵活,开销大)硬件
2020-12-15 11:57:55
306
原创 第6章 类文件结构
第6章 类文件结构6.3 Class类文件结构Java技术能够一直保持着非常良好的向后兼容性,Class文件结构的稳定性功不可没。Class文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。Class文件格式采用一种类似于C语言结构体的伪结构来存储数据,这种伪结构中只有两种数据类型:”无符号数“和”表“无符号数属于基本的数据类型,以u1,u2,u4,u8
2020-12-13 09:53:27
122
原创 第5章 主从复制
第5章 主从复制1、复制的基本原理slave会从master读取binlog来进行数据同步,主从复制的三步骤master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件(binary log events)slave将master的binary log events拷贝到它的中继日志(relay log)slave重做中继日志中的事件,将改变应用到自己的数据库中。MySQL复制是异步的且串行化的2、复制的基本原则每个slave只有一个master每个sl
2020-12-12 10:30:55
293
2
原创 第四章 MySQL锁机制
第四章 MySQL锁机制1 概述1.1 锁的定义锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。1.2、锁的分类锁的分类从数据操作的类型(读、写)分1) 读锁(共享锁):针对同一份数据,多个读操作可以同时
2020-12-12 08:54:07
177
原创 第三章 连续式内存分配
第三章 连续式内存分配3.1 计算机体系结构及内存分层体系计算机体系结构CPU,内存,I/OCPU中有两级缓存,CPU的缓存感受不到,是硬件控制的,如果缓存中没有,就需要去内存或者外存中读写,这时候就需要操作系统进行控制了。2) 操作系统在内存管理要完成的目标-抽象:逻辑地址空间-保护:独立地址空间-共享:访问相同内存-虚拟化:更多的地址空间(3)操作系统实现内存管理目标的手段程序重定位分段分页虚拟内存 (目前多数系统(如Linux)采用按需页式虚拟存储)按需分页
2020-12-12 08:11:33
353
1
原创 第5章 调优案例分析与实战
第5章 调优案例分析与实战5.2 案例分析5.2.1 大内存硬件上的程序部署策略目前单体应用在较大内存的硬件上主要的部署方式有两种:通过一个单独的Java虚拟机实例来管理大量的Java堆内存同时使用若干个Java虚拟机,建立逻辑集群来利用硬件资源。集群5.2.2 集群间同步导致的内存溢出5.2.3 堆外内存导致的溢出错误1,逆向ajax技术导致溢出的关键是垃圾收集进行时,虚拟机虽然会对直接内存进行回收,但是直接内存却不能像新生代,老年代那样,发现空间不足了就主动通知收集器进行垃圾
2020-12-10 20:38:03
170
原创 第3章,查询截取分析
第3章,查询截取分析3.1, 查询优化3.1.1,MySQL 优化原则mysql 的调优大纲观察,至少跑一天,看看生产的慢SQL情况慢查询的开启并捕获 ,设置阈值,比如超过5秒钟的就是慢SQL,并将它抓取出来。explain+慢SQL分析show profile查询SQL在Mysql服务器里面的执行细节和生命周期情况运维经理或DBA,进行SQL数据库服务器的参数调优3.1.2 永远小表驱动大表,类似嵌套循环 Nested Loop1, EXISTS 语法:SELECT … F
2020-12-09 08:41:54
270
原创 第4章 虚拟机性能监控,故障处理工具
jvm的堆转储文件jstat,jmap,jps4.1 基础故障处理工具在本章中,将介绍JDK的bin目录下部分工具的作用,介绍的这些工具主要是用于监控虚拟机运行状态和进行故障处理的工具。4.1.1 jps:虚拟机进程状况工具可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID(LVMID,Local Virtual Machine Identifier)jps 的命令格式:jps [options] [ho
2020-12-08 22:45:26
148
原创 第二章:操作系统基础操作
第二章:操作系统基础操作1,操作系统的启动CPU, I/O, 内存通过总线连接。DISK(硬盘):存放OS;BIOS:基本I/O处理系统( basic I/O system);Bootloader: 加载OS到内存中。 当电脑通电时,段寄存器CS和指令寄存器IP能够确定一个内存地址,例如CS:IP = 0xf000:fff0. POST(加电自检),寻找显卡和执行BIOS。(显示器,键盘…是否正常)。步骤:-BIOS: 将Bootloader从磁盘的磁盘的引导扇区(512字节)加载到0x7
2020-12-06 11:26:57
1211
原创 第2章 索引优化分析
1,慢SQL性能下降、 SQL 慢、执行时间长、等待时间长的原因分析:查询语句写的烂索引失效:单值索引:在user表中给name属性建个索引,create index idx_user_name on user(name)复合索引:在user表中给name、email属性建个索引,create index idx_user_nameEmail on user(name,email)关联查询太多join(设计缺陷或不得已的需求)服务器调优及各个参数设置(缓冲、线程数等)2,
2020-12-06 09:35:02
534
原创 第3章 垃圾收集器与内存分配策略
垃圾收集器与内存分配策略1,概述2,对象已死?2.1 引用计数算法在对象中添加一个引用计数器,每当有一个地方引用它时,计数器的值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。2.2 可达性分析算法当前主流的商用程序语言(Java,C#)的内存管理子系统,都是通过可达性分析(Reachability Analysis)算法来判定对象是否存活的。这个算法的基本思路就是通过一系列称为“GC Roots”的根对象作为起始节点集,从这些节点开始,根据引用关系向
2020-12-05 20:48:20
155
原创 第2章 JVM 自动内存管理
Java虚拟机代码地址:https://github.com/fenixsoft/jvm_book1,我们可以把Java程序设计语言,Java虚拟机,Java类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境。可以把Java类库API中的Java SE API 子集和Java虚拟机这两部分统称为JRE,JRE是支持Java程序运行的标准环境。第2章 Java内存区域与内存溢出异常1,概述对于C,C++ 程序开发的开发人员来说,在内存管
2020-12-01 15:06:34
100
原创 第一章,操作系统概述
【操作系统】 Operation System 第一章:概述1,什么是操作系统用户角度:操作系统是一个控制软件管理应用程序为应用程序提供服务杀死应用程序资源管理管理外设,分配资源2,操作系统将CPU抽象成进程,磁盘抽象成文件,内存抽象成地址空间 3,操作系统的架构层次:硬件之上,应用软件之下(为应用软件提供服务支持)。4,Linux,Windows界面属于外壳shell(与User交互),而不是内核kernel,而kernel是研究重点,在shell之下。(4)Kern
2020-12-01 14:15:02
183
原创 2,MySQL逻辑架构
2,MySQL逻辑架构Connectors:指的是不同语言中与SQL的交互Management Serveices & Utilities: 系统管理和控制工具Connection Pool:连接池管理缓冲用户连接,线程处理等需要缓存的需求。负责监听对 MySQL Server 的各种请求,接收连接请求,转发所有连接请求到线程管理模块。每一个连接上 MySQL Server 的客户端请求都会被分配(或创建)一个连接线程为其单独服务。而连接线程的主要工作就是负责 MySQL S
2020-12-01 08:15:56
126
原创 JAVA基础笔记
两个重要的网站:JAVA Guide ; Java familyJAVAj经典书籍:https://github.com/dahuoyzs/javapdfIDEA2020如何新建javaweb项目[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eXryyUTG-1606375471219)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201126145252325.pn
2020-11-26 15:26:36
299
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅