运行时数据区 程序计数器/PC寄存器 线程私有,程序计数器是一块较小的内存空间,当前线程所执行的字节码的行号指示器。 字节码解释器工作时就是通过改变计数器的值来选择下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成。 如果线程在执行java方法,计数器记录 ...
分类:
编程语言 时间:
2020-09-17 23:11:27
阅读次数:
31
问题: JVM安全点是什么概念? finally是如何实现的?finally中抛出异常会怎么样? 1.JVM安全点是什么概念? 安全点就是某些记录线程此时调用栈、寄存器等一些重要的数据区域里什么地方包含了GC要管理的指针(对象引用),而这些对象引用是通过OopMaps结构进行记录的,可以直接通过对O ...
分类:
其他好文 时间:
2020-09-17 22:19:26
阅读次数:
33
jvm是如何进行方法的调用的? 方法重载:方法名相同,参数类型不同的一组方法的关系,叫做方法重载。在编译阶段就能够确定具体调用哪个重载方法。 方法重写:子类方法跟父类的方法名参数类型一样,叫做方法重写。会根据调用者的动态类型选取实际的目标方法。 java虚拟机会根据方法描述判断方法是否重写。非私有, ...
分类:
其他好文 时间:
2020-09-17 20:52:44
阅读次数:
29
##反射 反射:是底层技术 (开发工具和框架,使代码更通用) java.lang.reflect//反射包 ###1).类对象Class 是类加载的产物,封装了一个类的所有信息(类名,父类,接口,属性,方法,构造方法…) 类加载: 当JVM第一次使用一个类的时候,需要读取这个类对应的字节码文件,获取 ...
分类:
编程语言 时间:
2020-09-17 18:56:15
阅读次数:
34
1、Java为什么属于编译型+解释型的高级语言? 这个编译器编译之后,生成的类文件不能直接在对应的平台上运行,而是通过JVM来翻译才能在对应的平台上运行,而这个翻译大多数时候是解释的过程,但是也会有编译,称之为运行时编译,即JIT(Just In Time)。综上所述,Java是一门编译型+解释型的 ...
分类:
编程语言 时间:
2020-09-17 17:31:23
阅读次数:
35
【缓冲流、转换流、序列化流】 主要内容 缓冲流 转换流 序列化流 打印流 第一章 缓冲流 昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来 ...
分类:
其他好文 时间:
2020-09-17 13:28:10
阅读次数:
31
前言说jvm的内存模型前先了解一下物理计算机的内存处理。物理计算器上用户磁盘和cpu的交互,由于cpu读写速度速度远远大于磁盘的读写速度速度,所以有了内存(高速缓存区)。但是随着cpu的发展,内存的读写也跟不上cpu的读写速度了,cpu的产商就给每个cpu加入了一个高速缓存,也就是下面的结构。JVM组成解析运行时数据区运行时数据区中包括:栈、堆、方法区(元空间)、本地方法栈、程序计数器。详细概念在
分类:
其他好文 时间:
2020-09-17 12:44:01
阅读次数:
25
指令集分类 基于寄存器的指令集 基于栈的指令集 Hotspot中的Local Variable Table = JVM中的寄存器 Runtime Data Area PC 程序计数器:由于存在线程切换,线程需要有自己的程序计数器来记住指令执行到的位置【线程私有】 存放指令位置 虚拟机的运行,类似于这 ...
分类:
其他好文 时间:
2020-09-15 20:52:34
阅读次数:
28
一、elasticsearch之相关配置 前言 在elasticsearch\config目录下,有三个核心的配置文件: elasticsearch.yml,es相关的配置。 jvm.options,Java jvm相关参数的配置。 log4j2.properties,日志相关的配置,因为es采用了 ...
分类:
其他好文 时间:
2020-09-12 21:48:34
阅读次数:
36
常量池的项目类型 类 型 标 志 描 述 CONSTANT_Utf8_info 1 UTF-8编码的字符串 CONSTANT_Integer_info 3 整型字面量 CONSTANT_Float_info 4 浮点型字面量 CONSTANT_Long_info 5 长整形字面量 CONSTANT_ ...
分类:
其他好文 时间:
2020-09-10 22:32:26
阅读次数:
42