
书籍读后总结
文章平均质量分 88
JISOOLUO
这个作者很懒,什么都没留下…
展开
-
虚拟机字节码执行引擎
五、虚拟机字节码执行引擎 1、概述 执行引擎是Java虚拟机最核心的组成部分之一 从外观上看起来,所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。 2、运行是栈帧结构 栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,是虚拟机运行时数据区中的虚拟机栈的栈元素。 每一个栈帧都包括了局部变量表、操作数栈、动态链接、方法返回地址和一些额外的富家信息。 当前栈帧所关联的方法称为当前方法 2.1、局部变量表 是一组变量值存储空间,用于存放原创 2021-03-22 10:13:33 · 227 阅读 · 0 评论 -
虚拟机类加载机制
四、虚拟机类加载机制 1、概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载 2、类加载的时机 2.1、生命周期 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了: 加载 验证 准备 解析 初始化 使用 卸载 加载、验证、准备、初始化和卸载顺序是确定的,但是解析阶段则不一定。 类的初始化(没有初始化) 有道new、getstatic、putstatic或invo原创 2021-03-22 10:05:16 · 221 阅读 · 0 评论 -
类文件结构
三、类文件结构 1、概述 我们编写的程序编译成二进制本地机器码已不再是唯一选择,越来越多的程序语言选择了与操作系统和机器指令无关的、平台中立的格式作为程序编译后的存储格式。 2、无关性的基石 各种不同平台的虚拟机与所有平台都统一使用的程序存储格式----字节码是构成平台无关性的基石。 3、Class类文件的结构 Class文件是以一组8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中。 无符号数属于基本的数据类型,以u1、u2、u4、u8来分别代表一个字节,2个字原创 2021-03-22 10:04:35 · 222 阅读 · 0 评论 -
垃圾收集器与内存分配策略
二、垃圾收集器与内存分配策略 1、对象已死? 1.1、引用计数法 使用 给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,当引用失效时,计数器值就减一;任何时刻计数器都为0 的对象就是不可能被使用的。 缺点 很难解决对象之间的相互循环引用的问题 因为对象相互引用导致他们的引用计数都不为0,例如:objA.instance = objB 及 objB.instance = objA,于是引用计数算法无法通知GC收集器回收他们 1.2、根搜索算法 思路 通过一系列名为GC原创 2021-03-19 11:47:14 · 143 阅读 · 0 评论 -
Java 内存区域与内存溢出异常
一、Java内存区域与内存溢出异常 1、运行是区域 1.1、程序计数器 特点 线程私有 没有规定OutOfMemoryError情况的区域 执行Native方法,计数器值为空 作用 当前线程所执行的字节码的行号指示器,通过改变计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等 帮助线程切换之后能恢复到正确的执行位置。 1.2、Java虚拟机栈 特点 线程私有,生命周期与线程相同 方法执行时产生的内存模型:即是一个创建一个栈帧,存储局部变量表、操作栈、动态链原创 2021-03-18 15:09:24 · 105 阅读 · 0 评论 -
Spring in Action -- AOP篇
1、什么是面向切面编程? 概念:通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 2、AOP术语 2.1、通知(Advice) 在AOP术语中,切面的工作被称为通知、 Spring切面可以应用5中类型的通知 前置通知(Before):在目标方法被调...原创 2020-04-25 16:53:16 · 242 阅读 · 0 评论