JVM的学习笔记

当几何失效时:3D激光SLAM退化场景的本质与应对策略 本文探讨了3D激光SLAM在退化场景(如长廊、隧道等)中的挑战与解决方案。文章从数学角度分析了退化原因,指出信息矩阵秩亏导致某些方向约束缺失。主流算法采用不同策略应对:LeGO-LOAM利用地面约束与解耦优化;LIO-SAM/LVI-SAM通过多传感器融合补偿;FAST-LIO系列依赖IMU短期积分。新兴的RID-LIO方案创新性地利用激光强度信息增强约束,实验显示精度提升63.59%。研究表明,针对不同退化方向需要采用特异性补偿策略,而挖掘现有传感器的潜在信息维度是提升鲁棒性的有效途径。 阅读详情

什么是JVM

  • JVM是java虚拟机(Java Virtual Machine)。java虚拟机是啥呢,就是跑java程序(.class文件)的虚拟机。

  • JVM最大的特点是跨平台,一次编译,多处运行。编译成.class文件后,可以在windows、linux等服务器运行。

  • 如何实现的跨平台呢?jdk有linux的、windows的,32位的、64位的。通过jdk对系统的适配,实现跨平台。

  • JVM里都有啥?jvm包含类装载子系统、运行时数据区(常说的jvm内存结构)、字节码执行引擎。

  • 类加载器子系统负责加载程序中的类型(类和接口)。执行引擎负责执行被加载类中包含的指令。虚拟机跑起来,当然需要内存,我们称为:运行时数据区(Runtime Data Area)

  • JVM内存结构中都有啥?多个线程公有的部分:堆、方法区(里面包含常量池)。线程私有的部分:栈、本地方法栈、程序计数器。

  • 还有个概念是java内存模型(JMM)
    下图不是java内存模型,是java内存结构。java内存结构是真实存在的,而java内存模型
    在这里插入图片描述

JDK、JRE与JVM

上面简单介绍了JVM,可咱们平时接触的实物是JDK、JRE。他们之间有什么关系呢?

  • JDK:JDK(Java Development Kit) 是 Java语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib合起来就称为jre。
  • JRE:JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)。
  • JVM:JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

综上所述:jdk包含jre,jre包含jvm。

在这里插入图片描述
下面是官网对jdk、jre、jvm介绍的图片。图片取自
https://docs.oracle.com/javase/8/docs/index.html

在这里插入图片描述

从java文件到class文件

平时写程序写的是.java文件,这是程序源码,如何部署运行在服务器上呢?

  • 通过开发工具如eclipse、idea,编写.java文件。
  • 然后开发工具会编译成.class文件,或者通过javac命令将.java文件编译成.class文件,生成jar包或者war包。
  • 服务器上安装jdk,如linux系统安装linux对应的jdk。
  • 服务器上通过Tomcat等中间件,运行war包或者jar包。

这里还有java编译器的内容,以后学习

在这里插入图片描述

java运行时数据区

  • java堆。线程公有
  • 方法区。线程公有
  • java虚拟机栈。线程私有
  • 本地方法栈。线程私有
  • 程序计数器。线程私有

java堆

堆是java虚拟机管理的最大一块内存,堆线程公有的一块内存,在虚拟机启动时创建。该区域是存放对象的实例,所有的对象都在堆上分配内存。
java堆是垃圾回收器主要工作的区域。
对可以按照可扩展来实现(通过-Xmx 和-Xms 来控制)
当队中没有内存可分配给实例,也无法再扩展时,则抛出OutOfMemoryError异常。

方法区

方法区是线程公有的区域,存放已经被虚拟机加载的类信息、常量、静态变量、即时编译的代码等数据。

java虚拟机栈

java虚拟机栈是线程私有的,它的生命周期与线程相同。
java虚拟机栈是描述java方法执行的内存模型。每个方法在执行的同时,会创建一个栈帧,用于存储局部变量表、操作数栈、动态链表、方法出口等信息。每个方法从调用到执行完成的过程,对应着栈帧在虚拟机栈中入栈到出栈的过程。

虚拟机栈中存储的数据类型如下:

  • 局部变量表,存放的是编译器可知的各种基本数据类型boolean、byte、char、short、int、float、long、double,对象引用
  • 操作数栈
  • 动态链表
  • 方法出口
  • 等等

