Never Give Up
06
17
JVM 常用工具 JVM 常用工具
1、基础故障处理工具Java开发人员肯定都知道JDK的bin目录中有java.exe、javac.exe这两个命令行工具,但并非所有程序员都了解过JDK的bin目录下其他各种小工具的作用。随着JDK版本的更迭,这些小工具的数量和功能也在不知
2022-06-17
16
双重检查锁定与延迟初始化 双重检查锁定与延迟初始化
1、双重锁定的由来在 Java 程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时程序员可能会采用延迟初始化。但要正确实现线程安全的延迟初始化需要一些技巧,否则很容易出现问题。比如,下面是非线程
2022-06-16
16
final 域的内存语义 final 域的内存语义
1、final域的重排序规则对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。 初次读一个包含final域的对象
2022-06-16
16
锁的内存语义 锁的内存语义
1、锁的释放-获取建立的happens-before关系锁是并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。 下面是锁释放-获取的示例代码: class MonitorExample
2022-06-16
15
原子操作的实现原理 原子操作的实现原理
原子(atomic)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation) 意味“不可被中断的一个或一系列操作”。在多处理上实现原子操作就变得有点复杂。看看处理器和Java中是如何实现原子操作的。 1、术语定义
2022-06-15
07
分布式总结 分布式总结
一.分布式理论1.分布式架构系统回顾1)分布式系统概念 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 俗的理解,所谓分布式系统,就是一个业务拆分成多个子业务,分布在不同的服务器节点
2022-06-07
06
HotSpot的算法细节实现 HotSpot的算法细节实现
一、根节点枚举我们以可达性分析算法中从GC Roots集合找引用链这个操作作为介绍虚拟机高效实现的第一个例子。固定可作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如栈帧中的本地变量表)中,尽管目标明确,
2022-06-06
06
JVM与Java体系结构 JVM与Java体系结构
一、前言 大部分Java开发人员,除会在项目中使用到与Java平台相关的各种高精尖技术,对于Java技术的核心Java虚拟机了解甚少。 一、程序员如何看待上层框架一些有一定工作经验的开发人员,打心眼里觉得SSM、微服务等上层技术才是重
2022-06-06
05
Java 常量池 Java 常量池
概述java 包括三种常量池,分别是 字符串常量池、Class 常量池(也叫常量池表)和运行时常量池。 字符串常量池(String Pool)String Pool 是 JVM 实例全局共享的,而 Runtime Constant Pool
2022-06-05
05
对象探秘 对象探秘
一、对象的创建Java是一门面向对象的编程语言,Java程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象通常(例外:复制、反序列化)仅仅是一个new关键字而已,而在虚拟机中,对象(文中讨论的对象限于普通Java对象,不包括数
2022-06-05
1 / 2