JDK1.8之前的堆内存示意图: 从上图可以看出堆内存的分为新生代、老年代和永久代。新生代又被进一步分为:Eden 区+Survior1 区+Survior2 区。值得注意的是,在 JDK 1.8中移除整个永久代,取而代之的是一个叫元空间(Metaspace)的区域(永久代使用的是JVM的堆内存空间 ...
分类:
编程语言 时间:
2021-02-23 14:04:14
阅读次数:
0
JVM 执行子系统中有自己的类文件存储结构和字节码及其字节码指令,,,指令系统,,如何识别运行 虚拟机类加载机制 JVM调用方法有五条指令,分别是invokestatic,invokespecial,invokevirtual,invokeinterface,invokedynamic。invoke ...
分类:
编程语言 时间:
2021-02-22 12:06:45
阅读次数:
0
介绍 jar包 假设将整个项目视为一堵墙,那么jar包就是砖块,将写好的类进行打包的过程就是烧制砖块的过程。jar包是class文件和部署文件的归档,不包含静态文件,它不仅用于压缩和发布,还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 之类的工具直接使用,jar包在产品开发阶段较为常用 ...
分类:
编程语言 时间:
2021-02-22 12:02:23
阅读次数:
0
来源>https://zhuanlan.zhihu.com/p/43278214 JVM是java virtual machine(java虚拟机)的缩写,JVM是一种用于计算机设备的规范,它是一个虚构的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 JDK JDK(Java Dev ...
分类:
其他好文 时间:
2021-02-22 11:46:22
阅读次数:
0
参考原博文:https://blog.csdn.net/weixin_34026276/article/details/85930598 Java VisualVM默认没有安装Visual GC插件,需要手动安装,JDK的安装目录的bin目录下双击jvisualvm.exe,即可打开Java Vis ...
分类:
其他好文 时间:
2021-02-20 12:43:16
阅读次数:
0
线上故障主要包括cpu 磁盘 内存 网络等问题 依次排查 1.cpu 1) 先用ps找到进程pid 2) top -H -p pid 找到cpu占用高的线程 3)printf '%x\n' pid 获得16进制的nid 4) jstack pid |grep 'nid' -C5 -color 显示堆 ...
分类:
其他好文 时间:
2021-02-20 11:45:56
阅读次数:
0
异常概述 异常指程序运行中出现的不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。 异常发生在程序运行期间,它影响了正常的程序执行流程。 异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据。 要打开的文件不存在。 网络通信时连接中断,或者JVM内存溢出。 要理解Java异常处 ...
分类:
编程语言 时间:
2021-02-19 13:12:17
阅读次数:
0
第二章 Java语言开发环境搭建(p5) 2.1 Java虚拟机——JVM JVM(java Virtual Machine):java虚拟机,简称JVM,是运行所有java程序的假象计算机,是java程序的运行环境,是java最具吸引力的特性之一。我们编写的java代码,都运行在JVM之上。 跨品 ...
分类:
编程语言 时间:
2021-02-18 13:34:40
阅读次数:
0
一、JVM概念 Java虚拟机:Java Virtual Machine(JVM)是一个抽象的计算模型,相对于实体计算机,它是一个虚拟的环境,有自己的指令集和执行引擎,可以在运行时操控内存区域。 目的:为在JVM之上运行的应用程序,提供一个运行环境。可以开发自己的JVM。 二、类文件格式 1. JV ...
分类:
编程语言 时间:
2021-02-16 12:48:38
阅读次数:
0
1.Mark-Sweep算法 整个算法分为标记和清除两个部分。 标记阶段采用可达性分析算法。可达性分析算法从GC roots出发,寻找引用的对象,如果对象被遍历到,则标记。 清除阶段对目标空间进行遍历,若对象没有被标记过,则清除该对象。时间复杂度为O(n),结果会导致空间中存在大量碎片(零碎空间), ...
分类:
编程语言 时间:
2021-02-15 12:21:19
阅读次数:
0