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虚拟机
》读书笔记7--运行期优化
记得在大学刚开始学习Java的时候,也许是为了让大家好理解,老师说Java是一门解释执行的语言。但是现在回顾这句话,这种说法可能就不是那么准确了实际上,Java程序在启动最初是通过解释器进行解释执行的,但是当某个方法或者代码运行非常频繁的时候,虚拟机就会把这部分代码视为“热点代码”(HotSpotCode),在运行时将这部分代码编译成平台相关的机器码,并且进行各种层次的优化,以提高热点代码的执行效
虾_米_
·
2020-02-07 18:31
深入理解Java虚拟机
(自动内存管理机制)
周志明老师的这本《
深入理解Java虚拟机
》我细读了不下三遍,每一次阅读都有新的收获,每一次阅读对Java虚拟机的理解就更进一步。
张磊BARON
·
2020-02-07 16:27
《
深入理解Java虚拟机
》读书笔记3--类文件结构
很遗憾,这将是很枯燥的一章,但是如果想较为深入的理解JVM,这一章又很有必要硬着头皮搞清楚。如果之前没有接触过类似的内容,那么有很大的可能第一次基本读不懂,如果出现这样的情况也没有关系,请继续保持学习,并且隔段时间再次重新阅读。像我这样不够灵光的脑袋,学习了3遍也就能够掌握基本原理。其实,只要掌握了对应的规则,类文件的内容又是很容易解读的,请保持你的耐心与好奇Java号称跨平台,那么究竟是什么能够
虾_米_
·
2020-02-07 13:49
读书笔记-《
深入理解JAVA虚拟机
》
1.名词解释1.程序计数器(ProgramCoimterRegister)由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间来实现的,在任意一个时间,一个处理器只会执行一条线程中的指令,程序计数器记录的就是存放该指令的地址。2.Java虚拟机栈虚拟机栈描述的是Java方法执行的内存模型,每个方法在执行的同时会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法出口灯信息,每一个
山西网友
·
2020-02-07 00:27
深入理解JDK中的Reference原理和源码实现
前提这篇文章主要基于JDK11的源码和最近翻看的《
深入理解Java虚拟机
-2nd》一书的部分内容,对JDK11中的Reference(引用)做一些总结。
throwable
·
2020-02-07 00:00
Chapter2 Java内存区域与内存溢出异常
前言:刚开始接触Java虚拟机的知识,参考的是周志明的《
深入理解Java虚拟机
》这本书。一方面整理思路,同时也为了方便以后查阅,所以整理了书中的内容。
liuyeung
·
2020-02-06 22:28
深入理解Java虚拟机
内存模型
前言本文中部分内容引用至《
深入理解Java虚拟机
:JVM高级特性与最佳实践(第2版)》第12章,如果有兴趣可自行深入阅读,文末放有书籍PDF版本连接。
箫声锁梦
·
2020-02-06 12:00
深入java虚拟机 小结
jvm这一部分曾经看了一遍又一遍,然而每次看过之后没几天就会忘记,只是因为有些东西操作的少,所以这次再次读完《
深入理解Java虚拟机
》后做一次分类总结,希望能够把一些精华留住。下面走入jvm的世界。
看谁都像一个人
·
2020-02-06 10:54
《
深入理解Java虚拟机
》读书笔记之——类加载的时机
1.1类加载的生命周期类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中准备、验证、解析3个部分统称为连接(Linking)。如图所示。类的生命周期加载、验证、
湾湾_a434
·
2020-02-06 02:33
深入理解java虚拟机
读书笔记一java运行时数据区域
java运行时数据区域:1.程序计数器:当前线程所执行的字节码的行号指示器;2.java虚拟机栈:每个方法执行时都会创建一个栈帧,存储局部变量表,操作数栈,动态链接,方法出口等信息。另外在线程请求栈深度大于jvm允许时会抛出stackoverflow异常(无限递归);3.本地方法栈:和虚拟机栈功能类似,只是本地方法栈为natve方法服务;4.java堆:java虚拟机管理的内存中的最大的一块,被所
漫游鹰
·
2020-02-05 22:58
《
深入理解Java虚拟机
》读书笔记
我与虚拟机小红小蓝的故事#图片1.png我与虚拟机小红小蓝的故事#这次读完之后总结,对整个Java虚拟机有了系统性的理解。首先,java程序可以“一次编写,到处运行”就是因为有Java虚拟机这个东西作为容器。Java虚拟机作为一个中间层,向上接受由我们编写的代码生成的字节码,向下给机器提供可以被直接执行的目标代码,这就有了Java的“平台无关性”的基础。通过这个定义我们知道,一切可以编译出字节码的
IT诸葛亮
·
2020-02-05 22:16
《
深入理解Java虚拟机
》读书笔记之——对象的创建
对象创建的步骤如下:1.1类加载虚拟机遇到一条new指令,首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经加载、解析和初始化。如果没有,则先执行类加载。1.2分配内存为新生对象分配内存(对象所需内存大小在类加载后可完全确定)指针碰撞:假设Java堆中内存是绝对规整的,所有用过的内存都放在一边,空闲的内存放在另一边,中间放着一个指针作为分界点的指示器
湾湾_a434
·
2020-02-05 12:18
深入理解Java虚拟机
读书笔记 - 垃圾收集算法
概述垃圾收集即GC。经过半个多世纪的发展,目前内存的动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化”时代,那我们为什么还要去了解GC和内存分配呢?答案很简单:当需要排查各种内存溢出,内存泄漏问题时,当垃圾手机成为系统达到更高并发的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。GC瞄准谁我们已知程序计数器,虚拟机栈以及本地方法栈都是随着线程而生,随着线程而亡。所以这部
HikariCP
·
2020-02-02 23:45
深入理解java虚拟机
读书笔记,第九章:类加载及其执行子系统的案例与实战
9.1概述在class文件格式和执行引擎这部分内容中,用户程序能直接影响的并不多,Class文件以何种形式存储,类型何时加载、如何连接,以及虚拟机如何执行字节码指令都由虚拟机直接控制,用户无发改变;能够通过程序控制的,主要是字节码生成和类加载器两部分9.2案例分析9.2.1Tomcat:正统的类加载架构一个功能健全的web服务器需要解决的问题同一个web服务器上的不同应用程序可以实现相互隔离同一个
cremin
·
2020-02-02 23:40
《
深入理解Java虚拟机
》——类文件结构之魔数常量池
相对于Java虚拟机的其他部分,这部分的内容我们只需要搞清楚下面两个方面的内容:1.无关性2.Class文件的结构与组成我们都知道Java有个特性是:一次编写,到处运行。这里体现的是平台无关性,但是对于Java虚拟机来说,不仅仅是具有平台无关性的特点,还具有语言无关性的特性。各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构成平台无关性的基石。实现语言无关性的
beneke
·
2020-02-02 21:59
《
深入理解Java虚拟机
》学习笔记(六)(虚拟机字节码执行引擎)
(详情见《
深入理解Java虚拟机
》(学习笔记(一)))在活动线程中,只有位于栈顶的栈帧才是有效的,称为当前栈帧(Cu
为梦码一生
·
2020-02-02 20:29
Java并发包-概述
最近拜读了《多线程编程实战》及《
深入理解Java虚拟机
》两本书,反复琢磨,趁着这股劲还没散去,来看看Java并发包的源码(JDK1.8)。
鹰涯
·
2020-02-02 17:57
深入理解java虚拟机
读书笔记,第十一章:晚期(运行期)优化
11.1概述为了提高热点代码的运行效率,在运行时,虚拟机会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(JustInTimeCompiler,JIT编译器)java虚拟机规范中没有约束JIT的应该如何实现,所以这部分功能完全是与虚拟机具体实现相关的内容11.2HotSpot虚拟机即时编译器需要解决的问题为何HotSpot虚拟机要使用解释器和编译器
cremin
·
2020-02-02 13:14
深入理解java虚拟机
读书笔记,第十三章:线程安全与锁优化
13.1概述13.2线程安全当多个线程访问一个对象的时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的13.2.1Java语言中的线程安全1>不可变在Java语言里(特指JDK1.5以后),不可变(Immutable)的对象一定是线程安全的不可变带来的线程安全是最简单
cremin
·
2020-02-02 12:23
JVM探秘:jstack查看Java线程状态
本系列笔记主要基于《
深入理解Java虚拟机
:JVM高级特性与最佳实践第2版》,是这本书的读书笔记。
Cellei
·
2020-02-02 09:00
JVM理解其实并不难!
在阅读本文之前,先向大家强烈推荐一下周志明的《
深入理解Java虚拟机
》这本书。
huachao1001
·
2020-02-02 06:43
深入理解java虚拟机
(二)--GC与内存分配策略
一、判断对象是否已死1、引用计数算法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,当引用时效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的,引用计数算法管理内存很高效,但是java虚拟机没有使用,因为是他很难解决对象间相互循环引用的问题。两个对象互相引用,导致它们的引用计数都不为0,于是引用计数算法无法通知GC收集器回收它们。、2、可达性分析算法Java是通
做一只快乐的码农1990
·
2020-02-02 05:25
Java书籍推荐
《
深入理解Java虚拟机
:JVM高级特性与最佳实践》*****《HotSpot实战》《Java并发编程实战》*****《Java多线程编程核心技术》《EffectiveJava中文版》******《深入分析
bigfish1129
·
2020-02-02 02:39
深入理解java虚拟机
·读书笔记(一)
虚拟机类加载机制时间:20180222需要弄明白的问题:类是如何转换为字节码、java虚拟机是如何加载这些字节码文件、加载完字节码文件之后虚拟机内部又是如何进行处理的?虚拟机把Class文件加载到内存--->并对数据进行校验、解析、初始化,最终形成可以被虚拟机直接使用的java类型的类的生命周期:image1.什么时候开始类的加载过程?java虚拟机规范中并没有给出明确的规定,具体交给虚拟机来自由
pianpianboy
·
2020-02-02 00:12
《
深入理解Java虚拟机
》总纲
第2章Java内存区域与内存溢出异常知识点链接运行时数据区域(7个区域)http://www.jianshu.com/p/d8e816d39f47对象的创建(5个步骤)http://www.jianshu.com/p/126594a87535对象的内存布局(3块区域)和访问定位(2种方式)http://www.jianshu.com/p/f79cc75c9717实战:OutOfMemoryErro
湾湾_a434
·
2020-02-01 14:03
java 内存区域的划分以及内存分配
1.引言虽然之前看过java编程思想,当时了解点jvm内存区域的划分,和内存的分配,但是长时间不看的确是忘记了不少,所以记下笔记,看的书是
深入理解java虚拟机
。
过期的薯条
·
2020-02-01 06:23
深入理解Java虚拟机
总结-虚拟机字节码执行引擎
注:此文是我在读完周志明老师的
深入理解Java虚拟机
之后总结的一篇文章,请阅读此书获取更加详细的信息.另外,需要注意的是,读此文前,各位应当对Java字节码文件格式以及字节码指令有一个清楚的认识.运行时栈帧结构在介绍
AlstonWilliams
·
2020-02-01 03:13
《
深入理解Java虚拟机
》读书笔记之——类加载的过程
1.1加载加载的过程中,jvm要完成以下三件事:通过一个类的全限定名来获取定义此类的二进制字节流。将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。注意:对于第一条,jvm并没有特殊地去指定这个类应该从哪里获取,基于这一条,现在的java平台发展出了jar,war等;以及动态的运行时计
湾湾_a434
·
2020-02-01 03:01
垃圾收集算法
声明:本文摘抄自《
深入理解Java虚拟机
》一书,本文完全为自我学习,请感兴趣的同学购买正版,支持原创标记-清除算法复制算法标记-整理算法标记-清除算法(Mark-Sweep)标记-清除算法分为“标记”和
Chengyu_l
·
2020-02-01 02:03
判断Java对象是否存活的算法
声明:本文摘抄自《
深入理解Java虚拟机
》一书,本文完全为自我学习,请感兴趣的同学购买正版,支持原创判断对象是否存活的算法包括:引用计数算法可达性分析算法引用计数算法(ReferenceCounting
Chengyu_l
·
2020-02-01 02:31
《
深入理解java虚拟机
》——读后笔记(二)(对象回收与垃圾收集算法)
1.对象的回收判断对象是否可以被回收有下面几种算法1.1引用计数算法:给对象添加一个引用计数器,每当一个地方引用它计数器就+1,引用失效时就-1,当计数器为0就是不再被引用的对象。但主流java虚拟机并不使用此方法,因为此方法难以解决对象之间循环引用的问题。1.2可达性分析算法:这个算法的思路就是通过一系列称为“GCRoots”的对象作为起点,从这些节点往下搜索,搜索所走过的路径称为引用链,一个对
nubea
·
2020-02-01 00:00
内存分配与回收策略
声明:本文摘抄自《
深入理解Java虚拟机
》一书,本文完全为自我学习,请感兴趣的同学购买正版,支持原创Java内存管理主要解决两个问题:给对象分配内存和回收分配给对象的内存。
Chengyu_l
·
2020-02-01 00:04
Class类文件结构
声明:本文摘抄自《
深入理解Java虚拟机
》一书,本文完全为自我学习,请感兴趣的同学购买正版,支持原创Java虚拟机不和包括Java语言在内的任何语言绑定,它只与“Class文件”这种特定的二进制文件所关联
Chengyu_l
·
2020-02-01 00:03
类加载的过程
声明:本文摘抄自《
深入理解Java虚拟机
》一书,本文完全为自我学习,请感兴趣的同学购买正版,支持原创加载“加载”是“类加载”过程的一个阶段,在加载阶段,虚拟机需要完成以下3件事情:通过一个类的全限定名来获取定义此类的二进制字节流
Chengyu_l
·
2020-02-01 00:19
虚拟机字节码执行引擎--运行时栈帧结构
声明:本文摘抄自《
深入理解Java虚拟机
》一书,本文完全为自我学习,请感兴趣的同学购买正版,支持原创运行时栈帧结构栈帧(StackFrame)是用于支持虚拟机方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素
Chengyu_l
·
2020-02-01 00:42
虚拟机类加载机制
声明:本文摘抄自《
深入理解Java虚拟机
》一书,本文完全为自我学习,请感兴趣的同学购买正版,支持原创虚拟机把描述类的数据从Class加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的
Chengyu_l
·
2020-02-01 00:03
深入理解Java虚拟机
——虚拟机类加载机制
代码编译的结果是从本地机器码变为字节码,是存储格式发展的一小步,却是编译语言发展的一大步。7.1概述上一张我们了解了Class文件存储格式的具体细节,在Class文件中描述的各种信息,最终都需要加载到虚拟机之后才能运行和使用,而虚拟机如何加载这些Class文件?Class文件中的信息进入到虚拟机后会发生什么变化?这些都是本章将要讲解的内容。虚拟机把描述类的数据从Class文件加载到内存,并对数据进
wuyingya_12
·
2020-01-31 22:19
笔记
JVM探秘:MAT分析内存溢出
本系列笔记主要基于《
深入理解Java虚拟机
:JVM高级特性与最佳实践第2版》,是这本书的读书笔记。
Cellei
·
2020-01-29 14:00
推荐书单
经济学小岛经济学麦肯锡方法论金字塔原理学会提问:麦肯锡工作法用图表说话思考的技术政治历史中国历代政治得失技术存储大规模分布式存储系统MySQL技术内幕HBase权威指南HBase原理与实践分布式一致性从Paxos到Zookeeperjvm
深入理解
sleep_NULL
·
2020-01-25 00:16
深入理解java虚拟机
(第二版)——第三章:垃圾收集器与内存分配策略
一、对象存活统计算法1.引用计数器法每当对象被引用一次时,计数器的值就加一;当引用失效时,计数器的值就减一。在任何时刻,计数器为0的值时不会被使用的。优点:实现简单,判定效率高。缺点:无法解决对象之间相互调用的问题。publicclassReferenceCountingGC{publicObjectinstance=null;publicstaticvoidtestGC(){ReferenceC
浮生闲游
·
2020-01-22 20:21
深入理解Java虚拟机
第一部分走进Java第1章走进Java第二部分自动内存管理机制第2章【重要】Java内存区域与内存溢出异常第3章【重要】垃圾收集器与内存分配策略第4章虚拟机性能监控与故障处理工具第5章调优案例分析与实战第三部分第6章【重要】类文件结构第7章【重要】虚拟机类加载机制第8章虚拟机字节码执行引擎第9章类加载及执行子系统的案例与实战第四部分第10章早期(编译期)优化第11章晚期(运行期)优化第五部分第12
linyk3
·
2020-01-21 01:26
《
深入理解Java虚拟机
4》类加载与执行子系统的案例与实战
本系列是用来记录《
深入理解Java虚拟机
》这本书的读书笔记。方便自己查看,也方便大家查阅。欲速则不达,欲达则欲速!
素小暖
·
2020-01-19 11:08
#
深入理解Java虚拟机
【JVM】内存调优
本系列是用来记录《
深入理解Java虚拟机
》这本书的读书笔记。方便自己查看,也方便大家查阅。欲速则不达,欲达则欲速!
素小暖
·
2020-01-19 09:15
#
深入理解Java虚拟机
【JVM】Eclipse运行速度调优
本系列是用来记录《
深入理解Java虚拟机
》这本书的读书笔记。方便自己查看,也方便大家查阅。欲速则不达,欲达则欲速!这两天看了JVM的内存优化,决定尝试一下,对Eclipse进行内存调优。
素小暖
·
2020-01-19 09:09
#
深入理解Java虚拟机
《
深入理解Java虚拟机
3》类加载机制与字节码执行引擎
本系列是用来记录《
深入理解Java虚拟机
》这本书的读书笔记。方便自己查看,也方便大家查阅。欲速则不达,欲达则欲速!第六章:类文件结构讲完了自动内存管理,我们来说说执行子系统。
素小暖
·
2020-01-18 08:00
#
深入理解Java虚拟机
《
深入理解Java虚拟机
2》性能监控与调优
本系列是用来记录《
深入理解Java虚拟机
》这本书的读书笔记。方便自己查看,也方便大家查阅。欲速则不达,欲达则欲速!
素小暖
·
2020-01-18 08:17
#
深入理解Java虚拟机
JVM--怎么选择一款合适的垃圾收集器
参考资料列表:jdk不同版本的垃圾收集器:https://blog.csdn.net/weixin_34166847/article/details/94133616鼓泡学院资料集《
深入理解Java虚拟机
xlecho
·
2020-01-16 15:23
JVM
八、
深入理解java虚拟机
-虚拟机字节码执行引擎
一、概述执行引擎在执行java代码的时候可能会有解释执行和编译执行;输入字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。二、运行时栈帧结构栈帧:用于支持虚拟机进行方法调用和方法执行的数据结构;它是虚拟机运行时数据区中的虚拟机栈的栈元素;栈帧存储了方法的局部变量、操作数栈、动态链接和方法返回地址等信息。对于执行引擎来说,在活动线程中,只有位于栈顶的栈帧才是有效的称为当前栈帧,与这个栈帧
楊大大大侠
·
2020-01-14 15:15
JVM探秘:jmap生成内存堆转储快照
本系列笔记主要基于《
深入理解Java虚拟机
:JVM高级特性与最佳实践第2版》,是这本书的读书笔记。jmap命令用来生成内存堆转储快照,一般称为heapdump或dump文件。
Cellei
·
2020-01-11 09:00
JVM探秘:jstat查看JVM统计信息
本系列笔记主要基于《
深入理解Java虚拟机
:JVM高级特性与最佳实践第2版》,是这本书的读书笔记。
Cellei
·
2020-01-09 23:00
上一页
35
36
37
38
39
40
41
42
下一页
按字母分类:
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
其他