Java内存模型解析 定义并发编程中,需要处理两个关键问题: 线程之间如何通信 线程之间如何同步 通信指线程之间以何种机制来交换信息,线程之间的通信机制有两种:共享内存和消息传递。 同步指程序中用于控制不同线程间操作发生相对顺序的机制。 Java采用的是共享内存模型,Java线程之间的通信由Java内存模型(JMM)控制。Java内存模型的主要目的是定义程序中各种变量的访问规则。 主内存和本地内存JMM规定了线程之 2020-04-09 Java > Java并发 #Java #并发
Spring Cloud Alibaba Nacos 什么是Nacos Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。 Nacos的关键特性包括: 服务发现和服务健康监测 动态配置服务 动 2020-04-06 Java > Spring Cloud #Java #Spring Cloud #微服务
Java线程基础知识 进程与线程什么是进程操作系统在运行一个程序时,会为其创建一个进程,操作系统调度的最小单元是线程,也叫轻量级进程,在一个进程里可以创建多个线程,多个线程共享进程的堆和方法区两块内存空间。 进程和线程的区别 进程是操作系统进行资源分配的基本单位,而线程是操作系统进行调度的基本单位。 进程单独占有一定的内存地址空间,所以进程间存在内存隔离,数据是分开的,数据共享复杂但是同步简单,各个进程之间互不干扰; 2020-04-03 Java > Java并发 #Java #并发
JVM之字节码执行引擎(九) 字节码执行引擎执行引擎是JVM核心的组成部分之一,虚拟机是一个相对于物理机的概念,物理机的执行引擎是直接建立在存储器、缓存、指令集和操作系统上的,而虚拟机的执行引擎完全由软件自行实现。因此可以不受物理条件制约地定制指令集与执行引擎地结构体系。 执行引擎在执行字节码地时候,通常会有解释执行和编译执行两种选择。 运行时栈帧结构JVM以方法为最基本地执行单元,栈帧是用于支持JVM进行方法调用和方法执行背 2020-04-03 Java > JVM #Java #JVM
JVM之类加载机制(八) 类加载机制 JVM把Class描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为类加载机制。 类加载的时机类加载机制的整个生命周期将经历: 加载 验证 准备 解析 初始化 使用 卸载 其中验证,准备,解析三部分统称为连接。加载,验证,准备,初始化,卸载这五个阶段的顺序是确定的,而解析阶段则不一定,他在某些情况 2020-03-28 Java > JVM #Java #JVM
JVM之字节码指令(七) 字节码指令Java虚拟机的指令是由一个字节长度的,代表某种特定操作含义的数字(称为操作码,Opcode),以及跟随其后的零至多个代表此操作的参数,称为操作数(Operand)构成。由于Java虚拟机面向操作数栈而不是寄存器的架构,所以大多数指令都不包含操作数,只有一个操作码。指令参数存放在操作数栈中。 由于Java虚拟机操作码的长度为一个字节(0-255),这意味着指令集的操作码总数不能超过256 2020-03-27 Java > JVM #Java #JVM
JVM之类文件结构(六) 前言实现语言无关性的基础是虚拟机和字节码存储格式。Java虚拟机不与任何程序语言绑定,它只与Class文件这种特定的二进制文件格式所关联。Class文件中包含了Java虚拟机指令集,符号表以及若干其他辅助信息。 Class文件结构任何一个Class文件对应着唯一的一个类或者接口的定义信息,Class文件是一组以八个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列,中间没有任何分隔符,C 2020-03-26 Java > JVM #Java #JVM
JVM之内存分配策略(五) 内存分配与回收策略Java技术体系的自动内存管理,最根本性的目标是自动化解决两个问题:自动给对象分配内存,以及自动回收分配给对象的内存。 对象的内存分配,就是在堆上分配(也有可能经过JIT编译后被拆散为标量空间类型间接地在栈上分配),新生对象主要分配在新生代中,少数情况(大小超过阈值)会被分配在老年代,分配规则不固定,取决于当前使用的垃圾收集器与JVM参数设置。 对象优先在Eden分配大多数情况下 2020-03-25 Java > JVM #Java #JVM