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虚拟机
(第2版)》这本书我自己没看过,但听很
云朵朵朵朵朵
·
2019-11-15 14:53
深入理解java虚拟机
系列初篇(一):为什么要学习JVM?
前言本来想着关于写JVM这个专栏,直接写知识点干货的,但是想着还是有必要开篇讲一下为什么要学习JVM,这样的话让一些学习者心里有点底的感觉比较好...原因一:面试不得不说,随着互联网门槛越来越高,JVM知识也是中高级程序员阶段必问的一个话题!现在不像以前了,以前会点html都好找工作,现在由于学习软件的人越来越多,而且每年大学生都在毕业(而老一辈的也很少换工作)人只会越来越多,随便在大街上拉一个头
宜春
·
2019-11-13 15:00
《
深入理解Java虚拟机
》读书笔记2:垃圾收集器与内存分配策略
国内JVM相关书籍NO.1,Java程序员必读。读书笔记第二部分对应原书的第三章,主要介绍JVM的垃圾回收算法、实现。第三章垃圾收集器与内存分配策略概述思考GC需要完成的3件事情:哪些内存需要回收?什么时候回收?如何回收?再回头看看第二章介绍的Java内存运行时区域的各个部分:程序计时器、虚拟机栈、本地方法栈:随线程而灭,栈帧随方法而进行出栈和入栈,每一个栈帧分配的内存在类结构确定就已知,因此这几
ginobefun
·
2019-11-08 19:59
《
深入理解Java虚拟机
实践》之 自动内存管理机制(一)
续接上篇文章我们继续来品读下一章自定内存管理机制,我以前写博客的思路就是遵循一条线路,就是是什么?为什么?怎么办?然后总结,然后没有然后了。那么就按照这个套路来写这篇文章,如果没有看到第一章的可以看上一篇文章可以好好看一看Java虚拟机的发展历史。遇到的问题是什么?在使用Java的时候我们都会碰到这种内存溢出的问题,我们无从下手,因为Java的内存管理机制和C/C++的管理机制就不一样,C/C++
杨哲丶
·
2019-11-08 19:55
《
深入理解Java虚拟机
》读书笔记
Java内存区域我们通常说的Java内存主要指的在Java程序运行的过程中Java虚拟机把它所管理内存区域划分的不同的数据区域。这些不同的区域保存着不同的数据类型,有着不同的创建和销毁时间。Java的内存区域可以分为两大部分:方法区(MethodArea)和堆(Heap)各个线程公用的内存区域,俗称堆内存(不连续的内存空间);虚拟机栈(VMStack)、本地方法栈(NativeMethodstac
answer_05
·
2019-11-08 12:03
深入理解java虚拟机
(八)-编译期优化
本文基于周志明的《
深入理解java虚拟机
JVM高级特性与最佳实践》所写。特此推荐。
阳光的技术小栈
·
2019-11-08 12:55
深入理解java虚拟机
系列初篇(一):为什么要学习JVM?
前言本来想着关于写JVM这个专栏,直接写知识点干货的,但是想着还是有必要开篇讲一下为什么要学习JVM,这样的话让一些学习者心里有点底的感觉比较好…原因一:面试不得不说,随着互联网门槛越来越高,JVM知识也是中高级程序员阶段必问的一个话题!现在不像以前了,以前会点html都好找工作,现在由于学习软件的人越来越多,而且每年大学生都在毕业(而老一辈的也很少换工作)人只会越来越多,随便在大街上拉一个头发茂
宜春
·
2019-11-07 11:35
深入理解java虚拟机
Java内存模型中的虚拟机栈原理分析
如下图所示(图片来自《
深入理解Java虚拟机
》一书)。在内存中,栈分为两部分,一部分是本地方法栈,为虚拟机使用到的Nati
Demrystv
·
2019-11-07 10:19
《
深入理解Java虚拟机
》读书笔记7:高效并发
国内JVM相关书籍NO.1,Java程序员必读。读书笔记第七部分对应原书的第十二章和第十三章,主要介绍Java内存模型、先行发生原则、线程安全和虚拟机的锁优化细节。第五部分高效并发第十二章Java内存模型与线程并发处理的广泛应用是使得Amdahl定律代替摩尔定律成为计算机性能发展源动力的根本原因,也是人类“压榨”计算机运算能力的最有力武器。12.1概述多任务处理在现代计算机操作系统中几乎已是一项必
ginobefun
·
2019-11-07 09:09
Java虚拟机方法调用
本文主要参考自
深入理解Java虚拟机
概述Java能够做到“一处编译,处处运行”,这与.class文件的作用是密不可分的。无论在什么环境中将Java源文件编译为.class文件,都能够通过JVM执行。
东溪95
·
2019-11-07 06:29
深入理解Java虚拟机
之垃圾收集器和内存分配与回收策略篇
收集算法是内存回收的方法论,那么收集器就是收集算法的实现。下图展示了7种作用于不同分代的收集器,如果收集器之间存在连线,就说明他们可以搭配使用。虚拟机所处的区域,则表示它是属于新生代收集器还是老年代收集器。image.pngSerial收集器-新生代收集器Serial收集器是最基本、最悠久的收集器。这个收集器是一个单线程收集器,在它进行垃圾收集时,必须停掉所有其他的工作线程,然后以一条收集线程进行
Michaelhbjian
·
2019-11-07 00:52
Java内存模型和GC机制
推荐周志明译本的《
深入理解Java虚拟机
》。1.Java内存模型1.1程序计数器程序计数器,是一块较小的内存空间,它可以看作当前线程所执行的字节码的行号指示器。
廿陆小生
·
2019-11-06 10:42
从内存的角度看Java引用和对象
0.引言最近在读《
深入理解Java虚拟机
:JVM高级特性与最佳实践》和《Java编程思想》,通过学习和了解Java内存区域的结构,可以对Java引用和对象有一个清晰的理解。
伤口不该结疤
·
2019-11-06 03:24
HotSpot 算法实现
声明:本文摘抄自《
深入理解Java虚拟机
》一书,本文完全为自我学习,请感兴趣的同学购买正版,支持原创SUN的JDK版本从1.3.1开始运用HotSpot虚拟机,2006年底开源,主要使用C++实现,JNI
Chengyu_l
·
2019-11-05 22:37
这一次,终于系统的学习了 JVM 内存结构
并发编程实践》这本书,里面涉及到了Java内存模型,通过Java内存模型顺理成章的来到的JVM内存结构,关于JVM内存结构的认知还停留在上大学那会的课堂上,一直没有系统的学习这一块的知识,所以这一次我把《
深入理解
平头哥的技术博文
·
2019-11-05 15:34
jvm
java
深入理解java虚拟机
运行时数据区域运行时数据区域程序计数器一块较小的内存空间,(java中的多线程是轮流切换并分配处理器时间,在任一个确定的时刻,一个处理器只会执行一条线程。因此为了回复线程能够恢复到正确的执行位置,每条线程都有一个独立的计数器)各类线程之间计数器互不影像,独立存储,我们称这类内存区域为“线程私有”的内存。如果正在执行的java方法,这个计数器记录的是正在执行的虚拟机指令地址;如果是Native方法,
zcwfeng
·
2019-11-05 14:31
JVM运行时数据区域
声明:此篇文章是读《
深入理解JAVA虚拟机
》的笔记 先来一张图:jvm运行时数据区程序计数器(ProgramCounterRegister) 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器
cooolboy
·
2019-11-05 12:06
这一次,终于系统的学习了 JVM 内存结构
并发编程实践》这本书,里面涉及到了Java内存模型,通过Java内存模型顺理成章的来到的JVM内存结构,关于JVM内存结构的认知还停留在上大学那会的课堂上,一直没有系统的学习这一块的知识,所以这一次我把《
深入理解
平头哥的技术博文
·
2019-11-05 11:00
深入理解java虚拟机
读书笔记-垃圾收集器
GC收集器搭配图:图1gc收集器搭配1.serial收集器:单线程收集器,运行时stw,client模式下默认新生代收集器(简单而高效,桌面应用场景下,jvm管理的内存一般不大,stw时间一般可控制在100ms内);gc算法:新生代使用复制算法,老年代使用标记-整理算法2.ParNew收集器:Serial的多线程版本。server模式下的首选新生代收集器,因为除了Serial外,只有它能和CMS配
漫游鹰
·
2019-11-04 22:41
深入理解Java虚拟机
(七)之虚拟机执行子系统
深入理解Java虚拟机
系列文章
深入理解Java虚拟机
(一)之内存模型
深入理解Java虚拟机
(二)之四种引用
深入理解Java虚拟机
(三)之垃圾收集
深入理解Java虚拟机
(四)之JVM调优
深入理解Java虚拟机
xxq2dream
·
2019-11-04 19:08
深入理解Java虚拟机
(JVM) --- 垃圾收集算法(中)
2回收无效对象的过程当经可达性算法筛选出失效的对象之后,并不是立即清除,而是再给对象一次重生的机会判断是否覆盖finalize()未覆盖该或已调用过该方法,直接释放对象内存已覆盖该方法且还未被执行,则将finalize()扔到F-Queue队列中执行F-Queue中的finalize()虚拟机会以较低的优先级执行这些finalize(),不会确保所有的finalize()都会执行结束如果final
JavaEdge
·
2019-11-04 04:52
java
深入理解java虚拟机
学习笔记(二) jvm垃圾收集器和内存分配策略
1.垃圾如何确认对于大多数语言中判断对象是否存活会采用引用计数法:给对象添加一个引用计数器,当有一个地方引用时,计数器就加1,当引用失效时,计数器就减1。任何时刻只要计数器为0则回收。但是这种算法无法解决对象之间互相循环引用的问题。如A引用B,而B又引用A,计数器永远不为0,这两个对象再也无任何引用。这样GC不能回收这两个对象。因此,在JAVA中,采用了可达性分析算法来解决这个问题,判断对象是否存
冬天里的懒喵
·
2019-11-04 00:57
深入理解java虚拟机
(六)-虚拟机类加载机制
本文基于周志明的《
深入理解java虚拟机
JVM高级特性与最佳实践》所写。特此推荐。
阳光的技术小栈
·
2019-11-03 12:35
JVM垃圾收集器
声明:此篇文章是读《
深入理解JAVA虚拟机
》的笔记1.对象已死? 堆中几乎存放着Java中所有的对象实例,垃圾收集器在回收前,如何判断哪些对象是活着,哪些对象已经死去?
cooolboy
·
2019-11-03 12:56
《
深入理解Java虚拟机
-JVM高级特性与最佳实践》学习总结(第二章)
一、运行时数据区JVM将我们机器上的内存当做一个运行时数据区来进行处理。该运行时数据区包括以下几个部分:方法区(线程共享)虚拟机栈本地方法栈堆(线程共享)程序计数器二、几个内存区域1.程序计数器:作用:指向当前线程运行的字节码指令地址。所以从这一点也可以隐约窥探出字节码解释器的一部分工作原理,它在对字节码进行解释的时候,需要先通过该程序计数器来获取下一条需要执行的字节码指令。注意,程序计数器为线程
雅俗共赏M
·
2019-11-03 05:41
深入理解java虚拟机
-JVM高级特性和最佳实现(三)——深入垃圾收集器和内存分配策略
每篇一叶前言上回说道自动内存管理机制,那么没用的对象该怎么处理呢?内存又该怎么分配?为了应对这些场景,这回我们引入垃圾收集器和内存分配策略。基本概念垃圾收集器(GarbageCollection,GC)这并不是一门java语言的伴生产物,实际上比java语言早半个多世纪问世。1960年MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。我们在上回就知道了程序计数器,虚拟机栈,本地方法
湖面的舟
·
2019-11-03 02:05
《
深入理解java虚拟机
》-垃圾收集器与内存分配策略
如何判断对象已死?引用计数算法在对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器减1;其中计数器为0的对象是不可能再被使用的已死对象。引用计数算法的实现很简单,但有个巨大的缺点,当两个对象相互引用时,这两个对象就不会被回收,导致内存泄漏。可达性分析算法通过一系列的称为“GCRoots”的对象作为起始点,从这些节点开始向下搜索,搜索所经过的路径称为引用链(Refe
xiedacon
·
2019-11-02 23:37
基于栈的字节码解释执行引擎
声明:本文摘抄自《
深入理解Java虚拟机
》一书,本文完全为自我学习,请感兴趣的同学购买正版,支持原创Java语言经常被人们定位为“解释执行”语言,在Java初生的JDK1.0时代,这种定义还比较准确的,
Chengyu_l
·
2019-11-02 20:33
深入理解Java虚拟机
读书笔记
Java中的四种引用:1、强引用(StrongReference):在程序代码中普遍存在的,类似Objectobject=newObjec(),只要强引用还存在,垃圾收集器永远不会回收被引用的对象2、软引用(SoftReference):用来描述还有一些用,但并非必须的对象。对于软引用关联着的对象,在系统将要发生内存溢出异常之前,将会把这些对象列入回收范围之中,并进行第二次回收。如果这次回收还没有
漂泊的灵魂
·
2019-11-02 19:23
2018-05-11
《
深入理解Java虚拟机
:JVM高级特性与最佳实践(第二版》读书笔记与常见相关面试题总结本节常见面试题(推荐带着问题阅读,问题答案在文中都有提到):简单说说类加载过程,里面执行了哪些操作?
玲小喵
·
2019-11-02 18:12
1、Java内存区域与内存溢出异常(JVM笔记)
声明:本文集中的文章都是看了《
深入理解Java虚拟机
》所做的笔记,很多内容是从书中摘抄,特此声明。这里主要学习一些基本的概念,真正掌握可能还需要多加实践。
yjaal
·
2019-11-02 15:46
Java内存模型(运行时数据区域)
声明:本文摘抄自《
深入理解Java虚拟机
》一书,本文完全为自我学习,请感兴趣的同学购买正版,支持原创 Java虚拟机在执行Java程序的过程中,会把它所管理的内存划分为若干个不同的数据区域。
Chengyu_l
·
2019-11-02 14:44
《
深入理解java虚拟机
》-java内存模型与线程
并发处理的广泛应用是使得Amdahl定律代替摩尔定律成为计算机性能发展源动力的根本原因,也是人类“压榨”计算机运算能力的最有力武器硬件的效率与一致性物理机中为了提升效率而采取的方案:在处理器与内存之间加入一层或多层读写速度尽可能接近处理器运算速度的高速缓存。高速缓存在解决处理器与内存的速度矛盾的同时,也带来了缓存一致性(CacheCoherence)的问题。对此,需要各个处理器在访问缓存时遵循一些
xiedacon
·
2019-11-02 06:42
《
深入理解Java虚拟机
》学习笔记(二)(Java对象的创建、内存布局和访问定位)
对象对象创建对象创建的过程图0对象创建过程类加载过程包括加载、验证、准备、解析、初始化、运行和卸载名次解释指针碰撞:Java堆中内存是绝对规整的,所有用过的内存都放在一边,空闲的内存放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲空间那边挪动一段与对象大小相等的距离Serial、ParNew等带Compact过程的收集器空间列表:Java堆中的内存并不是规整的,
为梦码一生
·
2019-11-02 05:03
JVM运行时数据区域
《
深入理解Java虚拟机
》day11.程序计数器:1)他在内存中所占的空间较小,它可以被看作为当前线程所执行的字节码的行号指示器。
是一动不动的friend
·
2019-11-01 10:09
深入理解java虚拟机
读书笔记,第四章:虚拟机性能监控与故障处理
4.1概述定位问题,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段数据包含:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)jdk的bin路径下用于监视虚拟机和故障处理的工具工具都特别小,是jdk/lib/tools.jar的包装借助tools.jar接口,在程序中实现强大的监控分析功能4.2JDK
cremin
·
2019-10-31 08:40
《
深入理解java虚拟机
》-java内存区域
运行时数据区域java虚拟机运行时数据区.png程序计数器程序计数器(ProgramCounterRegister)是一块较小的内存空间,可以看作是当前线程所执行字节码的行号指示器。CPU寄存器?此内存区域是唯一一个在java虚拟机规范中没有规定OutOfMemoryError情况的区域。java虚拟机栈与程序计数器一样,java虚拟机栈(JavaVirtualMachineStacks)也是线程
xiedacon
·
2019-10-30 22:28
[JVM]Java内存区域与垃圾收集 - 思维导图
深入理解Java虚拟机
[JVM]Java内存区域与垃圾收集-思维导图[JVM]类加载机制-思维导图[JVM]OOM实例分析[JVM]理解Class文件(1):手动解析常量池[JVM]理解GC日志[JVM
伤口不该结疤
·
2019-10-30 22:14
《
深入理解Java虚拟机
》-----第10章 程序编译与代码优化-早期(编译期)优化
概述Java语言的“编译期”其实是一段“不确定”的操作过程,因为它可能是指一个前端编译器(其实叫“编译器的前端”更准确一些)把*.java文件转变成*.class文件的过程;也可能是指虚拟机的后端运行期编译器(JIT编译器,JustInTimeCompiler)把字节码转变成机器码的过程;还可能是指使用静态提前编译器(AOT编译器,AheadOfTimeCompiler)直接把*.java文件编译
chen_hao
·
2019-10-25 11:00
深入理解Java虚拟机
笔记---运行时栈帧结构
栈帧(StackFrame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(VirtualMachineStack)的栈元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。第一个方法从调用开始到执行完成,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。每一个栈帧都包括了局部变量表,操作数栈,动态连接,方法返回地址和一些额外的附加信息。在编译
全城来撞你
·
2019-10-24 11:00
《
深入理解Java虚拟机
》(一)、Java内存区域与内存溢出异常
以下内容大部分摘要自《
深入理解Java虚拟机
》:1、运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。
小哥骑单车
·
2019-10-24 10:01
《深入理解Java虚拟机》
JVM
深入理解java虚拟机
,GC参考手册
深入理解java虚拟机
一、《
深入理解Java虚拟机
》1、第2章Java内存区域与内存溢出异常2、第3章垃圾收集器与内存分配策略3、第4章虚拟机性能监控与故障处理工具4、第5章jvm调优案例分析与实战5、
爱是与世界平行
·
2019-10-22 15:57
▷项目总结
Java程序开发
JYM
《
深入理解Java虚拟机
》-----第9章 类加载及执行子系统的案例与实战
概述在Class文件格式与执行引擎这部分中,用户的程序能直接影响的内容并不太多,Class文件以何种格式存储,类型何时加载、如何连接,以及虚拟机如何执行字节码指令等都是由虚拟机直接控制的行为,用户程序无法对其进行改变。能通过程序进行操作的,主要是字节码生成与类加载器这两部分的功能,但仅仅在如何处理这两点上,就已经出现了许多值得欣赏和借鉴的思路,这些思路后来成为了许多常用功能和程序实现的基础。案例分
chen_hao
·
2019-10-22 15:00
《
深入理解Java虚拟机
》-----第13章 线程安全与锁优化
概述在软件业发展的初期,程序编写都是以算法为核心的,程序员会把数据和过程分别作为独立的部分来考虑,数据代表问题空间中的客体,程序代码则用于处理这些数据,这种思维方式直接站在计算机的角度去抽象问题和解决问题,称为面向过程的编程思想。与此相对的是,面向对象的编程思想是站在现实世界的角度去抽象和解决问题,它把数据和行为都看做是对象的一部分,这样可以让程序员能以符合现实世界的思维方式来编写和组织程序。面向
chen_hao
·
2019-10-22 14:00
深入理解java虚拟机
文章目录2.java内存区域与内存溢出异常运行时数据区域程序计数器java虚拟机栈本地方法栈java堆方法区运行时常量池直接内存对象对象的创建对象的内存布局对象头-存储实例数据对齐填充对象的访问定位句柄访问直接指针访问OOM异常java堆溢出虚拟机栈和本地方法栈溢出方法区和运行时常量池溢出本级直接内存溢出3.垃圾收集器与内存分配策略判断对象是否可被回收引用计数法可达性分析算法再谈引用强引用软应用弱
了-凡
·
2019-10-20 16:27
技术书分享
《
深入理解Java虚拟机
》-----第12章 Java内存模型与线程
概述多任务处理在现代计算机操作系统中几乎已是一项必备的功能了。在许多情况下,让计算机同时去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘I/O、网络通信或者数据库访问上。如果不希望处理器在大部分时间里都处于等待其他资源的状态,就必须使用一些手段去把处理器的运算能力“压榨”出来,否则就会造成很大的浪费,
lylDaisy
·
2019-10-18 12:14
《
深入理解Java虚拟机
》-----第12章 Java内存模型与线程
概述多任务处理在现代计算机操作系统中几乎已是一项必备的功能了。在许多情况下,让计算机同时去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘I/O、网络通信或者数据库访问上。如果不希望处理器在大部分时间里都处于等待其他资源的状态,就必须使用一些手段去把处理器的运算能力“压榨”出来,否则就会造成很大的浪费,
chen_hao
·
2019-10-18 11:00
Github上的Android.Java进阶PDF大全,我给分享出来了
一.2019Android~BAT等面试大全GitHub链接:关于我联系我二.
深入理解Java虚拟机
:JVM高级特性与最佳实践PDF(太详细了。一般人应该用不到很详实了。
Android丶SE开发
·
2019-10-17 17:00
深入理解 Java 虚拟机(三)~ class 字节码的执行过程剖析
Java虚拟机系列文章目录导读:
深入理解Java虚拟机
(一)~class字节码文件剖析
深入理解Java虚拟机
(二)~类的加载过程剖析
深入理解Java虚拟机
(三)~class字节码的执行过程剖析
深入理解Java
Chiclaim
·
2019-10-11 18:15
Java
Android
JVM
【Java】锁机制
参考https://blog.csdn.net/varyall/article/details/79698145《
深入理解Java虚拟机
》锁状态:无锁、偏向锁、轻量级锁、重量级锁(具体是何种状态,取决于竞争情况
mussessein
·
2019-10-10 22:00
上一页
39
40
41
42
43
44
45
46
下一页
按字母分类:
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
其他