经典面试题之--什么叫JVM,JVM有哪些常见算法

JVM常见面试题解析 前言 总结了JVM一些经典面试题,分享出我自己的解题思路,希望对大家有帮助,有哪里你觉得不正确的话,欢迎指出,后续有空会更新。 (想自学习编程的小伙伴请搜索圈T社区,更多行业相关资讯更有行业相关免费视频教程。完全免费哦!) 1.什么情况下会发生栈内存溢出。 思路: 描述栈定义,再描述为什么会溢出,再说明一下相关配置参数,OK的话可以给面试官手写是一个栈溢出的demo。 我的答案: 栈是线程私有的... 阅读详情

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

相信很多小伙伴在面试的时候都会被问到这个问题,虽然知道入职后大概率是用不到,但是面试官就是喜欢问,主打的就是一个面试造火箭工作拧螺丝。


一、JVM是什么?

在Java中,JVM是Java虚拟机的缩写,是Java程序的运行环境。JVM是Java的核心组件之一,它负责解释Java字节码并将其转换为机器码,使得Java程序可以在不同的平台上运行。JVM还提供了垃圾回收、内存管理、线程管理等功能,使得Java程序更加高效、稳定和安全。JVM是Java跨平台的关键所在,它使得Java程序不需要重新编译就可以在不同的操作系统和硬件上运行。

二、JVM中有什么常见算法

1.标记清除算法(Mark and Sweep Algorithm)

标记清除算法(Mark and Sweep Algorithm)是一种垃圾回收算法,用于回收不再使用的对象。该算法通过标记所有不再使用的对象,然后清除这些对象来回收内存。具体来说,算法分为两个阶段:标记阶段和清除阶段。在标记阶段,算法会遍历所有的对象,并标记那些仍然被引用的对象。在清除阶段,算法会清除未被标记的对象,并将它们的内存空间释放出来。然而,标记清除算法会产生内存碎片,可能导致分配失败。因此,它不是最优秀的垃圾回收算法,但是在某些情况下可以提供一定程度的回收效率

2.复制算法(Copying Algorithm)

复制算法(Copying Algorithm)是一种垃圾回收算法,用于回收不再使用的对象。该算法将内存分成两个区域,每次只使用其中一个区域。当这个区域用完后,将存活的对象复制到另一个区域中,然后清除原来的区域。该算法不会产生内存碎片,但是需要更多的内存空间。具体来说,算法分为两个阶段:复制阶段和清除阶段。在复制阶段,算法会将存活的对象复制到另一个区域中。在清除阶段,算法会清除原来的区域,并将它们的内存空间释放出来。由于每次只使用其中一个区域,因此该算法需要两倍的内存空间。但是,由于该算法不会产生内存碎片,因此可以提高回收效率

3.标记整理算法(Mark and Compact Algorithm)

标记整理算法(Mark and Compact Algorithm)是一种垃圾回收算法,用于回收不再使用的对象。该算法将存活的对象移动到内存空间的一端,然后清除另一端的所有未被标记的对象。具体来说,算法分为三个阶段:标记阶段、整理阶段和清除阶段。在标记阶段,算法会遍历所有的对象,并标记那些仍然被引用的对象。在整理阶段,算法会将所有存活的对象移动到内存空间的一端,以便在清除阶段中更容易清除未被标记的对象。在清除阶段,算法会清除另一端的所有未被标记的对象,并将它们的内存空间释放出来。该算法可以有效地解决内存碎片问题,但是需要更多的时间来移动存活的对象。

4.分代算法(Generational Algorithm)