每个方法从调用到执行完毕,对应一个栈帧在虚拟机栈中的入栈和出栈。
通常所说的栈,一般是指在虚拟机栈中的局部变量部分。
局部变量所需内存在编译期间完成分配,
如果线程请求的栈深度大于虚拟机所允许的深度,则StackOverflowError。
如果虚拟机栈可以动态扩展,扩展到无法申请足够的内存,则OutOfMemoryError。
每个线程都分配一个栈内存区域。
每个方法对应一个栈帧。

本地方法栈

与java虚拟机栈类似,主要是为虚拟机使用到的native方法服务,同样是线程私有的

程序计数器

程序计数器是一块儿较小的内存空间,可以看成是当前线程所执行字节码行号指示器。
因为java的多线程是通过多个线程流转切换并分配处理器执行时间来实现的,因此在任意一个时刻,一个处理器只会执行一个线程的指令,因此为了线程切换后能恢复到指定位置,每个线程都有个独立的程序计数器,可以看出程序计数器是线程私有的。

若执行java方法,程序计数器记录的是当前指令的地址;
若执行native方法,记录的是空;

多个线程cpu调度时,会线程之间切换,如线程1切换到线程2,线程2再切换到线程1。当切换到线程2时就会根据程序计数器中记录的当前指令,继续执行

java内存结构总结

  • 每个线程有独立的程序计数器、虚拟机栈、本地方法栈。
  • 如果执行本地方法,会将该本地方法压入到本地方法栈中,并以动态链接的形式链接到本地方法中,程序计数器中存储的是undefined;如果执行的是java方法,会将java方法压入到java虚拟机栈中,程序计数器中存储的是方法的返回地址。
  • 虚拟机栈中存有每个方法的栈帧,调用一个方法则压入一个栈帧。
  • 栈帧中有局部变量表、操作数栈、动态链表、方法出口。
  • 局部变量表中存储方法的参数变量若为引用类型,则存储的是针,指针指向堆中的对象。
  • 堆中的对象指向方法区中的类信息,说明这个对象是什么类型。
  • 堆中的对象包括对象头、实例数据、对齐填充(后面详解)
  • 知道了java的内存结构,如何优化?(后面详解)

类加载子系统

  • 类加载子系统是负责从文件系统或者网络中加载class文件到jvm内存中,class文件在文件开头有特定的文件标识。
  • ClassIoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。
  • 加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)

字节码执行引擎

执行引擎是 Java 虚拟机最核心的组成部分之一。“虚拟机” 是一个相对于 “物理机” 的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行哪些不被硬件直接支持的指令集格式。

在不同的虚拟机实现里面,执行引擎在执行Java代码的时候可能会有解释执行(通过解释器执行)和编译器执行(通过即时编译器产生本地代码执行)两种选择,所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。

每个字节码指令都由一个1字节的操作码和附加的操作数组成。

全新YOLO26有效涨点改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进 🔥《2026年YOLO26改进专栏》🔥 🚀持续更新500+最前沿创新改进点(顶会顶刊论文/独家创新策略),涵盖主干网络、各种卷积、注意力机制、检测头等模块,助力科研论文发表与模型性能提升,支持检测/分割/分类任务。订阅即获完整可运行项目,提供专业QQ答疑群,适合科研发论文(SCI/CCF/核心)及工业应用(PCB/医学/遥感检测)。专栏价格将逐步上涨,早订更优惠! ⭐特色:非计算机专业友好、模块可自由组合、全网独家创新;📌适用:研究生大论文和小论文创新、小目标检测、多领域科研应用,满足不同研究需求。 阅读详情

相关推荐

别再只调IoU了!给YOLOv8换上NWDLoss,实测小目标检测精度提升明显

本文深入探讨了YOLOv8在小目标检测中的优化策略,重点介绍了NWDLoss(Normalized Wasserstein Distance Loss)的应用优势。通过对比实验证明,NWDLoss能有效解决传统IoU损失函数的局限性,显著提升小目标检测精度,在遥感影像和交通监控等场景中表现尤为突出。文章提供了详细的代码实现和训练技巧,帮助开发者快速集成这一先进技术。

weixin_29072299的博客 265

jvm 内存模型划分

