狂神说JVM学习笔记

狂神说JVM探究.rar B站【狂神说Java】JVM快速入门篇笔记,内有md格式,pdf格式, docx格式笔记,和视频内笔记基本无误。 立即下载

JVM是运行在操作系统上的一个虚拟机环境,示例如下图
在这里插入图片描述
运行时的整体流程如下图:
在这里插入图片描述
其中,虚拟机栈、本地方法栈、程序计数器是线程私有,方法区(元空间)、堆是线程共有。
当一个类加载后,先加载main方法,此时main方法被压在栈底,由main方法所引用的方法依次堆放在上一个位置。程序计数器用于存储下一个字节码的内存地址,占用空间很少。
堆存放的有实例对象、数组、字符串常量池等,例如:

Hello hello = new Hello();
int[] array = {1, 2, 3};
String str = "Hello";

方法区:存储的是基本数据类型、运行时常量池
由于栈存放的是方法,不会有垃圾(如果有垃圾那栈直接就卡住了),程序计数器存放的是下一个字节码的内存地址,那垃圾回收只能在堆里进行(GC),所以99%都是在堆里垃圾回收。

在这里插入图片描述
首先一个类进来后,编译为Car.class,经过类加载器,加载初始化对象变成一个个实例car1、car2,名字在栈里头,对应一个个内存地址指向堆里。实例放在堆中,存放属性等。

反向怎么导呢? 可以使用.getClass()方法找到对象,再使用.getClass Loader()找到对应的类加载器。

加载器有以下几种:
在这里插入图片描述
类加载过程如下:
在这里插入图片描述

本地方法接口(JNI)为了调用本地方法库,扩展java的使用,融合不同的编程语言为Java所用
在这里插入图片描述

在这里插入图片描述
当一个对象被加载后,堆里会存在字符串常量池,如果实例给stringname赋值,那么就存放在栈内存放地址所指向的实例中,如果没有,那么直接从堆里的字符串常量池中取出"qinjiang"。(java8之后字符串常量池从方法区的运行时常量池分离出来)

public class Test{
	private int a;
	private stringname = "ginjiang";
	public static void main(string[]args){
		Testtest1 = new Test();
}

方法区

Method Area 方法区
方法区是被所有线程共享,所有字段和方法字节码,以及一些特殊方法,如构造函数,接口代码也在此定义简单说,所有定义的方法的信息都保存在该区域,此区域属于共享区间:
静态变量、常量、类信息 (构造方法、接口定义)、运行时的常量池存在方法区中,但是 实例变量存在堆内存中,和方法区无关
静态变量、常量:static final
类信息(构造方法、接口定义):Class文件,包括类的属性方法注解修饰符
运行时的常量池:常量池

栈
在这里插入图片描述
栈的运行原理:通过栈帧对每一个方法进行调用
在这里插入图片描述

栈里存放方法里局部变量的值(如果是基本数据类型,引用和值都存储在栈里)存放在局部变量表中
在这里插入图片描述
如果时局部变量表中要存储的是字符串,那就是存储堆里面字符串常量池的地址,如果是存储的值,那就把值从方法区的运行时常量值中取出来,放进去(放的是值而不是地址),只有运行时才会存储,如果不运行局部变量表里就没有东西
相较而言,堆里存放的是实例以及成员变量,数组、字符串常量池
如果方法产生循环引用,就会导致栈溢出——StackOverflow Error

目前所用的主流jvm为hotspot,堆内存主要分为:
新生区(伊甸园区)
老年区
永久区
在这里插入图片描述
垃圾回收,主要是在伊甸园区和养老区
一般只会存在栈内存满,如果是堆内存满,就会出现OOM java.lang.OutOfMemoryError: java heap space
在JDK8以后,永久存储区改了个名字(元空间);

新生区:
类诞生、成长、甚至死亡的地方
伊甸园区:所有新对象都是在这个new出来的。——一次垃圾回收后它会进入幸存区(0,1)

老年区:
经过多次轻GC后来到的区域,

真理:99%的对象都是临时对象!

永久区:
这个区域常驻内存,用来存放JDK自带的Class对象,interface元数据,存储的是java运行时的一些环境或类信息
不存在垃圾回收!
关闭JVM就会释放这个区域的内存

