E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
《深入理解Java虚拟机》
深入理解Java虚拟机
--java内存模型与线程
Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。Java内存模型规定了所有的变量都存储在主内存中。每条线程还有自己的工作内存,线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量。不同的线程之间也无法直接访问对方工作内存中的变量,线程间变量值得传递
Jerry_Fu24
·
2020-07-28 13:21
Java学习
JVM精华总结
深入理解JAVA虚拟机
学习笔记(一)JVM内存模型
近期在看一本很经典的java书籍:《
深入理解java虚拟机
第二版》,几年前也翻过,但那时候功力不够,不太
sweetfire
·
2020-07-28 12:51
深入理解java虚拟机
1----走进java
之前我们在学java的时候,理解过java的执行原理:编译+解释由java虚拟机编译的java变为与平台无关的字节码文件,在经java虚拟机解释成可运行的文件而且我也说过,他这个解释器也就是java虚拟机是一个很神秘的东西,因此有必要学一下理解了虚拟机之后,其实你就理解了程序是如何运行的了,怎么才能让java程序具有更高的并发性呢?java的技术体系:java程序设计语言+支撑java程序运行的虚
苦心した
·
2020-07-28 11:32
Java基础知识
深入理解Java虚拟机
之Java内存模型与线程
1概述除了充分利用计算机处理器的能力外,一个服务端同时对多个客户端提供服务则是另一个更具体的并发应用场景。衡量一个服务性能的高低好坏,每秒事务处理数(TransactionsPerSecond,TPS)是最重要的指标之一,它代表着一秒内服务端平均能响应的请求总数,而TPS值与程序的并发能力又有非常密切的关系。对于计算量相同的任务,程序线程并发协调得越有条不紊,效率自然就会越高;反之,线程之间频繁阻
striveb
·
2020-07-28 11:31
jvm
Java高效并发之锁优化(
深入理解Java虚拟机
学习笔记)
引言高效并发是从JDK1.5到JDK1.6的一个重要改进,HotSpot虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋(AdaptiveSpinning)、锁消除(LockElimination)、锁粗化(LockCoarsening)、轻量级锁(LightweightLocking)和偏向锁(BiasedLocking)等,这些技术都是为了在线程之间更高效地共享数据
ting说你跳
·
2020-07-28 11:47
JVM
Java与线程(
深入理解Java虚拟机
学习笔记)
线程的实现我们知道,线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度(线程是CPU调度的基本单位)。主流的操作系统都提供了线程实现,Java语言则提供了在不同硬件和操作系统平台下对线程操作的统一处理,每个已经执行start()且还未结束的java.lang.Thread类的实例就代表了一个线
ting说你跳
·
2020-07-28 11:47
JVM
Java内存模型(
深入理解Java虚拟机
学习笔记)
参考文章:深入理解Java内存模型(一)——基础主内存与工作内存Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量(Variables)与Java编程中所说的变量有所区别,它包括了实例字段、静态字段和构成数组对象的元素,但不包括局部变量与方法参数,因为后者是线程私有的,不会在线程之间共享,不会有内存可见性问题,也不受内
ting说你跳
·
2020-07-28 11:46
JVM
Java线程安全(
深入理解Java虚拟机
学习笔记)
Java语言中的线程安全我们已经有了线程安全的一个抽象定义,那接下来就讨论一下在Java语言中,线程安全具体是如何体现的?有哪些操作是线程安全的?我们这里讨论的线程安全,就限定于多个线程之间存在共享数据访问这个前提,因为如果一段代码根本不会与其他线程共享数据,那么从线程安全的角度来看,程序是串行执行还是多线程执行对它来说是完全没有区别的。为了更加深入地理解线程安全,在这里我们可以不把线程安全当做一
ting说你跳
·
2020-07-28 11:14
JVM
学习笔记之《
深入理解Java虚拟机
》---- 第五部分 高效并发
第12章Java内存模型与线程在处理器中,为了使得处理器内部的运算单元尽量被充分利用,处理器可能会对输入代码进行乱序执行优化,处理器会在计算之后将乱序执行的结果重组,保证该结果与顺序执行的结果是一致的,但并不保证程序中各个语句计算的先后顺序与输入代码中的顺序一致。与处理器的乱序执行优化类似,Java虚拟机的即时编译器中也有类似的指令重排序优化Java内存模型规定了所有的变量都存储在主内存中,每条线
成程晨
·
2020-07-28 11:47
Java虚拟机
学习笔记
《
深入理解java虚拟机
》之内存模型与安全
不同的平台,内存模型是不一样的,但是jvm的内存模型规范是统一的。其实java的多线程并发问题最终都会反映在java的内存模型上,所谓线程安全无非是要控制多个线程对某个资源的有序访问或修改。总结java的内存模型,要解决两个主要的问题:可见性和有序性。我们都知道计算机有高速缓存的存在,处理器并不是每次处理数据都是取内存的。JVM定义了自己的内存模型,屏蔽了底层平台内存管理细节,对于java开发人员
sjtu_chenchen
·
2020-07-28 11:24
《深入理解java虚拟机》
java
字符串常量池理解
以下是《
深入理解Java虚拟机
》第二版原文:对于HotSpot虚拟机,根据官方发布的路线图信息,现在也有放弃永久代并逐步改为采用NativeMemory来实现方法区的规划了,在目前已经发布的JDK1
胖子依然6
·
2020-07-28 11:08
【
深入理解Java虚拟机
】类加载机制
本文内容来源于《
深入理解Java虚拟机
》一书,非常推荐大家去看一下这本书。
山代王
·
2020-07-28 10:05
JAVA基础探讨
Java笔试面试题整理
Java内存模型——
深入理解Java虚拟机
Java虚拟机规范中试图定义一种Java内存模型来频闭掉各种硬件系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致性的内存访问效果。一.主内存与工作内存Java内存模型主要目标是定义程序中各个变量的访问规则,即在虚拟机种将变量储存到内存和从内存中取出变量这样的底层细节。Java内存模型:Java内存模型规定了所有的变量都存储在主内存中,与介绍物理硬件时的内存名字一样,两者可以互相类比
_Oracle
·
2020-07-28 10:09
深入理解Java虚拟机
JVM高级特性与最佳实践阅读总结——第三章垃圾收集器与内存分配策略
引用计数法:给对象添加引用计数器,每当有一个地方引用它时,计数器值加1,;引用失效则计数器值减一,任何计数值为0的对象就是不可能被使用的特点:简单高效,但不能解决对象之间的循环引用可达性分析算法:以GCRoots作为起点,从这些节点开始向下搜索,搜索路径称为引用链,当一个对象到GCRoots之间不存在引用链时,该对象就是不可用的可以用作GCRoots的对象,一般是全局性引用(2、3)和执行上下文(
WYCPhoenix
·
2020-07-28 10:01
Java虚拟机
java
jvm
深入理解Java虚拟机
JVM高级特性与最佳实践阅读总结—— 第十三章 线程安全与锁优化
线程安全,当多个线程访问同一个对象时,无论系统的调度方式、线程的交替执行方式、也不需要额外的同步手段、调用方法时不需要额外的协同,调用这个对象的都可以得到正确的结果按照线程安全的强弱,分为五大类1、不可变Immutable,不可变对象一定是线程安全的,对象的方法实现和调用都不需要同步;前提是不可变对象被正确创建(不发生this引用逃逸),事实不可变对象也是线程安全的;Java中,如果共享的数据是基
WYCPhoenix
·
2020-07-28 10:01
Java虚拟机
java
线程安全
优化
虚拟机
深入理解Java虚拟机
:(十)JVM是如何实现锁优化的?
一、线程安全在如今多核操作系统盛行的环境下,我们如何将我们的程序在计算机中正确且高效的运行?对于多核中出现高效并发的问题,我们如何保证并发的正确性和如何实现线程安全说起。这里引用下《JavaConcurrencyInPractice》的作者BrianGoetz对“线程安全”有一个比较恰当的定义:“当多个线程访问同一个对象时,如果不用考虑线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或
riemann_
·
2020-07-28 10:59
JVM
深入理解Java虚拟机
:(十一)Java语法糖详解
一、概述1、语法糖语法糖(Syntacticsugar),也译为糖衣语法,是由英国计算机科学家彼得·兰丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。我们所熟知的编程语言中几乎都有语法糖。笔者认为,语法糖的多少是评判一个语言够不够牛逼的标准之一。很多人说Java是一个“低糖语言”,其实从Java7开始Java
riemann_
·
2020-07-28 10:27
JVM
《
深入理解Java虚拟机
》笔记-内存分配与回收策略
对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程有现在TLAB上分配。少数情况下也会直接分配在老年代上。具体分配规则由垃圾收集器组合以及虚拟机中与内存相关参数决定。1.对象优先在Eden分配大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够的内存进行分配时,虚拟机将发起一次MinorGC;-XX:+PrintGCDetails在发生垃圾收集时打印内存回收日志;
qr457535344
·
2020-07-28 10:22
Java
《
深入理解Java虚拟机
》第三版 第二章(1)
《
深入理解Java虚拟机
》第三版第二章(1)与C、C++不同,Java在虚拟机内存管理机制之下,无需承担对每一个对象的维护控制,内存泄漏和溢出问题并不严重,但也正是因为把内存存取权力交给虚拟机,一旦出现内存存取或溢出问题
LinJiangW
·
2020-07-28 10:22
深入理解java虚拟机
(一)之JVM概述
JVM(一)JVM概述计算机系统中JVM所处的位置什么是java虚拟机(JVM)?JVM体系结构概览JVM生命周期1.启动2.执行3.退出各种JVMJVM概述计算机系统中JVM所处的位置JVM是运行在操作系统之上的,并没有和硬件有直接的交互什么是java虚拟机(JVM)?java虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处
是鹿鸣啊
·
2020-07-28 08:44
JVM
深入理解Java虚拟机
:JVM高级特性与最佳实践(第2版)读书笔记-----(个人记录欢迎指出错误---仅为学习记录)
目录类加载器-不是同一个类加载器加载的类不同<clinit>()方法执行时机接口的解析解析2-字段解析解析1-类和接口的解析解析动作的目标和关键字invokedynamic指令动态解析的特点字节码验证中的部分工作验证之字节码验证的目的元数据验证可能的验证点验证阶段之元数据验证的目的验证阶段之文件格式验证的目的验证阶段之文件格式验证验证阶段的重要性数组组件类加载非数组类与数组类加载类加载阶段需要完成
小小龙A
·
2020-07-28 08:04
深入理解Java虚拟机
(第二版)
深入理解Java虚拟机
阅读笔记第一章1.2java技术体系第二章Java的内存区域与内存溢出异常2.2运行时数据区域2.2.1程序计数器2.2.2Java虚拟机栈2.2.3本地方法栈2.2.4Java堆
qq_41017546
·
2020-07-28 08:47
阅读
《
深入理解Java虚拟机
》第一章 走进Java
第一章走进Java1.2Java技术体系JDK:Java程序设计语言、Java虚拟机、JavaAPI类库,是支持Java程序开发的最小环境。JRE:JavaSEAPI子集和Java虚拟机,是支持Java程序运行的标准环境。Java技术体系分为四个平台:JavaCard:支持一些Java小程序运行在小内存设备上的平台。JavaME:支持Java程序运行在移动终端上的平台。JavaSE:支持面向桌面级
cqmike0315
·
2020-07-28 08:45
技术进阶:
深入理解Java虚拟机
,Java与线程
1.线程的三种实现方式1.1使用内核线程实现实现方式内核线程就是直接由操作系统内核支持的线程。这种线程由内核来完成线程切换,内核通过操纵调度器对线程进行调度,并负责将线程的任务映射到各个处理器上。每个内核线程都可以看做是内核的一个分身,这样的操作系统就由能力同事处理多件事情,支持多线程的内核就叫做多线程内核(Muliti-ThreadsKernel)。程序一般不会直接去使用内核线程,而是去使用内核
Java-飞鱼
·
2020-07-28 08:33
java
深入理解Java虚拟机
一、JVM运行时数据区域线程隔离:线程隔离的意思,就是给不同的线程多分配的资源用,以做到不争用线程共享:线程共享就是资源只有一个没有办法分配更多,只能共享Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、本地方法栈、堆、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区。程序计数器,虚拟机栈,本地方法栈,随线程而生,线程亡而亡1.1程序计数器程序计数器是一块
Z_DZ
·
2020-07-28 07:26
jvm
深入理解Java虚拟机
(第三版)学习笔记
深入理解Java虚拟机
_学习笔记第一部分走近Java第1章走近Java1.1Java技术体系第二部分自动内存管理第2章Java内存区域与内存溢出异常2.1运行时数据区域2.1.1程序计数器(ProgramCounterRegister
博博博啊
·
2020-07-28 07:13
学习笔记
深入理解Java虚拟机
----第一章:走进Java
目录第一章:走进Java第二章:Java内存区域与内存溢出异常第三章:垃圾收集器与内存分配策略第四章:虚拟机性能监控与故障处理第五章:调优案例分析与实战第六章:类文件结构第七章:虚拟机类加载机制第八章:虚拟机字节码执行引第九章:类加载及其执行子系统的案例与实战第十章:早期(编译器)优化第十一章:晚期(运行期)优化第十二章:Java内存模型与线程第十三章:线程安全与锁优化第一章:走进Java1.1j
Younger_zeng
·
2020-07-28 07:48
java
JVM虚拟机
JVM内存模型
JVM内存模型正如阅读《
深入理解Java虚拟机
》一书看到的:(C/C++)墙外的人想进来,(Java)墙内的人想出去。那么我们来看看,Java怎么围起来的这道墙?
薛云龙
·
2020-07-28 06:41
深入理解Java虚拟机
学习JVM的好处学习JVM,主要为了线上进行JVM优化,让程序在虚拟机上跑得更快一些,调优主要调运行时数据区的堆标题JVM由三个子系统构成类加载器子系统运行时数据区(内存结构)执行引擎执行的具体流程:java编译后的.class文件,通过类加载器子系统加载到运行时数据区(内存),由执行引擎去执行,将字节码文件(.class文件)翻译成机器码,由硬件执行运行时数据区(内存结构)线程共享:方法区、堆(
zhangchen_ji
·
2020-07-28 06:43
JVM
Java
JVM
虚拟机
Java虚拟机
原理
深入理解java虚拟机
第一章:走近java
本章主要讲的是java语言的发展历程,1996年才有的java(我94),09年4月,在jdk1.7刚出来两个月sun公司到被orcal收购了。其中java开源后有个openJDK的组织管理这些源码,openJDK和jdk1.7除了注释不同,其它基本一样。虚拟机从1.3开始默认使用hotSpot虚拟机,是一个小公司开发的,被sun公司看中了,然后就收购了这个,高手在民间啊这是,其它的也都不重要了。
晚上爱摆摊的码农
·
2020-07-28 06:06
面试宝典
深入理解java虚拟机
笔记(一)-java内存区域与内存溢出
1.前言这是
深入理解java虚拟机
一书的笔记,来自第二章。因为这本书讲的比较深奥,这是第二次看,需要记录一下笔记。2.运行时数据区域java虚拟机所管理的内存分为以下几个区域。
_StriveG
·
2020-07-28 05:04
Java
[
深入理解Java虚拟机
]第十二章 Java内存模型与线程-Java内存模型
Java虚拟机规范中试图定义一种Java内存模型(JavaMemoryModel,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。在此之前,主流程序语言(如C/C++等)直接使用物理硬件和操作系统的内存模型,因此,会由于不同平台上内存模型的差异,有可能导致程序在一套平台上并发完全正常,而在另外一套平台上并发访问却经常出错,因此在某些场景
Coding-lover
·
2020-07-28 05:52
jvm
[
深入理解Java虚拟机
]第十三章 线程安全与锁优化-线程安全
概述在软件业发展的初期,程序编写都是以算法为核心的,程序员会把数据和过程分别作为独立的部分来考虑,数据代表问题空间中的客体,程序代码则用于处理这些数据,这种思维方式直接站在计算机的角度去抽象问题和解决问题,称为面向过程的编程思想。与此相对的是,面向对象的编程思想是站在现实世界的角度去抽象和解决问题,它把数据和行为都看做是对象的一部分,这样可以让程序员能以符合现实世界的思维方式来编写和组织程序。面向
Coding-lover
·
2020-07-28 05:52
jvm
java
并发
[
深入理解Java虚拟机
]第十二章 Java内存模型与线程-Java与线程
并发不一定要依赖多线程(如PHP中很常见的多进程并发),但是在Java里面谈论并发,大多数都与线程脱不开关系。既然我们这本书探讨的话题是Java虚拟机的特性,那讲到Java线程,我们就从Java线程在虚拟机中的实现开始讲起。线程的实现我们知道,线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度
Coding-lover
·
2020-07-28 05:52
jvm
java
并发
[
深入理解Java虚拟机
]第十三章 线程安全与锁优化-锁优化
高效并发是从JDK1.5到JDK1.6的一个重要改进,HotSpot虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋(AdaptiveSpinning)、锁消除(LockElimination)、锁粗化(LockCoarsening)、轻量级锁(LightweightLocking)和偏向锁(BiasedLocking)等,这些技术都是为了在线程之间更高效地共享数据,以
Coding-lover
·
2020-07-28 05:52
java
并发
jvm
[
深入理解Java虚拟机
]第七章 类加载的过程
接下来我们详细讲解一下Java虚拟机中类加载的全过程,也就是加载、验证、准备、解析和初始化这5个阶段所执行的具体动作。加载“加载”是“类加载”(ClassLoading)过程的一个阶段,希望读者没有混淆这两个看起来很相似的名词。在加载阶段,虚拟机需要完成以下3件事情:1)通过一个类的全限定名来获取定义此类的二进制字节流。2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。3)在内存中
Coding-lover
·
2020-07-28 05:51
jvm
深入理解JAVA虚拟机
第一章--走近JAVA
深入理解java虚拟机
系列每礼拜天更新一次,大家感兴趣的可以关注一下呦~第一章的内容感觉还是挺多的,不过翻一下感觉都是讲一些java的特点,历史,然后一些奇奇怪怪的公司什么的。。。
秋千不会坠
·
2020-07-28 04:07
深入理解java虚拟机
学习笔记
[JVM]java虚拟机运行时数据区域--程序计数器、虚拟机栈和本地方法栈
内容来自《
深入理解java虚拟机
》一.运行时数据区域注意共享方法区和堆。但是线程私有的程序计数器,虚拟机栈,本地方法栈1
pmdream
·
2020-07-28 04:04
jvm
深入理解java虚拟机
(一)
前言本篇主要讲述java内存区域的划分。下面直接进入正题。概述java虚拟机就是在真实物理机上虚拟出来的一台计算机,java语言有一个特点就是可以跨平台,其中jvm起着关键作用。这是因为它屏蔽与平台相关的信息,java源文件经过编译程序编译后生成字节码文件。然后由jvm解释执行成可以被计算机识别的机器指令。在jvm运行过程,我们经常会遇到内存溢出或者是内存泄露的情况,所以有必要了解jvm的内存结构
偏花逐流水
·
2020-07-28 04:00
JVM
《
深入理解JAVA虚拟机
》学习笔记(二)
前几天看了周志明的这本书,记录一个大纲,用以复习和备忘。一、类的生命周期从被加载到卸载,包括7个阶段:加载、验证、准备、解析、初始化、使用、卸载(loading,verification,preparation,resolution,initialization,using,unloading),其中验证、准备、解析统称为“连接”(Linking)。加载、验证、准备、初始化和卸载的顺序是确定的,解
Jdfohewk
·
2020-07-28 03:09
JAVA
【
深入理解Java虚拟机
】读后感:JVM垃圾回收小结
JVM垃圾回收小结1.GC问题侧重点虚拟机栈、本地方法栈、程序计数器随线程而生,随线程而灭。栈中的栈帧随方法的进入和退出而有条不紊地执行着出栈与入栈操作,每个栈帧分配多少内存基本是在类结构确定下来时就已知了(尽管运行期会有JIT编译器进行一些优化)。所以这几个区域的内存分配和回收都具备确定性,不用过多地考虑回收问题,方法结束或线程结束,内存就自然随之回收了,而Java堆和方法区则不一样,我们只有在
冉椿林博客
·
2020-07-28 02:12
程序员技能
深入理解java虚拟机
第十二章
第十一章Java内存模型与线程一Java内存模型1.主内存与工作内存Java内存模型规定了所有的变量都存储在主内存中。每条线程还有自己的工作内存,线程的工作内存保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量。主内存主要对应于Java堆中的对象实例数据部分,而工作内存则对应于虚拟机栈中的部分区域。2.volatile变量volat
llcream
·
2020-07-28 02:28
java虚拟机
《
深入理解java虚拟机
》 第八章 虚拟机字节码执行引擎
概述执行引擎是java虚拟机最核心的组成部分之一。在java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,这个概念模型称为各种虚拟机执行引擎的统一外观(Facade):输入的是字节码文件处理过程是字节码解析的等效过程输出的是执行结果运行时栈帧结构栈帧(StackFrame)是用于支持虚拟机进行方法调用和方法执行的数据结构,是vm运行时数据区中的虚拟机栈(VirtualMachineStack)
lik_lik
·
2020-07-28 02:36
笔记
jvm
java
深入理解jvm
深入理解Java虚拟机
第三版,总结笔记【随时更新】
最近一直在看《
深入理解Java虚拟机
》第三版,无意中发现了第三版是最近才发行的,听说讲解的JDK版本升级,新增了近50%的内容。
耶low
·
2020-07-28 01:34
一篇
Java进阶
JVM——Java内存区域
《
深入理解Java虚拟机
》学习笔记运行时数据区域image程序计数器当前线程执行的行号指示器。
双核孤城
·
2020-07-28 01:25
深入理解java内存模型03-顺序一致性
深入理解java内存模型-学习笔记
深入理解java虚拟机
JSR133转载自并发编程网本文链接地址:深入理解Java内存模型未正确同步的程序会表现出出人意料的行为程序中用到了局部变量r1和r2,以及共享变量
伊布拉西莫
·
2020-07-28 00:29
虚拟机
深入理解java虚拟机
——线程安全与锁优化
1.线程安全当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象时线程安全的。线程安全的“安全程度”由强到弱来排序,我们可以将Java语言中各种操作共享的数据分为以下5类:1.不可变:不可变的对象一定是线程安全的,无论是对象的方法实现还是方法的调用者,都不需要再采取
ice__cookie
·
2020-07-28 00:30
JVM
深入理解java虚拟机
(一)—jvm内存模型总结
本猿2013年毕业,到现在已经有五年了,虽然一直从事java工作,但是一直是写业务代码,设计业务产品那种,工作节奏比较散漫,最近才深深的感觉到我的能力跟毕业一两年的没多少差别,刚好最近工作闲了下来,开始看别人的一些博客,看了一些感悟,真的很受打击,不信你们看看,原来不知不觉我已经沦为不思进取,不求上进的人了http://www.zuoxiaolong.com/html/article_184.ht
跟着太阳奔跑
·
2020-07-27 23:24
深入理解java虚拟机
《
深入理解Java虚拟机
》学习笔记(7)--Java内存模型与线程
为了解决CPU与内存之间速度不匹配的问题,会CPU和内存之间加入一个高速缓存(Cache)。对于多核(即多个CPU)系统,每个CPU都会有自己的高速缓存。基于高速缓存的存储交互很好地解决了处理器与内存的速度矛盾,但是也引入了新的问题:缓存一致性,即多个CPU共享同一个主内存,会把主内存的数据缓存到各自的高速缓存中,当各CPU的高速缓存中的数据不一致时,以哪个高速缓存中的数据为准呢?为了解决一致性的
halfclear
·
2020-07-27 23:20
java
深入理解Java虚拟机
(2) - 根搜索算法
这个系列文章是对《
深入理解Java虚拟机
》一书的笔记及个人理解垃圾收集(GarbageCollection,GC)需要完成三件事件1、哪些内存需要回收?2、什么时候回收?3、如何回收?
死牛胖子的技术随笔
·
2020-07-27 22:49
JVM
上一页
20
21
22
23
24
25
26
27
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他