Kafka-Eagle搭建可视化工具 Kafka
集群三台机器
在Hosts文件中建立域名和IP的映射配置(方便解析): vim /etc/hosts
192.168.0.1 master
192.168.0.2 slave1
192.168.0.3 slave2
配置环境变量:vim /...
Centos安装mysql 8.0 Mysql
注意:本次安装目录为/opt/module/
下载mysql安装包
[root@chenxi module]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz
解压安装包
[root@chenxi module...
JVM栈帧内部结构-动态链接 Jvm
动态链接(或运行时常量池的方法引用):
每一个栈帧内部都包含一个指向运行时常量池中该栈帧所属方法的引用,包含这个引用的目的就是为了支持当前方法的代码能够实现动态链接(Dynamic Linking)。比如:invokedynamic指令
在Java源文件被编译到字节码文件时,所有的变量和方法引用都作为符号引用(Symbilic...
JVM指令集、类加载子系统介绍 Jvm
Jvm整体架构图:
Jvm指令集架构:
指令集架构分为两种:
1.基于栈的指令集架构(Java编译器是基于栈的指令集架构)。
2.基于寄存器指令架构。
栈的指令架构:
优势:跨平台、零地址指令、指令集更小、移植性高。(编译器更容易实现)
劣势:指令多,性能下降(实现同样的功能需要更多指令)
寄存器指令架构:
优势:性能优秀、执行效率高,指令少
劣势:移植性...
Synchronized底层实现原理 并发编程
synchronized介绍:
synchronized 关键字在多线程环境下作为线程安全的同步锁
synchronized作用:
1.同步代码块(当前对象锁[this] 或 自定义对象锁)
2.同步静态方法(当前类的Class实例,Class数据存在永久代中,该类全局锁)
3.同步非静态方法(当前对象锁)
同步代码块:
//...
JVM栈帧内部结构-局部变量表 Jvm
栈帧内部结构:
1) 局部变量表(Local Variables)
2) 操作数栈(Operand Stack)或表达式栈
3) 动态链接(Dynamic Linking)或指向运行时常量池的方法引用
4) 方法返回地址(Return Address)或方法正常退出或异常退出的定义
5) 一些附加信息
局部变量表(Local Variables):
局部变...
JVM栈帧内部结构-操作数栈 Jvm
基本概念:
操作数栈是基于数组的方式实现的。
在方法执行过程中,根据字节指令,往栈中写入(入栈/push)数据或提取(出栈/pop)数据。
某些字节码指令将值压入操作数栈,其余的字节码指令将操作数取出栈,使用它们后再把结果压入栈。(比如:复制,交换,求和等操作)
操作数栈主要用于保存计算过程的中...
Java内存模型-volatile可见性 Java基础
Java内存模型:
Java线程内存模型与CPU缓存模型类似,基于CPU缓存模型建立,Java线程内存模型是标准化的,用于屏蔽各种硬件和操作系统的内存访问差异。
主要分为三大模块: 线程、工作内存、主内存
Java内存模型数据原子操作:
read(读取) 从主内存读取数据
load(载入) 将主内存读取到的数据写入工作内存
us...
Java内存模型-volatile有序性 Java基础
/**
* @Description:Java内存模型-有序性
* @Author:chenxi
* @Date:2020/3/22
**/
public class JMMOrderTest {
private static int a, b = 0;
private static int x, y = 0;
publ...
JVM栈帧内部结构-方法返回地址 Jvm
方法返回地址(Return Address):
存放调用该方法的PC寄存器的值。
方法结束方式:
1) 正常结束
2) 出现未处理异常,非正常退出(通过异常完成出口退出的不会给他的上层调用者生产任何的返回值)
无论通过哪种方式退出,在方法退出后到该方法被调用的位置,方法正常退出时,调用者的PC计数器的值作为返回地址,即调用该方法的指令的下一条指令地址,而通过...