  • JDK1.7之前都是永久代,存放在方法区中,常量池在方法区
  • JDK1.8之后是元空间,没有永久代,常量池在元空间
    在这里插入图片描述
  1. 内存溢出
      内存溢出 OOM (out of memory),是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个int,但给它存了long才能存下的数,那就是内存溢出。

  2. 内存泄漏
      内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。最终的结果就是导致OOM。
      内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。

GC算法:引用计数法、标记整理法、标记清除法、复制法
引用计数法
在这里插入图片描述
复制算法
每次在幸存区from和to区两个之间移动,就是复制算法,把其中有对象的复制到另外一个,然后清空,此时这个区域没有对象就是to区,然后继续GC
谁空谁是to区
在这里插入图片描述
在这里插入图片描述
好处:没有什么内存碎片
坏处:占用多一半内存空间

标记回收法
在这里插入图片描述
优点:不需要额外的空间!
缺点:两次扫描,严重浪费时间,会产生内存碎片

标记整理法
在这里插入图片描述

本篇文字大部分内容来自B站【狂神说Java】JVM快速入门篇

从零开始:手把手教你用Verilog搭建一个可配置的Cache模块(以Vortex GPGPU为例) 本文详细介绍了如何使用Verilog从零开始搭建一个可配置的Cache模块,以Vortex GPGPU为例。内容涵盖Cache设计基础、模块接口与参数化设计、核心子模块实现、仲裁与一致性机制、功能验证与性能调优等关键环节,适合RTL设计初学者和希望深入理解Cache工作原理的工程师。通过实战指南,读者可以掌握硬件代码分析技巧,提升Cache模块的设计能力。 阅读详情

相关推荐

GIS常用坐标系简介

EPSG:4326是基于WGS 84的地理坐标系,使用经纬度表示,适用于全局定位和地理数据表示。它的缺点是在进行距离、面积计算等地理分析时不够准确。EPSG:3857是投影坐标系,使用平面米坐标表示,适用于在线地图展示,特别适合 Web 地图应用。虽然它在地图展示中很高效,但由于投影引起的变形问题,它不适合高精度地理测量和计算。

weixin_59096287的博客 1977

jvm学习笔记--狂神说

jvm学习笔记--狂神说

ProGram_Java521的博客 1570

ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)解决办法

问题:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO) 很久没用这台电脑的mysql了,今天需要连接数据库,启动数据库报错: ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO) 解决方法: 查阅资料后知道了,应该使用已知的用户名和密码登陆 mysql -u root -p 然而密

一个超会写Bug的程序猿的博客 43万+

JVM探究「狂神说」

图 类实例化后。

编程不良人 472

从C-EPS到DP-EPS:手把手图解不同EPS类型怎么选,对你的车操控感影响有多大?

方向盘转动时那股细腻的阻尼感,高速过弯时令人安心的沉稳,或是狭窄车位里一根手指就能拨动的轻盈——这些看似微妙的差异,其实都源自转向系统电机那几厘米的安装位置变化。当我们谈论驾驶乐趣时,发动机参数和悬架调校总是占据C位,但真正连接驾驶者与车辆的神经末梢,恰恰是那套默默工作的电动助力转向系统(EPS)。不同EPS类型带来的操控特性差异,可能比马力数字更能定义一辆车的性格。

weixin_30920513的博客 531

HTML满屏跳动的爱心(完整代码)

HTML语言实现满屏跳动爱心的完整代码。

AIGC 12万+

【狂神说】JVM学习笔记