分代算法(Generational Algorithm)是一种垃圾回收算法,用于回收不再使用的对象。该算法基于一个假设,即大部分对象的生命周期很短,而只有少数对象的生命周期很长。因此,该算法将内存空间分成不同的代,每个代包含不同生命周期的对象。通常,内存空间被分成两个代:年轻代和老年代。年轻代包含新创建的对象,而老年代包含已经存活了一段时间的对象。在年轻代中,采用复制算法来回收垃圾,因为大部分对象的生命周期很短,因此很容易将存活的对象复制到另一个区域中。在老年代中,采用标记整理算法来回收垃圾,因为老年代中的对象生命周期较长,因此需要更复杂的算法来回收垃圾。分代算法可以提高回收效率,因为它可以根据对象的生命周期来选择合适的回收算法。


等等…

总结

以上就是今天要讲的内容,本文仅仅简单介绍了JVM的内容,欢迎留言补充。
码海无涯,回头是岸。

几率大的JVM面试题(含答案) 其他类型面试题汇总目录:Java校招极大几率出的面试题(含答案)----汇总 本章面试题如下: JVM三大性能调优参数,JVM 几个重要的参数 JVM调优 JVM内存管理,JVM的常见的垃圾收集器,G1垃圾收集器。GC调优,Minor GC ,Full GC 触发条件 java内存模型 Java垃圾回收机制 jvm怎样 判断一个对象是否可回收,怎样的对象才能作为GC root OOM说一下?怎么排... 阅读详情

相关推荐

【Java面试题】JVM(26道)

【Java面试题】JVM(26道)

踢桃的成长之路 1万+

jvm的三种算法以及10种垃圾收集器

jvm的三种算法以及10种垃圾收集器 jvm怎么知道堆里面的对象是无用数据,有两种方式: 1.引用计数法: 每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收。此方法简单,无法解决对象相互循环引用的问题。 2.跟查找GC Roots (Reachability Analysis):从GC Roots开始向下搜索,搜索所走过的路径称为引用链。当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的,即为不可达对象。 jvm的三种基本算法 1.1 标记

li646495946的博客 4647

JVM之JVM面试题整理(长期更新)

目录 1、详细介绍一下JVM内存模型 2、说一下JVM内存结构(Java内存结构/Java内存区域)、Java内存模型区别与关系 3、讲讲什么情况下会出现内存溢出,内存泄漏? 4、说说线程栈 5、JVM 年轻代到年老代的晋升过程的判断条件是什么呢? 6、JVM 出现 fullGC 很频繁,怎么去线上排查问题 7、类加载为什么要使用双亲委派模式,有没有什么场景是打破了这个模式? 8、...

Soinice的博客 5742

jvm 垃圾回收(常见算法介绍)

jvm垃圾回收算法总结,以及JVM GC配置总结

qq_42315935的博客 4979

java算法面试题经典,细说JVM内存模型

我发现一个现象,很多开发5年的程序员仍然停留在crud的阶段,这是什么原因?,而JVM和并发编程就是非常非常重要的基础了,,直白说,你就只能做crud的工作,理想的工作和薪资跟你是无缘的,同时也很容易被行业淘汰!现在大厂面试肯定是从基础开始发问,下面我也贴出了阿里招聘Java开发人员的要求,可以详细的看一下,下面几道是阿里面试真题,看你能答对几道?上面我更多的是强调了基础的重要性,想要拿到阿里p6岗offer绝不是扎实的基础就能搞定的,这时候就更需要你的学习Java技术,不多说了,直接上干货吧!

m0_61408947的博客 1127

Java面试全集分享

https://blog.youkuaiyun.com/h_tinkinginjava/article/details/86481830 ...

186

【JVM篇】有哪些垃圾回收算法

在技术的道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技的发展改变着世界,而我们作为技术人员,也在这个过程中书写着自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天!优点:实现简单,只需要在第一阶段给每个对象维护标志位,第二阶段删除对象即可。也叫标记压缩算法,是对标记清理算法中容易产生垃圾碎片问题的一种解决方法。,这样子,新创建的对象就能分到Eden区了。主要分为下面2个阶段。

小吉妙妙屋 1346

核回归(Kernel Regression)

本文讲解了核函数,并且实战通过核函数进行了预测,并附python代码

