JVM
xk_一步一步来
一步一步
展开
-
【深入Java虚拟机】之八动态类型语言支持
这篇博客是根据《深入理解java虚拟机》的讲解和本人对动态类型语言的一些认识,来深度剖析一下java虚拟机对动态类型语言的支持!JDK存在js执行引擎(一)什么是动态类型语言在讲解java虚拟机对动态类型语言支持之前,我们首先要弄明白动态类型语言是什么?它与java语言、java虚拟机有什么关系?那么...转载 2019-01-10 17:04:00 · 486 阅读 · 0 评论 -
【深入Java虚拟机】之精华总结(面试)
一.运行时数据区域 Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、堆、本地方法栈、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区。 1.1程序计数器 程序计数器是一块较小的内存,他可以看做是当前线程所执行的行号指示器。字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节码的指令,分支、循环、跳转、异常处理、线程恢复等...转载 2019-01-09 20:27:02 · 242 阅读 · 0 评论 -
【深入Java虚拟机】之九:类加载及执行子系统的案例与实战
摘自《深入理解 Java 虚拟机:JVM 高级特性与最佳实践》(第二版)概述        在 Class 文件格式与执行引擎这部分中,用户的程序能直接影响的内容并不太多,Class 文件以何种格式存储转载 2019-01-09 17:31:31 · 258 阅读 · 0 评论 -
JVM调优之JConsole和JVisualVM工具使用
转自:https://blog.csdn.net/shijing266/article/details/81511687JVM调优过程中,常用JDK自带的两个工具JConsole和JVisualVM,有助于分析问题。下面是两个工具的使用方式。(我发现好多小伙伴居然都不知道这么强大的工具) 一、JConsole使用。 1、JConsole本地监控启动首先在JDK的bi...转载 2019-03-01 14:08:05 · 220 阅读 · 0 评论 -
jvisualvm 工具使用
转自:https://www.cnblogs.com/kongzhongqijing/articles/3625340.html jvisualvm 工具使用 VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带(java启动时不需要特定参数,监控工具在bin/jvisualvm.exe)。 https...转载 2019-03-01 18:52:02 · 1174 阅读 · 0 评论 -
Eclipse内存优化 -Xms128m -Xmx512m
最近使用eclipse开的工程较多或者说工程中的较多时,老是出现内存溢出的问题。 前一段时间问问别人怎么解决,说是将安装目录下的eclipse.ini文件中的-Xms40m和-Xmx256m两项改大点就好,可改后发现还是一个样。有人说将一些不用的工程关掉,这确实是有点作用。但是当目前所操作工程中包含太多的类时,还是老是内存不足。 &nb...转载 2019-03-01 18:52:47 · 543 阅读 · 0 评论 -
记一次解决OutOfMemoryError: Java heap space详细过程与解决思路(jvisualvm解决问题案例详细分析)
转自:https://blog.csdn.net/lyflyyvip/article/details/82288719喧哗的夜满地银光。望向窗外, 星的眨眼频率格外的高,低眼看泛着油光的键盘,心中的寂寞。。。 滴滴,靠着每天【ctrl+alt+w】几千+的惯性,打开最【嘿嘿嘿】的聊天软件,心中不免惆怅,已过午时三刻,还tm不下班。 惆 惆啥?油光的脸瞬间露出一缕微笑,惺忪的眼也充...转载 2019-03-01 19:00:18 · 370 阅读 · 0 评论 -
深入理解java虚拟机思维导图
转自:https://blog.csdn.net/qq_23934475/article/details/83039243https://download.csdn.net/download/qq_23934475/10718225xmind格式转载 2019-03-14 09:48:08 · 167 阅读 · 0 评论 -
Eclipse Memory Analysis的安装和使用
转自:https://blog.csdn.net/wizard_rp/article/details/73266194 简单描述一下Eclipse中Memory Analysis toos插件的安装和使用,以下简称MAT。 1. 安装 在Eclipse help -> Eclipse Marketplace下搜索Memory: 图 1-1 搜索MAT插件 按照步...转载 2019-03-14 10:31:03 · 260 阅读 · 0 评论 -
Tomcat 类加载器之为何违背双亲委派模型
转自:https://blog.csdn.net/qq_38182963/article/details/78660779这是我们研究Tomcat的第四篇文章,前三篇文章我们搭建了源码框架,了解了tomcat的大致的设计架构, 还写了一个简单的服务器。按照我们最初订的计划,今天,我们要开始研究tomcat的几个主要组件(组件太多,无法一一解析,解析几个核心),包括核心的类加载器,连接器和容器,还...转载 2019-03-15 23:59:09 · 196 阅读 · 0 评论 -
OSGI类加载器
OSGI类加载器原创 2019-03-16 00:10:29 · 213 阅读 · 0 评论 -
Java方法调用——解析与分派
转自:https://blog.csdn.net/itcats_cn/article/details/81144036关于方法调用的几个字节码指令:invokestatic     invokespecial     invokevirtual       invokeInterface   &转载 2019-03-16 10:14:53 · 272 阅读 · 0 评论 -
深入理解java虚拟机
https://blog.csdn.net/zq602316498/column/info/zqjvm转载 2019-03-16 10:18:00 · 97 阅读 · 0 评论 -
JVM 方法调用之动态分派
转自:https://www.cnblogs.com/SirSmith/p/6789989.html 1. 动态分派一个体现是重写(override)。下面的代码,运行结果很明显。 1 public class App { 2 3 public static void main(String[] args) { 4 Super object =...转载 2019-03-16 10:45:18 · 197 阅读 · 0 评论 -
JVM汇总篇
转自: https://blog.csdn.net/wolf_love666/article/details/85712922书中内容来自于深入理解java虚拟机,作者周志明。会融合自己的知识和理解来记录下来,为了赚钱而奋斗!Day Day Up !!!前期准备:准备篇(一)内存管理内存如何划分、内存溢出的原因----点击这里内存分配和垃圾回收-----点击这里(二)虚拟机如何...转载 2019-03-16 11:10:20 · 176 阅读 · 0 评论 -
全面理解Java内存模型
转自:https://blog.csdn.net/suifeng3051/article/details/52611310Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内...转载 2019-03-16 11:31:24 · 131 阅读 · 0 评论 -
深入理解Java对象的创建过程:类的初始化与实例化
https://blog.csdn.net/justloveyou_/article/details/72466416摘要: 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完成类的初始化。在类初始化过程中或初始化完毕后,根据具体情况才会去对类...转载 2019-04-25 18:44:11 · 509 阅读 · 0 评论 -
类加载机制&面试题分析
https://blog.csdn.net/u011080472/article/details/51332866类加载器加载类的开放性类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因。在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取定义此类的二进制字节流,完成这个动作的代码块就是类加载器。这一动作是放在Java虚拟机外部去实现的,以...转载 2019-04-27 00:48:21 · 273 阅读 · 0 评论 -
【深入Java虚拟机】之Java虚拟机工作原理详解
转自:https://blog.csdn.net/bingduanlbd/article/details/8363734一、类加载器首先来看一下java程序的执行过程。                 转载 2019-01-09 20:25:06 · 215 阅读 · 0 评论 -
【深入Java虚拟机】之七:深入JVM字节码执行引擎
我们都知道,在当前的Java中(1.0)之后,编译器讲源代码转成字节码,那么字节码如何被执行的呢?这就涉及到了JVM的字节码执行引擎,执行引擎负责具体的代码调用及执行过程。就目前而言,所有的执行引擎的基本一致:输入:字节码文件处理:字节码解析输出:执行结果。物理机的执行引擎是由硬件实现的,和物理机的执行过程不同的是虚拟机的执行引擎由于自己实现的。运行时候的栈结构每一个线程都有一个...翻译 2019-01-09 15:42:17 · 232 阅读 · 0 评论 -
【深入Java虚拟机】之十早期(编译期)优化
Java编译(二)Java前端编译:Java源代码编译成Class文件的过程          &am转载 2019-01-11 15:31:52 · 245 阅读 · 0 评论 -
【深入Java虚拟机】之内存区域详解(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)
转自:https://www.cnblogs.com/haitaofeiyang/p/8392268.html1.内存区域划分根据我们之前介绍的垃圾收集算法,限定商用虚拟机基本都采用分代收集算法进行垃圾回收。根据对象的生命周期的不同将内存划分为几块,然后根据各块的特点采用最适当的收集算法。大批对象死去、少量对象存活的,使用复制算法,复制成本低;对象存活率高、没有额外空间进行分配担保的,采用标记...原创 2019-01-11 17:07:22 · 5664 阅读 · 0 评论 -
深入java虚拟机(六)——一道面试题搞懂JVM类加载机制
          在前面两篇博客中我们简单介绍了类加载器的基础和类的生命周期的基础内容,今天我们来继续深入的来看一下java的类加载器的详细内容。我们都知道。类加载器用来把类加载到java虚拟机。从JDK2.0开始,类的加载过程采用父亲委托机制。JVM的ClassLoader采用的是树形结构,除了根类加载器以外,每个ClassLoader都会有且...转载 2019-01-07 08:54:15 · 209 阅读 · 1 评论 -