JVM学习笔记 1、三种JVM Sun公司HotSpot Java Hotspot™ 64-Bit Server VM (build 25.181-b13,mixed mode) BEA JRockit IBM J9VM 我们学习和使用的大都是: Hotspot 2、JVM体系结构 1.JVM的位置 2.JVM的体系结构 方法区: 方法区存储虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据; 是jvm规范中的一部分,并不是实际的实现,在实际实现上并不相同(HotSpot在1.7版

qq_44430911的博客 1841

华为OD机试真题 新系统【查找能被整除的最大整数】

华为OD新系统机试真题【查找能被整除的最大整数】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【查找能被整除的最大整数】

qq_45776114的博客 673

狂神——JVM

从两个维度:内存效率、内存整齐度、内存利用率进行比较内存效率(内存碎片多不多):复制算法>标记清除算法>标记压缩算法(时间复杂度)内存整齐度:复制算法 = 标记压缩算法 > 标记清除算法内存利用率:标记压缩算法 = 标记清除算法 > 复制算法没有最好的算法,只有最合适的算法,所以GC也被称为分代收集算法存活率较低,所以在这个区域更适合用复制算法!老年代区域大,存活率较高。所以更适合用标记清除(如果内存碎片不是太多就可以使用)+ 标记压缩混合(内存碎片达到一定量级的时候就压缩)实现。

YOLO的博客 1137

基于sklearn实现LDA主题模型(附实战案例)

目录LDA主题模型1.LDA主题模型原理2.LDA主题模型推演过程3.sklearn实现LDA主题模型(实战)3.1数据集介绍3.2导入数据3.3分词处理 3.4文本向量化3.5构建LDA模型3.6LDA模型可视化 3.7困惑度 其实说到LDA能想到的有两个含义,一种是线性判别分析(Linear Discriminant Analysis),一种说的是概率主题模型:隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA)。 现在讨论的是主题模型

m0_64336780的博客 2万+

跨平台也要跑得像原生一样顺:SAP GUI for Java 的安装、配置、运维与自动化实战

