六、本地方法接口和本地方法栈
本地方法接口 简单地讲,一个Native Methodt是一个Java调用非Java代码的接囗。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它...
七、堆
堆(Heap)的核心概述 堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM,但是进程包含多个线程,他们是共享同一堆空间的。 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心...
Map.getOrDefault()
该方法是根据Map集合的key获取value,如果key不存在,就使用默认值。 代码演示: Map<String, Map> testMap = new HashMap<>(); Map<String,String> map = null; if(testMap.containsK...
volatile
volatile关键字仅能用来修饰变量,能用来保证变量在线程间的可见性,同时能避免指令重排保证有序性,但是不能保证原子性。 有以下代码: /** * @Author shenxy * @Date 2022/7/24 17:57 * @Vers...
Stream流List转成Map的几种方式
实体: public class Person { private String name; private String skill; public Person(String name, String skill) { this.name = name; this.skill= skill; } public String getName() { ...
一、JVM与Java体系结构
尚硅谷JVM课程学习笔记,课程来源:尚硅谷宋红康JVM教程 字节码 我们平时说的java字节码,指的是用java语言编译成的字节码。准确的说任何能在jvm平台上执行的字节码格式都是一样的。所以应该统...
Canal
一、简介 项目背景:早期,阿里巴巴 B2B 公司因为存在杭州和美国双机房部署,存在跨机房同步的业务 需求,从 2010 年开始,阿里开始逐步尝试基于数据库的日志解析,获取增量变更进行同步, 由此...
二、类加载子系统
类加载器子系统作用 类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Eng...
Centos7安装jdk1.8
下载jdk tar.gz格式压缩包 下载地址:https://www.oracle.com/java/technologies/downloads/#java8 找到1.8版本的jdk jdk-8u271-linux-x64.tar.gz 上传到服务器并解压压缩包 tar -zxvf jdk...
三、运行时数据区概述及线程
运行时数据区概述 1. 前言 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段 当我们通过前面的:类的加载 –> 验证 –> 准备 –> 解析 –> 初始化,这几个...