彭峰的博客
JVM运行时数据区域 JVM运行时数据区域
[toc] JVM运行时数据区域 每个线程:独立包括程序计数器、Java栈(虚拟机栈)、本地栈(Native Method Stack)。 线程间共享:堆、堆外内存(永久代或元空间、代码缓存) 栈是运行时的单位,而堆是存储的单位 栈解
2021-05-13
类文件加载子系统 类文件加载子系统
类文件加载子系统类的加载过程加载-> 验证 -> 准备 -> 解析 -> 初始化 加载阶段目的: 通过一个类的全限定名获取定义此类的二进制字节流 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 在内存
2021-05-12
Java代码执行流程 Java代码执行流程
Java代码执行流程Java源代码文件会被Java编译器解析成class的字节码文件。Java编译器会对.java文件进行词法分析和语法分析生成抽象语法树,进行语义分析生成注解语法树,最后通过字节码生成器生成字节码文件。 而字节码文件时可以
2021-05-11
Redis是否能用作消息队列 Redis是否能用作消息队列
Redis是否可以作为消息队列?关于Redis能不能做消息队列,主要是解决以下两个问题 能否保证消息不丢失 消息是否能够堆积使用List作为消息队列如果使用Redis作为消息队列,那么首先会使用List这个数据类型。生产者将数据放入Lis
2021-05-10
消息队列关注点 消息队列关注点
消息队列消息队列的关注点 消息不丢 消息可堆积 如何保证消息不丢?消息队列的三个组成部分:生产者、消息队列、消费者因此消息是否会发生丢失,在于以下三个环节 生产者会不会丢数据 消费者会不会丢数据 消息中间件会不会丢数据 生产者丢消息当
2021-05-10
Volatile关键字 Volatile关键字
VolatileVolatile的作用Volatile是JVM提供的轻量级的同步机制,主要有以下三个功能 保证可见性 不保证原子性 禁止指令重排Volatile如何实现可见性当某个线程修改了某个值以后,写入主内存。此时其他线程会被通知重新
2021-05-04
原子性操作的实现 原子性操作的实现
原子性操作的实现CPU原子性操作的实现使用总线锁保证原子性:总线锁就是使用处理器提供的一个LOCK#信号,当一个处理器在总线上输出此信号的时候,其他处理器的请求将会被阻塞住,那么该处理器就可以独享内存 通过缓存锁定来保证原子性:内存区域如果
2021-05-04
运维的价值 运维的价值
运维的价值核心价值 保证业务高质量不间断的对外服务 既要服务的好,又要运营成本最低 又稳又快又安全地让业务进行自我更新 阶段价值 业务起步阶段:整个团队要的是快速迭代功能,快速发布.此时运维的重点在于快速.帮助团队搭建更好更敏捷的研发,测
2021-05-04
Elasticsearch简介 Elasticsearch简介
Elasticsearch简介:Elasticsearch是一个基于Lucene,使用Java开发的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,而且基于RESTful web接口。 主要功能 海量数据的分布式存储以及集群管理 服
2021-05-03
4 / 24