摘要:SAP GUI for Java 作为跨平台客户端解决方案,在 S/4HANA 时代仍发挥关键作用,特别适用于 macOS/Linux 环境下的 ABAP 开发和系统运维。其主要优势包括:平台无关性(支持 Windows/macOS/Linux/UNIX)、与 Windows 版本一致的交互体验、对核心事务码(如 ST22/SM21)的完整支持。版本管理需注意 7.80 已停止支持,建议升级至 8.10。安装支持原生包和通用 JAR 两种方式,推荐团队标准化版本和连接配置(通过 SAP UI Land

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 678

基于《狂神说java》JVM 入门--学习笔记

本笔记仅做学习与复习使用,不存在刻意抄袭。给各位学友强烈推荐《遇见狂神说》他的整套Java学习路线使我获益匪浅!!!点击跳转至遇见狂神说哔哩哔哩首页如果你也是狂神的小迷弟,可以加我好友一起探讨学习。 ...

wudidahuanggua的博客 528

深度学习工具包 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狂神说视频学习笔记

视频地址: https://www.bilibili.com/video/BV1iJ411d7jS?p=2 JVM 使用C 编写的 ,所以 JAVA 也叫 C+±- JRE = JVM + JDK = 要学习《深入理解JVM》这本书。 P1、JVM的学习方式 10:01 P2、JVM的体系结构 11:57 P3、类加载器及双亲委派机制 31:48 P4、Java历史-沙箱安全机制 14:12 P5、Native、方法区 19:29 P6、深入理解一下栈 23:26

狗剩的专栏 1226

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

B站狂神说JVM学习笔记

JVM

jacknoe的博客 851

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【狂神说】JVM快速入门学习笔记

JVM 栈 堆 类加载器

qq_48575500的博客 972

狂神说JVM学习笔记~~

jvm学习笔记

weixin_50869999的博客 326

jvm入门学习笔记-狂神说

3、双亲委派,祖宗不可重写,在加载类的时候通过ClassLoader向上查找,找到了就会覆盖掉用户写的类,这样用户就无法改变源码了。8、虚拟机调优,-Xmx -Xms -XX:+PrintGCDetail,在启动类中配置VmOptions指令。5、Sun--HotSpot虚拟机,jdk官方虚拟机,由于jdk是开源的,多数方法、插件都是用它开发的,所以市场占有率最高。4、native关键字,java最初是C++--,底层是C++写的。6、内存结构、堆--先吃先拉,栈--先吃后拉。

qq_42760375的博客 223

JVM入门---狂神说Java学习笔记

JVM虚拟机入门探究 狂神说Java(JVM入门)视频网址 谈谈对JVM的理解?java8虚拟机和之前的变化更新? OOM内存溢出,StackOverFlowError栈溢出,怎么分析? JVM 的常用调优参数有哪些? 内存快照如何抓取,怎么分析Dump文件? 谈谈JVM中,类加载器你的认识?rt-jar ext applicatoin 1、JVM的位置 2、JVM的体系结构 栈百分百没有垃圾(因为栈的运行方式,不存会在垃圾) 所谓的 JVM 调优,99%都是在调方法区和堆,其中主要的是堆!

rzz65452064的博客 479

【狂神说Java学习笔记】JavaSE基础(一)Java、JDK、JVM、JRE

一、Java帝国的诞生 1972年:C诞生。C语言的优点有“贴近硬件,运行极快,效率极高”,能够应用在“操作系统,编译器,数据库,网络系统”等,但是“指针和内存管理”比较繁琐。 1982年:C++诞生。C++面向对象,兼容C,能应用在图形、游戏等领域。 1995年Java诞生。 为什么出现Java,参考**“Java发展史”**。 于是,“高可用,高性能,高并发”的Java诞生了…… 二、Java特性和优势 简单性 面向对象 可移植性(Write once,run anywhere) 高性能(即时编译)

weixin_43918628的博客 782

【狂神说java学习笔记】一:java入门

本文整理了狂神说Java课程的入门内容,包括Java学习框架、入门知识要点和开发环境配置。

weixin_41637679的博客 632

狂神说es笔记_面试收获美团offer的学习笔记:MySQL+Spring+JVM+多线程并发等

从去年到今年先后面试了 6 次美团,外卖、订单、商旅面试了好几个部门、总结下来面试的大体思路真的基本一致诶。比如:JVM 参数配置、常用调试工具、分区、类加载,还会问你有需要线上的调试问题吗?遇到死循环 CPU 飙升怎么解决?Java 并发包常用工具用法和原理、会配合集合类一起考,对了还会有 volatile、CAS 原理等。MySQL 也算是必备了,索引存储结构、索引搜索原理、事务的隔离级别和原...

weixin_39664995的博客 162

狂神说SpringBoot笔记及代码共享资源介绍

狂神说SpringBoot笔记及代码共享资源介绍 去发现同类优质开源项目:https://gitcode.com/ 项目的核心功能/场景 全面系统的SpringBoot学习笔记与代码实践 项目介绍 在Java开发领域,SpringBoot以其高效的开发流程和简洁的配置方式赢得了无数开发者的青睐。而《狂神说SpringBoot笔记及代码》则是一个专为Java学习者打造的宝贵资源库,它涵盖了狂神对Sp...

gitblog_06718的博客 737

Day10——JDK-JRE-JVM(> 本文为个人学习笔记,内容整理自哔哩哔哩UP主【遇见狂神说】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)

2302_77040533的博客 163

【狂神说JAVA】JVM快速入门-4

15、GC垃圾回收机制 GC的作用区只有方法区和堆。分类有轻GC和重GC,轻GC主要是新生代,重GC是全局的清理。 幸存区一个from,一个to。两个相互转换。即幸存区0可以是from,也可以是to,幸存区1可以是from,也可以是to。 GC题目: JVM的内存模型和分区,详细到每个区放什么? 堆里面的分区有哪些,Eden,from,to,老年区,说说他们的特点! GC的算法有哪些?标记清除法,标记压缩,复制算法,引用计数器,怎么用的? 轻GC和重GC分别在什么时候发生。 GC..

weixin_38582314的博客 396

狂神说JVM笔记

JVM探究 面试常见: 请你谈谈你对JVM的理解? java8虚拟机和之前的变化更新? 什么是OOM,什么是栈溢出StackOverFlowError? 怎么分析? JVM的常用调优参数有哪些? 内存快照如何抓取,怎么分析Dump文件? 谈谈JVM中,类加载器你的认识 1.JVM的位置 JRE:java开发环境,包含了JVM 2.JVM的体系结构 Java栈、本地方法栈、程序计数器不会有垃圾回收,否则程序会死掉 百分之99的JVM调优都是在方法区和堆(99%是堆)中调优,Java栈、本地方法栈、程序

qq_37975919的博客 2911
上一篇: java的引用传递和值传递
下一篇: Mysql一条查询语句的执行过程
浪跡ξζ無緣
博客等级 码龄8年 20粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值