a2333333_的博客 6955

JVM(5)——垃圾收集算法

这里会记录 《深入理解java虚拟机》的所有知识点哟~ 标记——清除算法 最基础的收集算法是“标记——清除”算法,算法分为“标记”和“清除”两个阶段: 首先标记出所有需要回收的对象 在标记完成后统一回收所有被标记的对象 该算法的缺点 效率问题:标记和清除两个过程的效率都不高 空间问题:标记清楚后产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大...

想当厨子的程序媛 181

基于昇腾MindIE开箱部署Qwen2.5-VL-32B,体验更聪明的多模态理解能力

昇腾MindIE已适配支持Qwen2.5-VL-32B-Instruct并上架魔乐社区,欢迎广大开发者下载体验!

2401_87243659的博客 6871

deepfacelab下载安装及训练(小白篇),以及导出SAEHD为dfm文件,解决broken pipe问题

其中如果用的是RTX30系列显卡的话,需要把WIN10升级到20H4或更新版本,然后打开硬件加速,不然会出现训练时一直卡在第一个迭代不动了,我的服务器版本为22H2,符合。支持WIN10,win11,WIN7,LINUX,不支持mac(因为mac不支持NVIDIA显卡)

caoyongsheng的博客 3888

Java面试题: JVM虚拟机常见面试题(四)

收集大量Java经典面试题目,内容涵盖了包括了:Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 等知识点。适合准备Java面试的读者参考和复习。

m0_46013789的博客 1132

Android HAL 架构详解,底层开发不再难

HAL Binder 这套机制牛在哪?性能:一次拷贝,快如闪电。规范:HIDL 让接口定义整齐划一,维护省心。兼容:版本管理做得好,新老设备都能跑。有了这套通信体系,HAL 就像打了通脉,上下贯通,硬件操作变得丝滑无比。通信机制搭好了桥,接下来 HAL 得真正把手伸到硬件上。这部分是 HAL 的 “最后一公里”,直接决定硬件能不能被用起来。HAL 的接口定义是整个体系的灵魂,它决定了上层和底层怎么 “说话”。

大模型大数据攻城狮的专栏 1671

Java经典面试题

Java经典面试题

Lai助网络科技的博客 1343

ICC2:使用analyze_lib_cell_placement检查lib cell的pass rate

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?在place之前需要使analyze_lib_cell_placement命令去检查lib cell在当前的site row/power plan/legalize设置的环境下能够正常place和legalize。下面分享一个脚本去报告pass rate低于2%的lib cell。

m0_61544122的博客 674

Android 15.0 首次开机默认授予app运行时权限(去掉运行时授权弹窗)

在15.0的系统rom产品定制化开发中,在6.0以后对于权限的申请,都需要动态申请,所以会在系统首次启动后,在app的首次运行时, 会弹出授权窗口,会让用户手动授予app运行时权限,在由于系统产品开发需要要求默认授予app运行时权限,不需要用户默认授予运行时弹窗,所以需要在首次开机默认授予所有app运行时权限

安卓兼职framework和app工程师的博客 1204

常见JVM面试题及答案整理

前言 总结了JVM一些经典面试题,分享出我自己的解题思路,希望对大家有帮助,有哪里你觉得不正确的话,欢迎指出,后续有空会更新。 1.什么情况下会发生栈内存溢出。 思路: 描述栈定义,再描述为什么会溢出,再说明一下相关配置参数,OK的话可以给面试官手写是一个栈溢出的demo。 我的答案: 栈是线程私有的,他的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作...

Java笔记 25万+

17、激光切割质量影响因素及优化研究

