相关优化手段:
内联、常量折叠、公共表达式消除、自动装箱消除、
热度代码、逃逸分析、锁消除、栈上分配、标量替换
数组边界检查消除 ...
volatile变量:
每次使用都会回主内存刷值
每次赋值都会同步到主内存
不会被指令重排序优化
特性:
原子性 read load assign use store write synchronized(lock unlock)
可见性 volatile synchronized final
有序性volatile synchronized
先行发生原则:
1.程序次序规则 同线程
2.管理锁定规则 lock unlock
3.volatile变量规则 不受指令重排序干扰,真是时间上也先行
4.线程启动规则start()在线程其他动作之前
5.线程终止规则 其他动作及Thread.join()在Threa.isAlive()终止检测之前
6.线程中断规则interrupt()在Thread.interruted()之前
7.对象终结规则对象初始化完成先于它的finalize()方法
8.传递性A先于B,B先于C,那么A先于C
数据:
1.不可变 final Integer String
2.绝对线程安全
3.相对线程安全 Vector HashTable Collections synchronizedCollection
4.线程兼容绝大多数
5.线程对立 Thread的resume 和 suspend 方法 System.setIn()和System.setOut()
线程安全实现方法
1.互斥同步 synchronized ReentrantLock(等待可中断,公平锁,绑定多条件)
2.非阻塞同步 TestAndSet
3.无同步方案 可重入代码(结果可预测) 线程本地存储(生成消费者 消费者 web TreadLocal)
锁优化
1.自旋锁与自适应自旋 -XX:PreBlockSpin 次数
2.锁消除
3.锁粗化
4.轻量级锁
5.偏向锁 -XX:+UseBiasedLocking
分享到:
相关推荐
Java 虚拟机学习笔记: Java 内存区域, 垃圾收集, 内存分配与回收策略, JVM 调优, 文件结构, 类加载机制, Java 程序 Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,...
### 学习笔记之Java虚拟机详解 #### 运行时数据区域概览 Java虚拟机(JVM)运行时数据区域主要包括以下几部分:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区以及运行时常量池。 1. **程序计数器**: -...
9. **JVM内部机制**:简述Java虚拟机的工作原理,包括类加载、内存管理、垃圾回收机制,有助于优化代码性能。 10. **泛型**:讨论Java泛型的使用,如何编写类型安全的代码,并理解其类型擦除的原理。 11. **枚举与...
Linux面试专题及答案+ActiveMQ消息中间件面试专题+Java基础面试题+MySQL性能优化的21个最佳实践+微服务面试专题及答案+深入理解java虚拟机+设计模式面试专题及答案+开源框架面试专题及答案+并发编程及答案+Spring...
Java以其“一次编写,到处运行”的特性赢得了全球程序员的喜爱,它的跨平台能力得益于Java虚拟机(JVM)。 接着,笔记会深入讲解Java的语法基础,如变量、数据类型、运算符、流程控制语句(如if、for、while)以及...
**JVM学习笔记(Java虚拟机)** Java虚拟机(JVM)是Java语言的核心组成部分,它是Java程序运行的平台,负责解释和执行字节码。深入理解JVM对于优化Java应用程序性能至关重要。本笔记将从以下几个方面详细介绍JVM:...
Synchronized是Java中的关键字,用于实现线程同步,它基于Java虚拟机的Monitor机制,通过对象头的锁状态来控制对共享资源的访问。当一个线程进入同步块时,会获取对象的锁,其他线程则需等待该锁被释放。 2. **可重...
### 深入Java虚拟机JVM类加载学习笔记 #### 一、Classloader机制解析 在Java虚拟机(JVM)中,类加载器(ClassLoader)是负责将类的`.class`文件加载到内存中的重要组件。理解类加载器的工作原理对于深入掌握JVM以及...
13. **JVM原理**:理解Java虚拟机的工作方式,包括类加载、内存管理和垃圾回收机制,有助于优化程序性能。 14. **Java 8及更高版本的新特性**:例如lambda表达式、Stream API、Optional类等,这些新特性使Java编程...
Java虚拟机(JVM)是Java程序运行的核心,它是一个抽象的计算机系统,负责执行Java字节码。在深入理解JVM之前,我们先要明白什么是字节码:Java源代码经过编译后生成的中间表示,即.class文件,里面包含的就是字节码...
8. **Java虚拟机(JVM)**:深入理解JVM的工作原理,包括内存管理、垃圾回收、类加载机制,对于优化程序性能和解决内存泄漏等问题大有裨益。 9. **设计模式**:笔记可能会涵盖常见的设计模式,如单例、工厂、观察者...
Java 并发学习笔记: 进程和线程, 并发理论, 并发关键字, Lock 体系, 原子操作类, 发容器 & 并发工具, 线程池, 并发实践 Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的...
### 瑜琅Java学习笔记概览 瑜琅的Java学习笔记涵盖了Java的基础概念与核心特性,从起源到高级特性均有涉及。以下是对该学习笔记各部分的深入解析: #### 1. Java起源 ##### 1.1 发展背景 - Java的诞生源于Sun ...
《JVM:深入理解Java虚拟机》是一本深入解析Java虚拟机工作原理和技术细节的经典书籍。这份学习笔记将涵盖JVM的关键概念、架构以及它如何影响Java程序的性能。我们将探讨以下几个方面: 1. **JVM概述** Java虚拟机...
《深入理解Java虚拟机》是Java开发者们深入探讨Java运行机制的经典之作,作者周志明以其深入浅出的讲解方式,揭示了Java虚拟机(JVM)的工作原理。本资源包含该书第三版的源码分析及学习笔记,旨在帮助读者更透彻地...
9. **Java虚拟机(JVM)**:Java程序被编译成字节码后,由JVM负责解释执行。JVM是Java平台的核心,它实现了跨平台的能力,并通过垃圾回收机制自动管理内存。 10. **Java标准库**:Java的API包含了大量预定义的类和...
本文将基于文档《Java并发编程与高并发解决方案-学习笔记***.pdf》中提供的内容,来详细阐述并发编程和高并发的基本概念、CPU多级缓存与缓存一致性、以及Java内存模型。 ### 并发与高并发概念 在现代多线程编程中...
Java语言具有跨平台性(Write Once, Run Anywhere),这是因为它具有JVM(Java虚拟机)的存在。任何操作系统上的JVM都可以运行相同的Java字节码,从而避免了针对不同平台编写不同代码的需要。 Java语言的另一特点是...
8. **JVM原理**:简要介绍Java虚拟机的工作原理,包括内存模型、类加载机制、垃圾收集器和调优策略。 9. **网络编程**:涉及Socket编程,讲解如何建立客户端和服务端通信,以及套接字和服务器套接字的使用。 10. *...