jvm 内存模型划分 根据JVM规范,JVM 内存共分为虚拟机栈,堆,方法区,程序计数器,本地方法栈五个部分。 程序计数器(线程私有): 是当前线程锁执行字节码的行号治时期,每条线程都有一个独立的程序计数器,这类内存也称为“线程私有”的内存。正在执行java方法的话,计数器记录的是虚拟机字节码指令的地址(当前指令的地址)。如果是Natice方法,则为空。 java 虚拟机栈 也是线程私有的。 每个...

一五三微月的博客 373

python k线顶分型_【缠论】分型、笔的定义及其程序化

K线包含关系处理和分型的定义如果一个K线的高低点全在另一K线的范围里,称之为包含关系。针对这种K线,需要进行一些处理,去除包含关系,处理方法:向上时,把两K线的高点当高点,而两K线低点中的较高者当成低点;反之,当向下时,把两K线的低点当低点,而两K线高点中的较低者当成高点,这样就把两K线合并成一新的K线。经过这样的处理,所有K线图都可以处理成没有包含关系的图形。两K线的包含关系,可以分成四种:1)...

weixin_39717152的博客 2823

JVM 学习笔记

JVM 学习笔记JVM 学习笔记

cooldatabase 122

经纬度转换为UTM坐标

UTM(通用横向墨卡托投影): 是一种以米为单位的坐标系统,用于地图和GPS导航。将地球划分为60个纵向的区域。每个区域宽6度,从赤道开始往南北两级方向划分。每个区域都有一个特定的字母。

weixin_45626706的博客 7275

MobaXterm隧道配置详解:为PyCharm远程开发打通‘最后一公里’

本文详细解析了如何利用MobaXterm配置SSH隧道,实现PyCharm远程开发的高效连接。通过本地端口转发技术,开发者可以安全访问内网服务器,特别适用于需要通过跳板机的复杂网络环境。文章涵盖从基础配置到企业级运维的全套解决方案,包括性能优化、安全加固等实用技巧。

weixin_30566063的博客 503

JVM学习笔记

JVM学习笔记

m0_46602930的博客 138

Arduino+L298N电机驱动模块避坑指南:从接线到PWM调速的5个常见错误

本文详细解析了使用Arduino与L298N电机驱动模块时,从电源配置、跳线帽使用到PWM调速的5个常见错误与避坑指南。重点阐述了如何正确分离逻辑与电机电源、拔掉ENA/ENB跳线帽以实现PWM调速、理解H桥接线逻辑以控制直流电机正反转,并提供优化代码与散热建议,帮助开发者稳定驱动电机。

rust6ferris的博客 561

jvm学习笔记

附件中是最近jvm的学习笔记分享给大家,如有不足之处请指出

翻过这座山,就到菩提洞了 128

Zemax操作33--5倍激光扩束器

5倍扩束

lzy750750的博客 2930

告别以太网瓶颈:手把手教你为AI训练集群搭建InfiniBand网络(以NVIDIA DGX A100/H100为例)

本文详细指导如何为AI训练集群搭建InfiniBand网络,解决以太网瓶颈问题,特别针对NVIDIA DGX A100/H100系统。通过硬件选型、网络架构设计和性能调优,显著提升多机多卡训练效率,适用于大规模模型训练场景。

weixin_30336061的博客 309

JVM学习笔记之CodeCache

JVM学习笔记之CodeCache - Java老K - 博客园

weixin_35843253的博客 205

轨道平面系与轨道姿态系

文章摘要: 轨道平面系与轨道姿态系是航天任务中两个核心坐标系。轨道平面系(惯性系)以地心为原点,Z轴沿轨道角动量方向,用于轨道确定和机动规划;轨道姿态系(如LVLH系)以航天器质心为原点,Z轴指向地心,用于姿态控制和对地观测。两者通过旋转矩阵相互转换:轨道平面系基于轨道根数构建,保持静态;而LVLH系随轨道运动连续旋转。前者适用于全局轨道分析,后者支撑局部任务执行。理解二者的定义差异(原点、基准轴、惯性属性)及数学转换关系,对航天器姿态轨道控制系统的设计与操作至关重要。

ScilogyHunter的博客 85

JVM最佳学习笔记---总览

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33724659的博客 160

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【JVM】学习笔记

