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虚拟机》
为什么Volatile可以实现操作的可见性(《
深入理解Java虚拟机
》笔记)
在java的内存模型中有区分为主内存和工作内存,Java内存模型规定所有变量存储在主内存中,每条线程都有自己的工作内存。image.png而主内存和工作内存之间的交互分为8个原子操作分别是lock,unlock,read,load,assign,use,store,write。“lock(锁定):作用于主内存的变量,它把一个变量标识为一条线程独占的状态。unlock(解锁):作用于主内存的变量,它
AndyWei123
·
2021-06-19 05:26
BiBi - JVM -12- 运行期优化
From:
深入理解Java虚拟机
目录BiBi-JVM-0-开篇BiBi-JVM-1-Java内存区域BiBi-JVM-2-对象BiBi-JVM-3-垃圾收集算法BiBi-JVM-4-HotSpotJVMBiBi-JVM
奋飞的蜗牛ing
·
2021-06-15 03:06
BiBi - JVM -3- 垃圾收集算法
From:
深入理解Java虚拟机
目录BiBi-JVM-0-开篇BiBi-JVM-1-Java内存区域BiBi-JVM-2-对象BiBi-JVM-3-垃圾收集算法BiBi-JVM-4-HotSpotJVMBiBi-JVM
奋飞的蜗牛ing
·
2021-06-12 12:54
深入理解Java虚拟机
3:垃圾收集器举例
在Java虚拟机中垃圾收集算法并不是一成不变的,除了新生代和老年代分别有适合自己的算法,用户也可以根据自己的应用特点和业务需求来设置新生代和老年代所使用的垃圾收集算法,下面就来仔细介绍HotSpot虚拟机所使用的垃圾收集器。HotSpot的垃圾收集器上图中就是HotSpot中在新生代(Younggeneration)和老年代(Tenuredgeneration)中可用的垃圾收集器,其中的连线表示这
tommy990607
·
2021-06-11 07:53
Java内存区域与内存溢出异常
众所周知,《
深入理解Java虚拟机
》是Java开发人员的必修基础书,亡羊补牢,为时不晚,是时候捧起书来好好学一学了。本章知识点本章是《
深入理解Java虚拟机
》的第二章知识梳理,主要内容有
ccoke
·
2021-06-09 15:11
java内存溢出问题(工作中常用、面试中常问的一个知识点)
这篇文章整理自《
深入理解java虚拟机
》。因为内存溢出问题不仅是工作中的一个重要方面,而且面试中也是经常问。
愚公要移山
·
2021-06-09 12:39
2019-02-12——Java 的书籍
《Java编程思想第4版》《Java核心技术第10版》《
深入理解Java虚拟机
第2版》《Java并发编程实战》《算法》《算法导论》《深入理解计算机系统》《操作系统》《编译原理》《计算机组成原理》《计算机网络
烟雨乱平生
·
2021-06-08 03:09
深入理解Java虚拟机
_JVM高级特性与最佳实践
深入理解Java虚拟机
_JVM高级特性与最佳实践image.pnghttps://sn9.us/file/9066129-409570937
东风古剑
·
2021-06-06 15:43
BiBi - JVM -5- 垃圾回收器
From:
深入理解Java虚拟机
目录BiBi-JVM-0-开篇BiBi-JVM-1-Java内存区域BiBi-JVM-2-对象BiBi-JVM-3-垃圾收集算法BiBi-JVM-4-HotSpotJVMBiBi-JVM
奋飞的蜗牛ing
·
2021-06-06 06:57
BiBi - JVM -6- 回收策略
From:
深入理解Java虚拟机
目录BiBi-JVM-0-开篇BiBi-JVM-1-Java内存区域BiBi-JVM-2-对象BiBi-JVM-3-垃圾收集算法BiBi-JVM-4-HotSpotJVMBiBi-JVM
奋飞的蜗牛ing
·
2021-06-06 03:21
OOM异常
声明:此篇文章是读《
深入理解JAVA虚拟机
》的笔记 OOM即OutOfMemoryError,是程序员常见的异常类型,那么常见的OOM异常的场景有哪些呢?
cooolboy
·
2021-06-05 21:40
【
深入理解java虚拟机
】类加载机制
类加载过程类从被加载到虚拟机内存中开始,到卸载为止,整个生命周期为:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(Unloading);其中验证、准备、解析3个部分统称为连接。类加载过程.png加载这是虚拟机类加载的第一个阶段,需要完成以下三件事情:通过一个类
Gillben
·
2021-06-05 00:48
Java学习
集合框架网络RMISQL上图来自Java征途:行者的地图基础书籍Java并发编程实战实战Java高并发程序设计Effectivejava中文版(第2版)HeadFirst设计模式(中文版)JVM及性能优化
深入理解
唯我楼兰
·
2021-06-04 19:35
深入理解java虚拟机
-JVM高级特性和最佳实现(四)——类加载机制
每篇一叶前言上回说到垃圾收集机制和内存分配,这回咱们来了解下虚拟机类加载机制。“代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步”基本概念类加载周期加载、验证、准备、解析、初始化、使用、卸载类的生命周期虚拟机规范中规定有且只有5种情况必须立即对类进行初始化。1).遇到new,getstatic,putstatic,invokestatic这4条字节码指令时,
湖面的舟
·
2021-06-04 12:54
走进JVM(一) JVM内存区域划分
所有JVM系列的内容都是阅读《
深入理解JAVA虚拟机
》提炼概括的,本人功力尚浅,处于学习阶段,目前JDK9在测试之中。这段期间JVM技术也在发展,可能有些内容
付存
·
2021-06-03 23:27
深入理解Java虚拟机
读书笔记 三
垃圾回收需要解决的三个问题是:哪些内存需要回收何时回收如何回收哪些内存需要回收对于Java内存运行时区域,程序计数器\虚拟机栈\本地方法栈三个部分是线程私有的,随线程而生,随线程而灭.因此这几个区域的内存分配和回收都具有确定性,当方法或者线程结束时,内存会自然回收.因此通常指的垃圾回收是针对堆和方法区两个部分:只有运行时,才能知道究竟会创建哪些对象,创建多少个对象,分配和回收是动态的.确定了回收的
寻找傅里叶
·
2021-05-30 16:39
深入理解Java虚拟机
:类加载过程
Java类加载主要参考书籍《
深入理解Java虚拟机
》一、概述虚拟机的类加载机制:Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的
甜酒SweetWine
·
2021-05-29 15:40
【数据结构-Java】平衡二叉树(AVL树)
本博客主要参考周志明老师的《
深入理解Java虚拟机
》第三版欢迎指出文章的不足之处;更多内容请点进爱敲代码的小游子查看文章目录1、基本介绍2、应用案例-单旋转(左旋转)1)数列2)思路分析3)代码3、应用案例
小游子YKY
·
2021-05-27 23:30
数据结构与算法
数据结构
java
二叉树
算法
Java培训进阶书籍推荐,赶快收藏起来!
《
深入理解Java虚拟机
》这是一部从工作原理和工程实践两个维度深入剖析JVM的著作,是计算机领域公认的经典,繁体版在台湾也颇受欢
千锋教育qyf
·
2021-05-26 18:18
java
java
JDK编译以及在CLion中进行源码调试(抄书+踩坑记录)
1、写在前面最近在看《
深入理解Java虚拟机
》一书,其中第一章有个实验,叫“自己编译JDK”,在做这个实验的过程中,踩了点坑,因此写篇博客记录下2、环境准备首先准备一个linux环境,其它环境也可以,不过不在本博客介绍范围内
AlaGeek
·
2021-05-26 14:45
Java学习
java
虚拟机
CLion
linux
jdk
深入理解JAVA虚拟机
学习笔记17——字节码指令1(加载和存储)
一个忙碌的周末又过去了,时间不能阻止我们前进的脚步,每天进步一点点!上一篇在方法体中,方法体被编译成了指令,我们已经初步了解了每条字节码指令占用一个字节,大概有200余种字节码指令。虚拟机的解释器的工作流程大致如下图伪代码所示。对于这么多字节码命令,可以分为几个部分。一.加载和存储指令:用于将数据在局部变量表和操作数栈之间传输。1、将一个局部变量加载到操作栈:iload、iload_<n>、llo
徐可心
·
2021-05-20 03:32
深入理解Java虚拟机
读书笔记二、自动内存管理
文章目录自动内存管理一、Java内存区域与内存溢出异常1、运行时数据区域1.1、程序计数器1.2、Java虚拟机栈1.3、本地方法栈1.4、Java堆1.5、方法区1.6、运行时常量池1.7、直接内存2、HotSpot虚拟机对象探秘2.1、对象的创建2.2、对象的内存布局2.3、对象的访问定位2.4、实战:OutOfMemoryError异常2.4.1Java堆溢出2.4.2虚拟机栈和本地方法栈溢
小宇哥x
·
2021-05-18 19:21
深入理解Java虚拟机读书笔记
自动内存管理
Java内存区域与内存溢出异常
垃圾收集器与内存分配策略
调优案例分析与实战
虚拟机性能监控
故障处理工具
《
深入理解Java虚拟机
》读书笔记之——HotSpot的算法实现
1.1枚举根节点在HotSpot的实现中,利用OopMap数据结构来记录对象内什么偏移量是什么类型的数据之类的,JIT编译的时候也会记录。GC扫描的时候去扫描OopMap就可以了,而无需一个不漏地检查完所有执行上下文和全局的引用位置。1.2安全点安全点:大多数垃圾收集器进行gc的时候,需要进行stoptheworld,停止jvm所有的线程,只有所有线程都到达这个点的时候,才可以进行gc,这个点就是
湾湾_a434
·
2021-05-18 12:22
读书笔记-《
深入理解Java虚拟机
》-对象探秘
版权声明:本文来自Crocutax的博客,转载请注明出处http://www.crocutax.comJava是一门面向对象编程的语言,在Java程序运行过程中无时无刻都有对象被创建出来,那么在虚拟机层面,对象的创建到底涉及哪些方面?下面就从以下3个方面来了解下【对象】:对象的创建对象的内存布局对象的访问定位对象的创建我们一般创建对象都是通过new的方式,而虚拟机在遇到一条new指令时,首先会去检
王西文
·
2021-05-18 02:09
[JVM]理解GC日志
深入理解Java虚拟机
[JVM]Java内存区域与垃圾收集-思维导图[JVM]类加载机制-思维导图[JVM]OOM实例分析[JVM]理解Class文件(1):手动解析常量池[JVM]理解GC日志[JVM
伤口不该结疤
·
2021-05-18 02:18
mac下编译OpenJDK10
OpenJDK是与OracleJDK最接近的开源jdk,周志明老师在《
深入理解JAVA虚拟机
》第一章就建议大家自己编译下OpenJDK的源码,最近遇到JVM相关的一些问题,又心血来潮的想试试。
Acamy丶
·
2021-05-17 21:47
深入理解Java虚拟机
(二)类的加载过程
本篇文章主要介绍一下虚拟机是如何进行类加载的以及进行类加载的加载器的工作原理。一、类加载过程Java的类加载过程分为三个主要步骤:加载、链接、初始化。图11.加载将class二进制文件加载到内存中,通过一个类的全限定名来获取定义此类的二进制字节流。在加载过程中虚拟机将字节流所代表的静态存储结构转化为方法区的运行时数据结构。在java堆中生成一个代表这个类的java.lang.Class对象,做为方
yfsheng
·
2021-05-13 13:47
Windows 10 + WSL(ubuntu 20.04) + CLion 编译JDK12
1.编译JDK参考:《
深入理解Java虚拟机
(第三版)》ubuntu20.04.2环境下openjdk12源码编译相关问题Tips&Tricks:DevelopOpenJDKinCLionwithPleasure
砖头23333
·
2021-05-12 17:43
笔记
java
jdk
wsl
CLion
深入理解java虚拟机
(一)
Java程序员除了需要写基本的业务代码外,服务性能调优的能力也是一个很重要的能力。谈到性能调优不得不让人首先想到的就是java虚拟机(JVM)相关的问题了。下面将会分几个专题介绍一下jvm相关的理论知识。一、JVM内存模型在Java中,JVM内存模型主要分为堆、程序计数器、方法区、虚拟机栈和本地方法栈。图1JVM内存模型1.堆(JavaHeap)对于java应用程序来说,Java堆是虚拟机所管理的
yfsheng
·
2021-05-12 16:12
学弟学妹们,如果你想吃透 Java字节码的话,看这篇就好了!(超级硬核,建议收藏)
不知道大家有没有这种感觉,就是一开始学习编程的时候,真心不想看底层的东西,就想直接上来撸代码,但时间久了以后,总感觉缺点啥~~~~于是我开始阅读《深入理解计算机系统》、《图解TCP/IP》、《
深入理解Java
沉默王二
·
2021-05-12 15:08
趣学Java
反编译
编程语言
java
jvm
jdk
BiBi - JVM -10- 虚拟机字节码
From:
深入理解Java虚拟机
目录BiBi-JVM-0-开篇BiBi-JVM-1-Java内存区域BiBi-JVM-2-对象BiBi-JVM-3-垃圾收集算法BiBi-JVM-4-HotSpotJVMBiBi-JVM
奋飞的蜗牛ing
·
2021-05-11 18:52
深入理解java虚拟机
读书笔记,第六章:类文件结构
6.1概述计算机只能识别0和1虚拟机以及建立在虚拟机上语言的出现,使编写的程序编译成二进制本地机码(nativecode)非唯一选择,越来越多编程语言选择了与操作系统和机器指令集无关、平台中立的格式作为程序编译后的存储格式6.2无关性的基石虚拟机可以载入和执行同一种平台无关的字节码各种平台不同的虚拟机和各个平台统一使用的程序存储格式-字节码(Bytecode),是平台无关性的基石虚拟机一种中立特性
cremin
·
2021-05-11 18:08
深入理解JAVA虚拟机
学习笔记5——垃圾回收算法
话不多说,直接上内容,书中介绍了四种算法。1.标记-清除算法:这是最基础的算法,后续的算法都是在此算法基础上做出的改进。该算法包括两个过程:标记——将对象回收状态进行标记,这个在以前的笔记中已经做了介绍,这里不再赘述。清除——回收的时候直接将标记为可回收的对象清除。缺点:1.1效率问题:标记和清除两个过程的效率都不高;1.2.空间问题:从图中可以看出,回收之后的内存上产生了大量不连续的内存碎片,过
徐可心
·
2021-05-11 10:30
Java内存模型小析
之前看过一次周志明写的《
深入理解Java虚拟机
-JVM高级特性与最佳实践》但是看过之后很多东西就忘了如同失忆了一般,所以这次在看的时候做一个读书笔记,以后也便于复习。
木叶之荣
·
2021-05-11 09:16
Java学习
1.总览2.书籍推荐2.1基础部分
深入理解Java虚拟机
:JVM高级特性与最佳实践(第2版)Java并发编程的艺术Netty权威指南(第2版)2.2应用部分JavaEE开发的颠覆者:SpringBoot
程序不原
·
2021-05-11 01:07
再见,2017
JVM:通过仔细阅读《
深入理解Java虚拟机
》这本书,对JVM有了一个比较清晰的认识。Java并发:通过《Java并发编程的艺术》,以及JDK中相关部分的源码,对并发也有了一个比较深入的了解Java
AlstonWilliams
·
2021-05-09 09:33
Java内存模型JMM,虚拟机线程实现
文章目录主内存与工作内存内存间交互操作对于volatile型变量的特殊规则线程的实现Java线程的实现Java线程调度Java锁优化自旋锁与自适应自旋锁消除锁粗化轻量级锁偏向锁
深入理解Java虚拟机
:JVM
[1-9]\d*(.\d{1,2})?
·
2021-05-08 22:39
Jvm
java
多线程
牛逼!Java 从入门到精通,超全汇总版
核心技术卷一Java编程思想设计模式HeadFirst设计模式图解设计模式设计模式重学Java设计模式Java进阶Java并发编程实战Java并发编程艺术Java并发编程之美图解Java多线程设计模式JVM
深入理解
程序员cxuan
·
2021-05-06 19:06
Java
后端
计算机
JVM的gc算法总结
Java虚拟机的内存回收算法面试经常会问到,最近在看《
深入理解Java虚拟机
》一书,对GC算法总算是有了一些粗略的理解。为了避免看完就忘掉的尴尬,在博客整理记录一下。
业松
·
2021-05-06 09:22
Strongly Reachable, SoftReference, WeakReference和PhantomReference简介
导语这个问题之前看过很多遍,其中周志明的《
深入理解Java虚拟机
》里讲的比较好,其他的基本都是三言两语,没讲原理。本文也不讲原理,只记录我认为需要记住的点。
jubincn
·
2021-05-06 03:15
Jvm之用java解析class文件
《
深入理解java虚拟机
》中花了一整个章节来讲解Class文件,可是看完后,一直都还是迷迷糊糊,似懂非懂。
半栈工程师
·
2021-05-05 03:41
《
深入理解Java虚拟机
》-1-Java内存区域与内存溢出异常
《
深入理解Java虚拟机
》这本书,是介绍JVM知识的一本十分难得的书,值得去反复阅读、揣摩、反思。这个系列的文章,是我在阅读这本书的过程中的点滴笔记,如果喜欢,请更多支持原书作者出版的图书。
YaeSuo
·
2021-05-01 03:07
JVM类加载相关————《
深入理解JAVA虚拟机
》
类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用、卸载。其中验证、准备、解析3部分统称连接。类加载的时机Java虚拟机规范中并没有进行强制约束什么情况下开始类加载过程中的第一个阶段。但是对于初始化阶段,虚拟机规范则是严格规定了有且只有5种情况必须立即对类进行“”初始化“”(而加载、验证、准备自然需要在此之前开始)。遇到new、getstat
我是伏地魔
·
2021-05-01 03:38
《
深入理解Java虚拟机
》读书笔记之——判断对象存活的方法
1.1引用计数算法基本思想:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,当引用失效时,计数器值就减1,任何时刻计数器为0的对象就是不可能再被使用的。优点:引用计数算法的实现简单,判定效率也很高,在大部分情况下它都是一个不错的选择。缺点:Java虚拟机并没有选择这种算法来进行垃圾回收,主要原因是它很难解决对象之间的相互循环引用问题。1.2可达性分析算法基本思想:通过一系列的称为
湾湾_a434
·
2021-04-30 22:00
深入理解JAVA虚拟机
学习笔记1——内存
Java虚拟机在执行Java程序的过程中会在内存空间中分配出一块区域,用于程序的运行。虚拟机又会把这块所管理的内存划分为若干个不同的数据区域:虚拟机栈,本地方法区,程序计数器,堆,方法区。左侧三个为线程私有,右侧两个为线程共享的区域。1.程序计数器:当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支,循环,跳转,异常处理,线程恢复
徐可心
·
2021-04-30 13:52
深入理解Java虚拟机
之类文件结构
什么是JVM的“无关性”?Java具有平台无关性,也就是任何操作系统都能运行Java代码。之所以能实现这一点,是因为Java运行在Java虚拟机之上,不同的操作系统都拥有各自的Java虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码(ByteCode),因此Java能实现“一次编写,处处运行”。而JVM不仅具有平台无关性,还具有语言无关性。平台无关性是指任何操作系统都能运行Java代码,而
Steven1997
·
2021-04-30 05:06
记第一次电话面试
所以我就放下手里的《
深入理解Java虚拟机
》,抄起一本草稿本就冲进了一间会议室。面试官:你好,首先先做一下自我介绍吧。我:好!@#¥%…
无聊夫斯基
·
2021-04-29 03:19
Java虚拟机(二):Java虚拟机运行时数据区域
推荐《
深入理解Java虚拟机
(第二版)》---周志明著学习JVM。进程和线程学习JVM前要了解进程和线程的概念。以下是一个类比,来自阮一峰---进程与线程的一个简单解释。计算机的CPU是
DeppWang
·
2021-04-29 01:59
《
深入理解Java虚拟机
-JVM高级特性与最佳实践(第三版)》学习日记二
Java内存区域与内存溢出异常1.虚拟机自动管理机制Java虚拟机自动管理机制,新建对象的维护回收由虚拟机自动完成不容易出现内存泄漏和内存溢出问题一旦出现内存泄漏和溢出,不了解虚拟机内存使用,很难排查修正错误C/C++人为管理内存,需要手动创建和维护对象2.运行时数据区域定义:Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域特点:这些区域有各自的用途,以及创建和
eleven_Chen
·
2021-04-28 08:23
《
深入理解Java虚拟机
》笔记之类文件结构与类加载机制
文章作为《
深入理解Java虚拟机
》读书笔记,讲的可能就没书本详细。
Hohohong
·
2021-04-27 15:12
上一页
8
9
10
11
12
13
14
15
下一页
按字母分类:
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
其他