现在用一张图来介绍每个区域存储的内容。 ? 运行时数据区怎么理解?JVM运行时首先需要类加载器(classLoader)加载所需类的字节码文件。加载完毕交由执行引擎执行,在执行过程中需要一段空间来存储数据(类比CPU与主存)。这段内存空间的分配和释放过程正是我们需要关心的运行时数据区。 运行时数据区 ...
分类:
编程语言 时间:
2019-11-27 00:51:35
阅读次数:
96
java agent 详细介绍 简介 java agent是java命令的一个参数。参数 javaagent 可以用于指定一个 jar 包,并且对该 java 包有2个要求: 重点就在 premain 方法,也就是我们今天的标题。从字面上理解,就是运行在 main 函数之前的的类。当Java 虚拟机 ...
分类:
编程语言 时间:
2019-11-26 13:24:42
阅读次数:
82
java虚拟机学习一 挖一个大坑有时间就去填,先来一张图来自公众号@芋道源码,大概会根据这张图去搜索相关知识并学习(图比较大,建议放大或者下载查看) 加载过程 可分为三个主要过程:加载(Loading)→链接(Linking)→初始化(Initialization)。此过程中的连接又分为三个过程:验 ...
分类:
编程语言 时间:
2019-11-25 18:20:32
阅读次数:
99
官网:https://www.scala-lang.org/ Scala概述 Scala(发音为/?skɑ?l?, ?ske?l?/)是一门多范式的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序,Scala的编... ...
分类:
其他好文 时间:
2019-11-25 18:07:13
阅读次数:
60
1、jvm分类 1.1.Hotspot VM 是之前使用最广泛的Java虚拟机, 1.2.JRockit VM 是BEA 开发的一款虚拟机是 号称 "运行最快的java虚拟机"、 1.3.J9 VM 是IBM开发的一款虚拟机 1.4.Dalvik Vm 是Google 开发的一款移动端虚拟机 总结: ...
分类:
其他好文 时间:
2019-11-24 19:57:08
阅读次数:
100
在不同的java虚拟机里面,执行引擎在执行java代码时可能会解释执行(通过解释器进行执行)也可能会编译执行(通过即时编译器产生本地代码进行执行),也可能两者兼备,甚至还可能包含几个级别不同的编译器执行引擎。 栈帧是虚拟机进行方法调用和方法运行的数据结构,是虚拟机运行时虚拟机栈的栈元素,存储了方法的 ...
分类:
编程语言 时间:
2019-11-24 10:18:15
阅读次数:
76
转自:https://www.cnblogs.com/pony1223/p/8661219.html 零、在IDE的后台打印GC日志: 既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是一些人为确定的规则,没有太多技术含量。 既然如此,那么在IDE的控制台打印GC日志是必不可 ...
分类:
编程语言 时间:
2019-11-24 09:24:48
阅读次数:
63
1.内存概述 内存是计算机中的重要原件,临时存储区域,作用是运行程序。我们编写的程序是存放在硬盘中的,在硬盘中的程 序是不会运行的,必须放进内存中才能运行,运行完毕后会清空内存。 Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。 2 Java虚拟机的内存划分 为了提高运算效率,就对空间进 ...
分类:
编程语言 时间:
2019-11-24 00:08:44
阅读次数:
94
作者:平凡希 原文地址:https://www.cnblogs.com/xiaoxi/p/6486852.html 一、为什么需要垃圾回收 如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收。除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此。所以,垃圾回收 ...
分类:
编程语言 时间:
2019-11-24 00:00:45
阅读次数:
73
作者:平凡希 原文地址:https://www.cnblogs.com/xiaoxi/p/7518259.html 一、什么是Java内存模型 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的访问差异,以实现让Java程序在各 ...
分类:
编程语言 时间:
2019-11-23 23:50:21
阅读次数:
112