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虚拟机》
JVM加载类的时机
image.png类的生命周期加载,连接(验证,准备,解析),初始化,使用,卸载image.png摘自
深入理解java虚拟机
【Java虚拟机类生命周期】对类的主动引用(5种),会触发类的初始化Java虚拟机规范中对于类加载的时机没有明确的规范
四喜汤圆
·
2020-04-08 03:03
某秋招打法及其细节
《大话设计模式》《mysql必知必会》《程序员面试金典》《java并发编程实战》《计算机操作系统第三版》《计算机网络》都看了一遍,《
深入理解java虚拟机
》看了两遍。
加油_汤姆叔叔
·
2020-04-08 01:23
Java Class文件修改
背景:在开发中我们可能需要需要修改Java的class文件来达到修改代码逻辑的目的1.参考书籍《
深入理解Java虚拟机
第二版》第6章-类文件结构第8章-虚拟机字节码执行引擎对原理进行比较详细的讲述2.这两篇文章
Boahui
·
2020-04-07 21:57
JDK12编译
决定编译一下jdk12本文将参考《
深入理解JAVA虚拟机
》第二版和官方编译指南进行jdk编译准备工作系统:windows自带的Linux子系统(WSL),Ubuntu18.04LTS版首先在windows10
宇智波派
·
2020-04-06 19:10
java
jvm
ubuntu
深入理解Java虚拟机
-垃圾收集器与内存分配策略
概述垃圾收集(GarbageCollection,GC)GC需要完成的三件事:哪些内存需要回收?什么时候回收?如何回收?内存运行时区域其中的程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈的操作。每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性,在这几个区域内不需要过多考虑
苏先生Tongson
·
2020-04-06 16:02
《
深入理解JAVA虚拟机
》学习笔记--对象存活算法
在堆里存入放java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定哪些对象还“活着”,哪些已经“死去”。引用计数算法引用计数器算法(ReferenceCounting):给对象添加一个引用计数器,每当有一个地方引用它时,计数器加1;当引用失效时,计数器减1;任何时刻计数器为0的对象就是不可能再被使用的。客观的说,引用计数器算法的实现简单,判定效率也很高,在大部分情况下是
木子小三金
·
2020-04-06 11:12
深入理解Java虚拟机
(第三版)-14. 线程安全与锁优化
14.线程安全与锁优化1.什么是线程安全?当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替进行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象是线程安全的2.Java语言中的线程安全我们将Java语言下的线程安全分为以下五类:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。1.不可变:不可变一定
傑0327
·
2020-04-06 10:00
深入理解Java虚拟机
(第三版)-14. 线程安全与锁优化
14.线程安全与锁优化1.什么是线程安全?当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替进行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象是线程安全的2.Java语言中的线程安全我们将Java语言下的线程安全分为以下五类:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。1.不可变:不可变一定
傑0327
·
2020-04-06 10:00
深入理解Java虚拟机
(第三版)-13.Java内存模型与线程
13.Java内存模型与线程1.Java内存模型Java内存模型的主要目的是定义程序中各种变量的访问规则,即关注在虚拟机中把变量值存储到主内存和从内存中取出变量值的底层细节该变量指的是实例字段、静态字段、和构成数组对象的元素,不包含线程私有的局部变量和方法参数Java线程-》工作内存-》Save和load操作-》主内存每个线程都有自己的工作内存,工作内存中保存了该线程使用的变量的主内存副本,线程对
傑0327
·
2020-04-06 10:00
深入理解java虚拟机
摘要(四)--垃圾收集器与内存分配策略
深入理解java虚拟机
摘要目录:一、自动内存管理机制运行时数据区域HotSpot虚拟机对象探秘实战:OutOfMemoryError异常垃圾收集器与内存分配策略一、自动内存管理机制4.垃圾收集器与内存分配策略主要考虑
程序员wp
·
2020-04-06 07:06
JVM笔记01-类加载
0.前言JVM笔记系列,以JDK1.7为基准,主要以《
深入理解Java虚拟机
》(第二版)和《Java虚拟机规范(JavaSE7版)》为参考,主要包括下图所示的五部分内容:1.类加载,2.内存区域,3.垃圾回收
郭寻抚
·
2020-04-06 01:49
深入理解Java虚拟机
总结-线程安全与锁优化
注:此文是我在读完周志明老师的
深入理解Java虚拟机
之后总结的一篇文章,请阅读此书获取更加详细的信息.什么是线程安全>的作者BrianGoetz说,"当多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行
AlstonWilliams
·
2020-04-05 21:20
深入理解Java虚拟机
之Class文件结构
Class类文件结构:Class文件是一组以8字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑排列在class文件中,中间没有任何分隔符,这使得class文件中存储的内容几乎是全部程序运行的程序。Java虚拟机规范规定,Class文件格式采用类似C语言结构体的伪结构来存储数据,这种结构只有两种数据类型:无符号数和表。无符号数属于基本数据类型,主要可以用来描述数字、索引符号、数量值或者按照UT
伯羽君
·
2020-04-05 19:19
【Java】
深入理解Java虚拟机
4——内存分配与回收策略
其他文章【Java】
深入理解Java虚拟机
1——内存区域以及OOM类型:https://www.jianshu.com/p/65c91ba4006e【Java】
深入理解Java虚拟机
2——判断对象是否存活和引用
renkuo
·
2020-04-05 19:29
Java的class文件结构
在《
深入理解java虚拟机
》一书第6章讲到了java的类文件,并且详情介绍了java的class文件的内容。
虎子爱琪琪
·
2020-04-05 18:07
深入理解Java虚拟机
(高效并发)
文章首发于微信公众号:BaronTalk,欢迎关注!高效并发是JVM系列的最后一篇,本篇主要介绍虚拟机如何实现多线程、多线程间如何共享和竞争数据以及共享和竞争数据带来的问题及解决方案。一、Java内存模型与线程让计算机同时执行多个任务,不只是因为处理器的性能更加强大了,更重要是因为计算机的运算速度和它的存储以及通信子系统速度差距太大,大量的时间都花费在磁盘I/O、网络通信和数据库访问上。为了不让处
张磊BARON
·
2020-04-05 12:36
读书笔记:
深入理解Java虚拟机
第二章Java内存区域
运行时数据区域Java虚拟机在运行时会将它所管理的内存划分为不同的数据区域,这些运行时数据区域如下图image.png程序计数器每个线程都有独立的程序计数器,各线程相互独立,属于线程私有的内存。在执行Java方法时,计数器记录正在执行的虚拟机字节码指令地址;执行native方法时,计数器为Undefined。不规定任何OOM情况Java虚拟机栈通常被有人称为栈内存区域线程私有。生命周期与线程一致每
夕枫晚照
·
2020-04-05 03:43
深入理解JAVA虚拟机
学习笔记14——Class类文件的结构(2访问标志, 继承, 实现)
各位朋友,上一篇的常量池都掌握了吧,我们的口号是:每天进步一点点!开始之前,我们先巩固并扩充一下昨天的知识,用Excel表示一下就是这样的(请原谅笔者low到爆的画图水平,画这种图有什么好的工具,朋友们可以推荐一下啊)。请注意!!!这里有个地方需要补充个一下,那就是当常量的类型是CONSTANT_Utf8_info的时候,看一下它的类型,length是它的字符串长度,意思是代表有多少个bytes(
徐可心
·
2020-04-04 09:22
深入理解Java虚拟机
(类文件结构)
直到后来细读了《
深入理解Java虚拟机
》中虚拟机执行子系统的相关内容,才建立了清晰的认知。如果你也和我一样,不了解类结构和类加载,
张磊BARON
·
2020-04-04 06:43
JVM解析——类加载
本系列主要记录笔者在学习[
深入理解Java虚拟机
]一书时的理解我们都知道在Java中,我们并不需要过多的在意内存的管理,这一切都交给了虚拟机自动管理,我们并不需要操心何时需要去释放一个对象的内存。
Robin_Lrange
·
2020-04-04 03:09
深入理解Java虚拟机
总结-编译期优化
注:此文是我在读完周志明老师的
深入理解Java虚拟机
之后总结的一篇文章,请阅读此书获取更加详细的信息.在这篇文章中,我们会简单介绍一下Java的编译过程,以及在编译过程中进行的优化.编译过程编译过程大致分为下面的三个过程
AlstonWilliams
·
2020-04-04 03:24
[JVM]理解Class文件(2)
深入理解Java虚拟机
[JVM]Java内存区域与垃圾收集-思维导图[JVM]类加载机制-思维导图[JVM]OOM实例分析[JVM]理解Class文件(1):手动解析常量池[JVM]理解GC日志[JVM
伤口不该结疤
·
2020-04-04 02:06
编程功底之禅
image.png编程之路的一些书籍资料推荐c语言国嵌c语言深度剖析(视频)C语言深度解剖(第2版):解开程序员面试笔试的秘密c++语言C++PrimerEffectiveC++深度探索C++对象模型Java语言
深入理解
Adley
·
2020-04-03 14:32
《
深入理解Java虚拟机
》读书笔记之——运行时数据区域
Java虚拟机运行时数据区1.1程序计数器作用:它可以看作是当前线程所执行的字节码的行号指示器;为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储(线程私有)。如果线程正在执行的是一个Java方法,计数器记录的是正在执行的虚拟机字节码指令的地址;如果线程正在执行的是Native方法,计数器值为空。异常状况:此内存区域是唯一一个在Java
湾湾_a434
·
2020-04-03 07:01
《
深入理解Java虚拟机
》学习笔记(一)(Java内存区域的划分)
前言本文章部分引用自知乎胖胖的回答可文分身的liuxiaopeng的博客Java内存区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据域,包括程序计数器、Java虚拟机栈、本地方法栈、Java堆和方法区。其中程序计数器、Java虚拟机栈和本地方法栈是线程隔离的数据区,方法区和Java堆是线程共享的数据区。**图1Java内存区域划分示意图**更进一步,Java内存
为梦码一生
·
2020-04-01 13:11
《
深入理解Java虚拟机
》读书笔记之——虚拟机性能监控与故障处理工具
名称主要作用jpsJVMProcessStatusTool,显示指定系统内所有的HotSpot虚拟机进程jstatJVMStatisticsMonitoringTool,用于收集HotSpot虚拟机各方面的运行数据jinfoConfigurationInfoforJava,显示虚拟机配置信息jmapMemoryMapforJava,生成虚拟机的内存转储快照(heapdump文件)jhatJVMHe
湾湾_a434
·
2020-04-01 04:26
JVM学习笔记 - 内存管理机制
前言最近在复习JVM的知识,主要参考教材是周志明老师的《
深入理解Java虚拟机
JVM高级特性和最佳实现》,文章将记录一些关键笔记。本文是第一份笔记,主题是“内存管理机制”。
Winter_F
·
2020-03-31 15:30
深入理解Java虚拟机
二 虚拟机类加载机制
前言文章是看了《
深入理解Java虚拟机
》书后进行的整理和总结,算是一个读书笔记吧。
Cloud_Leung
·
2020-03-30 16:53
关于 JVM,都有哪些面试最常考的点需要重点掌握?
个人GitHub:https://github.com/yanglbme这里仅仅记录了一些笔者认为需要重点掌握的JVM知识点,如果你想更加全面地了解JVM底层原理,可以阅读周志明老师《
深入理解Java虚拟机
yanglbme
·
2020-03-30 05:25
JVM知识点总结(一):概览
JVM知识点总结(一)byKay2017.8.26总结参考资料:《
深入理解Java虚拟机
:JVM高级特性与最佳实践》周志明http://www.ityouknow.com/java/2017/03/01
kayfen
·
2020-03-30 01:26
JVM虚拟机系列----(三)垃圾回收机制
----周志明《
深入理解Java虚拟机
》说起垃圾回收机制(GarbageCollection,GC),大部分人都以为这项技术是伴随着Java语言产生的。
梦飞成2012
·
2020-03-29 11:08
那些年读过的技术书籍
没有想象中好,绝大部分都是些配置文件,虽然涉及广泛,但都写的很浅,不知其所以然,入门书籍,勉强当个工具书用用《算法图解》总体的风格还是不错的,有丰富的图解,不足的是算法太简单,适合刚入门的程序员阅读《
深入理解
沐星河
·
2020-03-29 02:22
读《
深入理解Java虚拟机
》- 笔记07
《
深入理解Java虚拟机
:JVM高级特性与最佳实践》第2版第7章虚拟机类加载机制51.类加载器类加载阶段中“通过一个类的全限定名来获取描述此类的二进制字节流”动作放到Java虚拟机外部实现,以便让应用程序自己决定如何获取所需要的类
阿历Ali
·
2020-03-28 01:03
6 类文件结构
本篇及相关的几篇文章是《
深入理解Java虚拟机
:JVM高级特性与最佳实践(第2版)》(周志明,机械工业出版社)这本书的读书笔记,文章中多使用思维导图列出一些章节中的知识点。
zhangweiheb
·
2020-03-28 00:42
jvm垃圾回收之复制算法——为什么分两块Survivor空间
复制算法的两块Survivor空间概述在《
深入理解Java虚拟机
》这本书中,对复制算法有一段这样的介绍:现在的商业虚拟机大多采用复制算法来收集新生代。
那些年的代码
·
2020-03-27 16:00
《
深入理解Java虚拟机
-JVM高级特性与最佳实践》学习总结(第三章)
首先针对垃圾收集提出的两个问题?什么时候回收?怎么回收?针对问题1,为了回答什么时候回收这个问题,就需要清楚处于怎样状态下的对象才需要回收。处于怎样状态下的对象才需要回收?在强引用下,只有当对象失去所有引用的时候,才要对其进行回收。那么如何判断对象处于是否引用的状态呢?目前有两种主流办法:引用计数法引用计数法是指每个对象都有一个引用计数器,每当该对象被引用,计数器加1,失去一个引用,计数器减1。如
雅俗共赏M
·
2020-03-27 12:11
《
深入理解Java虚拟机
实践》之 虚拟机历史与未来
只有读一本书才能系统全面的学习到知识,否则只能碎片化学习某些知识点。感想这是我读后感的第一篇著作,别笑,真是第一篇。,这本书我也是挑着看的,我自己美名曰:不求甚解,也许我只关心我关心的知识点,实用派的想法。虚拟机的发展历史这里纠正了我的一个对Java狭隘的理解,这本书给出Java的定义如下:Java不仅是一门编程语言,还是一个有一系列计算机软件和规范组成的技术体系,这个技术体系提供了完整的用于软件
杨哲丶
·
2020-03-27 10:37
《
深入理解JAVA虚拟机
》学习笔记--垃圾收集算法
标记-清除算法标记-清除算法是最基础的算法,算法分为“标记”和“清除”两个阶段:标记:首先标记出所有需要回收的对象,标记过程可以参考《
深入理解JAVA虚拟机
》学习笔记--对象存活算法。
木子小三金
·
2020-03-27 09:41
深入理解Java虚拟机
(八)之Java内存模型
深入理解Java虚拟机
系列文章
深入理解Java虚拟机
(一)之内存模型
深入理解Java虚拟机
(二)之四种引用
深入理解Java虚拟机
(三)之垃圾收集
深入理解Java虚拟机
(四)之JVM调优
深入理解Java虚拟机
xxq2dream
·
2020-03-27 05:36
推荐书籍 -- JAVA相关(转)
一《
深入理解Java虚拟机
:JVM高级特性与最佳实践》如果你不满足于做一个只会写if…else…的Java程序员,而是希望更进一步,我随便举几个例子吧:1、了解Java代码的底层运行机制2、定位性能问题
弘毅_道远
·
2020-03-26 23:25
字符串常量池
概述在分析字符串常量池之前,先来分析一下java的内存区域,然后再各种的情况分析一下各种情况下的情况;mark在《
深入理解java虚拟机
》这本书上是这样写的:对于HotSpot虚拟机,根据官方发布的路线图信息
riverhh
·
2020-03-26 21:10
深入理解java虚拟机
——读书笔记1
JVM:指以软件的方式模拟具有完整硬件系统功能,运行在一个完全隔离环境中的完整计算机系统。JVM主要包含3个子系统:类加载子系统,运行时数据区,执行引擎。本篇笔记主要关于运行时数据区。1.java内存区域与运行内存异常1.1运行时数据区域转自https://blog.csdn.net/qq_41701956/article/details/816649211.1.1程序计数器程序计数器(Progr
DaemonXiao
·
2020-03-26 11:12
Class类文件结构
深入理解Java虚拟机
类文件结构各种不同平台的虚拟机与所有平台都统一使用的程序存储格式—字节码(ByteCode)是构成平台无关性的基石.实现语言无关性的基础仍然是虚拟机和字节码存储格式。Java虚拟机不和包括Java在内的任何语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指令集和符号表以及若干其他辅助信息。基于安全方面的考虑,Java虚拟机规范要求在Class文
好好学习Sun
·
2020-03-25 22:53
关于String.intern()的一个疑惑
今天看《
深入理解Java虚拟机
》,看到第二章关于String.intern()的测试的时候,有这样一个例子publicstaticvoidmain(String[]args){Stringstr1=newStringBuilder
Eric新之助
·
2020-03-25 14:18
深入理解Java虚拟机
总结-Java对象在内存中的分布
注:此文是我在读完周志明老师的
深入理解Java虚拟机
之后总结的一篇文章,请阅读此书获取更加详细的信息.Java运行时数据区Java运行时数据区分为下面的几块区域:程序计数器:线程独立的一块区域,保存了下一条指令的地址
AlstonWilliams
·
2020-03-24 18:33
2.3 HotSpot虚拟机对象探秘
参考《
深入理解Java虚拟机
JVM高级特效与最佳实践》2.31.Objectobject=newObject();虚拟机遇到一条new指令时,先去常量池里检查有没有目标类名的符号引用,并且检查这个符号引用代表的类是否已经被加载
小山包
·
2020-03-24 14:38
未来的路很长,我们踏踏实实走进BAT
Java相关的书也看个三四本:corejava
深入理解java虚拟机
jcipeffectivejava然后csapp有空的话也可以看一看至于项目,我想你总是参与过几个了,斟酌一下是否能写到简历上去。
伽娃程序猿
·
2020-03-24 05:32
《
深入理解Java虚拟机
》读书笔记5--字节码执行引擎
字节码执行引擎是Java虚拟机最核心的组成部分之一。虚拟机是相对于物理机的概念,两者都有代码执行能力。不同的是物理机的执行引擎直接建立在物理硬件和操作系统层面上,而虚拟机的执行引擎则有自己的指令集,可以执行不被硬件直接支持的指令Java虚拟机规范中制定了虚拟机执行引擎的概念模型,不同的虚拟机只要满足这个概念模型的要求(输入字节码,处理过程是字节码解析的等效过程,输出执行结果),具体的实现可以自行制
虾_米_
·
2020-03-24 00:33
JVM运行时数据区域介绍
此处的内容是根据Java虚拟机规范(JavaSE7)相关内容以及
深入理解Java虚拟机
等做的总结。可能有不对的地方。
加大装益达
·
2020-03-23 17:13
《
深入理解java虚拟机
》-晚期(运行期)优化
概述在部分的商用虚拟机中,java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为“热点代码”(HotSpotCode)。为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个过程的编译器称为即时编译器(JustInTimeCompiler)java虚拟机
xiedacon
·
2020-03-23 12:42
上一页
32
33
34
35
36
37
38
39
下一页
按字母分类:
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
其他