本文研究了激光切割过程中焦点位置、入射角、激光功率、切割速度和气体压力等因素对切割质量的影响,采用响应面方法(RSM)和Box-Behnken设计,基于三种不同喷嘴对SS 304不锈钢进行实验。通过建立切缝宽度比和条纹深度的回归模型,并结合方差分析验证模型有效性,深入分析各参数对切割质量的影响机制。研究发现喷嘴结构差异显著影响参数作用趋势,尤其在切割速度和气体压力响应上表现明显。最终通过多目标优化确定最小激光功率、适中切割速度和最大气体压力为最优组合,显著提升切割质量,为实际生产提供了理论依据和技术支持。未

grape的博客 130

《不看后悔》超赞!来一份常见 JVM 面试题+“答案”!

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。任何不保留此声明的转载都是抄袭。年底了,xjjdog决定来一篇实用的硬核文章。本篇文章多达38道面试题,照顾到...

小姐姐味道 2019

YOLOv11 改进 - SPPF模块 | 发论文神器!LSKA注意力改进SPPF,增强多尺度特征提取能力,高效涨点!!!

本文介绍了Large Separable Kernel Attention (LSKA)模块及其在YOLOv11中的结合应用。LSKA旨在解决Visual Attention Networks (VAN)使用大内核卷积时的计算效率问题,通过将2D深度卷积层的卷积核分解为级联的水平和垂直1-D卷积核,降低了计算复杂度和内存占用,且使VAN更关注物体形状。我们将集成LSKA的SPPF_LSKA模块引入YOLOv11,大量实验表明,改进后的模型在对象识别、检测、分割和稳健性测试上表现出色。

魔改工程师的博客 1279

深度学习工具包 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")

java算法大全_java经典算法_算法面试题大全含答案

1、Java中用到的线程调度算法是什么? 2、java二叉树算法面试题大全含答案 3、java笔试手写算法面试题大全含答案 4、java递归算法练习:使用递归算法写个程序计算n! 5、JVM的常见垃圾回收算法 6、《java算法大全》第一期 7、《java算法大全》第三期 8、《java算法大全》第二期 9、《java算法大全》第五期 10、《java算法大全》第四期 11、《java经典算法》之...

songfei_dream的专栏 1万+

Camera2Demo

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

关于JVM常见的十道面试题(超详细!!!)

本文详细介绍了Java中的强引用、软引用、弱引用和虚引用,以及它们的使用场景。同时探讨了垃圾回收算法如标记-清除、标记-整理、复制和分代算法,以及JVM中的常见垃圾回收器G1和CMS的区别,强调了内存管理在Java中的重要性。

2202_75481735的博客 2939

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

假人有限元模型

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

JVM 常见面试题及解析(2024)

解析:JVM(Java Virtual Machine)即 Java 虚拟机,是一种可以执行 Java 字节码的虚拟计算机。它的主要作用是屏蔽不同操作系统和硬件之间的差异,使得 Java 程序能够在各种平台上 “一次编写,到处运行”。通过将 Java 源文件编译成字节码文件(.class),然后由 JVM 在不同的平台上进行解释或编译执行,实现了跨平台性。

爱好技术的小老头 1万+

JVM常见面试题

  1.说一下jdk的对空间的内存划分是怎样的? Jdk1.7堆空间划分如下 Jdk1.8堆空间将永久代取消,改为元空间 2.GC的回收流程是怎样的? GC回收流程如下: 对于整个的GC流程里面,那么最需要处理的就是新生代和老年代的内存清理操作,而元空间(永久代)都不在GC范围内 当现在有一个新的对象产生,那么对象一定需要内存空间,平均每个栈内存存4k,每个堆内存存8k,那么对...

u012485165的博客 2万+

10个经典又容易被人疏忽的JVM面试题

前言整理了10个经典又容易被疏忽的JVM面试题,谢谢阅读,大家加油哈github地址,感谢每颗star❝https://github.com/whx123/JavaHome❞公众号:「捡...

weiwenhou的博客 1704
上一篇: 搭建Java环境之--Tomcat安装踩坑篇
下一篇: 经典面试题之--浅谈HashMap
想想就行了丶
博客等级 码龄8年 3097粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值