Java为什么要在虚拟机中运行 Java如何在虚拟机中运行的 Java虚拟机如何存储运行时的数据 Java虚拟机在内存中划分出堆和栈来存储运行时数据.并且将栈细分为面向Java方法的Java方法栈,面向本地方法的本地方法栈,以及存放各个线程执行位置的PC寄存器. 运行的过程中,每当调用一个方法,Ja ...
分类:
编程语言 时间:
2018-07-30 20:20:47
阅读次数:
224
Java 内存结构 简介 运行时数据区域 java虚拟机在运行时将内存划分为若干个不同的数据区域,这些区域有不同的用途,以及创建和销毁的时间,根据java虚拟机规范的规定,java虚拟机所管理的内存分为以下几个区域。线程共享有: 方法区和堆 ,线程私有的有程序计数器、虚拟机栈(平时说的栈)和本地方法 ...
分类:
编程语言 时间:
2018-07-29 21:12:27
阅读次数:
165
首先这里要收集的日志是容器的日志,而不是集群状态的日志 要完成的三个点,收集,监控,报警,收集是基础,监控和报警可以基于收集的日志来作,这篇主要实现收集 不想看字的可以直接看代码,一共没几行,尽量用调用本地方法实现,有工夫的可以改写成shell脚本 https://github.com/cclien ...
分类:
Web程序 时间:
2018-07-28 11:58:17
阅读次数:
346
在运行时数据区 哪些是线程和线程私有的 01 线程共享 堆 方法区 02 线程私有 虚拟机栈 本地方法栈 程序计数器 下面我来具体的介绍一下这几个名词 程序计数器 : 当前线程执行字节码文件的行号指示器能够在线程切换后找到自己正确的位置 唯一一个不会导致内存溢出 outofmeorm 虚拟机栈: 基 ...
分类:
其他好文 时间:
2018-07-27 23:15:06
阅读次数:
209
android log 在不同层使用不同方法。 1、如果是在Native 代码(hal 和 jni)中使用本地方法 头文件: #include <utils/Log.h> 方法: VERBOSE LOGV(); DEBUG LOGD(); INFO LOGI(); WARN LOGW(); ERRO ...
分类:
移动开发 时间:
2018-07-25 23:09:33
阅读次数:
333
jvm对自己的内存进行了划分,分成5个区域 寄存器:内存和cpu之间(关系不大) 本地方法栈:jvm调用系统中的功能(关系不大) 方法和数据共享:运行时期class文件进入的地方 方法栈:所有的方法运行的时候,进入的地方 堆:存储的是容器和对象 数组的内存图 方法内存图 ...
分类:
其他好文 时间:
2018-07-24 22:26:38
阅读次数:
184
本章内容 本章介绍,JVM运行过程中是怎样划分区域的,堆,栈,方法区,这些是什么鬼?每个区域存储哪些内容? 区域介绍 程序计数器 虚拟机栈 本地方法栈 堆 方法区 本章已Hotspot为例,虚拟机栈和本地方法栈,是合并的 程序计数器(线程私有) 1 作用 存储程序当前执行指令的地址 2 注意 JVM ...
分类:
编程语言 时间:
2018-07-24 17:43:25
阅读次数:
138
一.运行时数据区 1.线程共享和线程私有: 01.线程共享: 堆,方法区 02.线程私有: 虚拟机栈,本地方法栈,程序计数器 2.程序计数器 当前线程执行字节码文件的行号指示器 能够在线程切换之后,找到自己正确的位置 是唯一一个不会导致内存泄漏(OutOfMemory,OOM)的区域 3.虚拟机栈: ...
分类:
其他好文 时间:
2018-07-24 13:10:51
阅读次数:
136
内存溢出异常 除了程序计数器之外,jvm的其他几个运行时区域都存在着OOM异常的可能性 java堆溢出 对象数量达到最大堆的容量限制后 虚拟机栈和本地方法栈溢出 线程请求的栈深度大于虚拟机所允许的最大深度 虚拟机在扩展栈时无法申请到足够的内存空间 方法区和运行时常量池溢出 生成大量的class的情况JDK的可视化工具 JConsole:java监视与管理控制台 概述;类;vm摘要;MBe
分类:
其他好文 时间:
2018-07-22 12:03:41
阅读次数:
206
1. Java虚拟机的架构 1.1 Java的NIO库允许Java程序使用直接内存,访问直接内存的速度优于Java堆。出于性能的考虑,读写频繁的场合会考虑使用直接内存。 1.2 本地方法栈和Java栈非常类似,最大的不同在于Java栈用于Java方法的调用,而本地方法栈用于本地方法的调用。 1.3 ...
分类:
其他好文 时间:
2018-07-20 22:27:02
阅读次数:
189