类加载子系统: 加载Class信息. java的NIO允许使用直接内容, 适用于读写频繁场景,不受限于Xms. ...
分类:
其他好文 时间:
2020-11-12 14:14:28
阅读次数:
7
概述当你的Java业务容器化上K8S后,如果对其进行监控呢?Prometheus社区开发了JMXExporter来导出JVM的监控指标,以便使用Prometheus来采集监控数据。本文将介绍如何利用Prometheus与JMXExporter来监控你Java应用的JVM。什么是JMXExporter?JMXExporter利用Java的JMX机制来读取JVM运行时的一些监控数据,然后将其转换为Pr
分类:
其他好文 时间:
2020-11-12 14:10:22
阅读次数:
9
1. JVM的类加载机制是什么?有哪些实现方式? 类加载机制: 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法去内,然后在堆区创建一个java.lang.Class对象,用来封装在方法区内的数据结构。类的加载最终是在堆区内的Class对象,Class对象封 ...
分类:
数据库 时间:
2020-11-12 13:30:24
阅读次数:
10
Java高级: 掌握多线程。 掌握并发包下的队列。 掌握JMS。 掌握JVM。 掌握反射和动态代理.并发包下的队列。 多线程: 多线程的两种实现方式: 1、继承Thread类。 2、实现Runnable接口。 (一)先申明一个类,继承Thread类;在类中重写run()方法;调用start函数。 p ...
分类:
编程语言 时间:
2020-11-11 16:05:14
阅读次数:
6
为什么要学习Java对象头 学习Java对象头主要是为了解synchronized底层原理,synchronized锁升级过程,Java并发编程等。 JAVA对象头 由于Java面向对象的思想,在JVM中需要大量存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些标记字段用于增强对象功能,这 ...
分类:
编程语言 时间:
2020-11-11 15:48:11
阅读次数:
7
![image-20201109194801135](https://typora-oss.oss-cn-beijing.aliyuncs.com/image-20201109194801135.png) ![image-20201109194821190](https://typora-oss.o... ...
分类:
其他好文 时间:
2020-11-10 11:08:20
阅读次数:
7
虚拟机整体内存结构如下: 1. 内存区域 内存区域核心包含以下几部分:程序计数器、JAVA虚拟机栈、本地方法栈、方法区和堆。有的是线程级别的【一个线程会单独启动一个内存区域】,比如:程序计数器、JAVA虚拟机栈、本地方法栈。有的是虚拟机启动就存在的,不同线程共享使用。比如:堆和方法区。所有线程加载的 ...
分类:
其他好文 时间:
2020-11-10 10:30:43
阅读次数:
2
1. 判断对象存活 回收内存首先需要判断,那些内存需要回收。即需要判断那些对象还存活着,则这些是不需要被回收的。 (1) 引用计数法 原理:对象中添加一个引用计数器。被引用则累计。则计数器中数值大于0,则代表仍然被引用,不能被回收。 缺点:不能解决循环引用的情况。 (2) 可达性分析法 原理:从一些 ...
分类:
其他好文 时间:
2020-11-10 10:27:32
阅读次数:
8
输入与输出 将数据读入到虚拟机中==>输入 将数据从内部到外部存储起来或显示出来(如输出到控制台)==>输出 IO概念 在传输数据的时候,需要一个流(对象)的概念。而流简单而言就是内存与存储设备之间传输数据的通道,管道 JVM(虚拟机) 磁盘上的文件作为数据源。 流< 文件 虚拟机 将磁盘上的文件传 ...
分类:
编程语言 时间:
2020-11-08 17:17:06
阅读次数:
22
我们知道C/C++语言中有断言的功能(assert)。在Java SE 1.4版本以后也增加了断言的特性。 断言是为了方便调试程序,并不是发布程序的组成部分。理解这一点是很关键的。 默认情况下,JVM是关闭断言的。因此如果想使用断言调试程序,需要手动打开断言功能。在命令行模式下运行Java程序时可增 ...
分类:
编程语言 时间:
2020-11-07 17:47:05
阅读次数:
23