JMeter入门教程
转自:https://blog.csdn.net/zl1zl2zl3/article/details/78194194 简介本文由xmeter君写给想了解性能测试和JMeter的小白,适合对这两者了解很少的同学们,如果已经有使用经验的请绕道,别浪费时间:-)  我们将介绍JMeter的使用场景,如何安装、运行JMeter,以及开始一个最最简单的测试。你还徘徊在JMeter...原创 2019-01-13 13:28:09 · 298 阅读 · 0 评论 -
【深入Java虚拟机】之一:Java内存区域与内存溢出
转自:https://blog.csdn.net/mmc_maodun/article/details/17565503内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。下面详细阐述...转载 2019-01-08 20:41:47 · 203 阅读 · 0 评论 -
【深入Java虚拟机】之二:Class类文件结构
转自:https://blog.csdn.net/mmc_maodun/article/details/17675609平台无关性 Java是与平台无关的语言,这得益于Java源代码编译后生成的存储字节码的文件,即Class文件,以及Java虚拟机的实现。不仅使用Java编译器可以把Java代码编译成存储字节码的Class文件,使用JRuby等其他语言的编译...转载 2019-01-08 20:44:15 · 123 阅读 · 0 评论 -
【深入Java虚拟机】之三:类加载机制
类加载过程    类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示:    其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以...转载 2019-01-08 20:47:27 · 156 阅读 · 0 评论 -
【深入Java虚拟机】之四:类初始化
    类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码。虚拟机规范严格规定了有且只有四种情况必须立即对类进行初始化:遇到new、getstatic、putstatic、invokestatic这四条字节码指令时,如果类还没有进行过初始化,则需要先触发其初始化。生成这四条指令最常见的Java代码场景是:使用new关键字实例化对象时、读取或设...转载 2019-01-08 20:48:52 · 138 阅读 · 0 评论 -