Java虚拟机(JVM)是一个抽象的计算机,用于运行Java程序,通过将字节码转换为机器码实现跨平台性。JVM架构包括类加载子系统、运行时数据区(如方法区、堆、栈等)和垃圾回收机制(GC),后者负责自动回收不再使用的对象。JVM的执行过程涉及字节码的加载、解释执行和即时编译(JIT),以提高性能。性能调优可通过调整堆内存、垃圾回收器和JVM参数实现。JVM还支持多线程和内存模型,确保线程安全。常见问题包括内存泄漏、OOM和性能瓶颈。直接内存是JVM外的高性能内存区域,常用于NIO操作,需手动管理。JVM与其

了凡 1053

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

JVM 基础知识学习笔记

JVM 一个运行在计算机上的程序,它的职责是运行 Java 字节码文件。

Gjw_java的博客 1155

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

(转)JVM学习笔记

JVM学习笔记 http://zjkilly.iteye.com/blog/772825

haoppywang的专栏 87

JVM学习笔记(1)-JVM总体篇

目录 0 前言 1 Java体系描述 1.1 Java体系构成 1.2 Java平台描述 2 JVM体系描述 2.1 JVM基本概念 2.2 ​​​​​​​JVM运行原理 3 示例 参考 0 前言      最近买了周志明的《深入理解Java虚拟机 JVM高级特性与最佳实践 》,结合网上的相关文章资料,尝试做一套JVM学习笔记,也算整理和巩固。相关引用文章,已罗列在参考篇中,...

wingsing2010的专栏 4700

JVM学习笔记 01、初识JVM

文章目录前言一、什么是JVM二、学习jvm的用途三、常见的jvm四、学习路线 前言 本篇博客是跟随黑马程序员JVM完整教程,全网超高评价,全程干货不拖沓的学习JVM的笔记,若文章中出现相关问题,请指出! 所有博客文件目录索引:博客目录索引(持续更新) 一、什么是JVM 定义:Java Virtual Machine - java 程序的运行环境(java 二进制字节码的运行环境) 好处: 一次编写,到处运行:JVM屏蔽了字节码和底层操作系统的差异,对外提供了一致的运行环境。解释的方法执行二进制字节码来达到

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 859

JVM学习笔记1-JVM结束生命周期的几种情形

执行System.exit()方法 程序正常执行结果 程序在执行过程中遇到了异常或错误而终止 由于OS错误而导致JVM进程终止

lu322313的博客 188

JVM学习笔记10 - 类加载器总结

bilibili-深入理解JVM 虚拟机 学习笔记 JVM学习笔记 1 JVM学习笔记 2 JVM学习笔记 3 JVM学习笔记 4 JVM学习笔记 5 JVM学习笔记 6 JVM学习笔记 7 JVM学习笔记 8 JVM学习笔记 9 P32_JVM类加载器阶段性总结与学习方式升级(32) ...

晨猫 280

狂神说JVM学习笔记

静态变量、常量:static final类信息(构造方法、接口定义):Class文件,包括类的属性方法注解修饰符运行时的常量池:常量池栈栈的运行原理:通过栈帧对每一个方法进行调用栈里存放方法里局部变量的值(如果是基本数据类型,引用和值都存储在栈里)存放在局部变量表中如果时局部变量表中要存储的是字符串,那就是存储堆里面字符串常量池的地址,如果是存储的值,那就把值从方法区的运行时常量值中取出来,放进去(放的是值而不是地址),只有运行时才会存储,如果不运行局部变量表里就没有东西。

wangmr810的博客 1676

JVM学习笔记1

主要有五个阶段:(下面会重点讲解前三个阶段)

kwert666的博客 1647

JVM学习笔记总结

jvm堆大小限制的参数配置VM Args:-Xms20m -Xmx20m -XX:+HeapDumpOutOfMemoryError 虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照。分析堆快照来确定是内存溢出还是泄漏。jvm栈大小限制的参数配置本地方法栈:-Xoss(HotSpot不可用),-Xss参数设定。如:-Xss128k多线程内存溢出,单线程栈溢出在硬件条件和业务要求下,只能通过...

Seeker-Wu的专栏 383
上一篇: java序列化
下一篇: 计算机的单位
ludkjava
博客等级 码龄11年 173粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值