【深入Java虚拟机】之五:Java垃圾收集机制
对象引用    Java中的垃圾回收一般是在Java堆中进行,因为堆中几乎存放了Java中所有的对象实例。谈到Java堆中的垃圾回收,自然要谈到引用。在JDK1.2之前,Java中的引用定义很很纯粹:如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。但在JDK1.2之后,Java对引用的概念进行了扩充,将其分为强引用(S...转载 2019-01-08 20:54:23 · 199 阅读 · 0 评论 -
【深入Java虚拟机】之六:GC收集器以及JDK7,JDK8中JVM内存变化
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。GC收集器如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所...转载 2019-01-08 20:58:07 · 317 阅读 · 0 评论 -
深入理解Java虚拟机到底是什么
什么是Java虚拟机作为一个Java程序员,我们每天都在写Java代码,我们写的代码都是在一个叫做Java虚拟机的东西上执行的。但是如果要问什么是虚拟机,恐怕很多人就会模棱两可了。在本文中,我会写下我对虚拟机的理解。因为能力所限,可能有些地方描述的不够欠当。如果你有不同的理解,欢迎交流。我们都知道java程序必须在虚拟机上运行。那么虚拟机到底是什么呢?先看网上搜索到的比较靠谱的解释:虚拟...转载 2019-01-09 15:26:18 · 157 阅读 · 0 评论