大发十分快三稳赢计划_在面试中如何展示虚拟机和内存调优技能

  • 时间:
  • 浏览:1
  • 来源:唐朝博客 - 专注共享淤青的博客技术

    初学者或初级系统线程员在面试时不可能 能证明当时人具有分析内存用量和内存调优的能力,这相当有利,不可能 这是针对5年左右相关经验的高级系统线程员的要求。

    不可能 在面试时面试官主动问及这方面的疑问,亲戚亲戚朋友可不用用 不用 按照如下的思路由浅入深地依次阐述,不可能 没问,亲戚亲戚朋友也可不用用 不用 用到下面提及的土办法毫无痕迹地(不突兀不显摆)展示当时人这方面的能力。

1 从虚拟机体系形状引出内存管理的话题

    不可能 面试官问,“你算是了解虚拟机体系形状”,这样亲戚亲戚朋友可不用用 不用 按9.1提到的内容,先画出虚拟机的各部件,如果依次说明各次责的作用。

    着实面试官也知道这次责对项目开发的帮助不须大,而是亲戚亲戚朋友不用过于深入,比怎样才能不用用 不用 不用深入回答.class字节码文件的形状和类加载器的流程(不可能 实用性不强,本文也没讲)。但亲戚亲戚朋友一定得总结性地说出静态数据、基本数据类型和引用等数据的存储位置,这次责的内容亲戚亲戚朋友在9.1.3次责讲过。这样 就能引出里边的关于“内存”的话题。

    不可能 面试官这样问及虚拟机体系形状的疑问,这样怎样才能让要紧,毕竟这块知识点实用性一般,说出来属于锦上添花。但亲戚亲戚朋友应当通如果 文给出的土办法,找不可能 引出“内存“什儿 话题。

2怎样才能自然地引出内存话题

    一般来说,大多数面试官会问垃圾回收的流程,这样 亲戚亲戚朋友回会 不可能 通过堆形状说出垃圾回收的流程,进而展示当时人内存调优方面的能力。

    不可能 亲戚亲戚朋友可不用用 不用 更保险点,在简历的最近项目介绍里打上去同类这样 描述,“什儿 项目的内存要求比较高,着实在项目里分配的对象不少,但什儿 项目只被分配了1G内存,而是在什儿 项目里,我实践了一些定位排查内存疑问的技能,也做了些调优的工作“,这样 面试官见到简历的描述,就会自然而然地提问了。

    更稳妥的土办法是,在面试中总会有“项目介绍”什儿 环节,面试官会让候选人介绍最近的(或最拿得出手)的另另另有另两个项目,这样 亲戚亲戚朋友就可不用用 不用 顺势说出刚才不可能 给出的描述。

    不可能 ,亲戚亲戚朋友可不用用 不用 在回答数据库或集合等方面的疑问时引出什儿 话题,比如回答完JDBC疑问后,亲戚亲戚朋友可不用用 不用 说一句,“用好的Connection对象亲戚亲戚朋友会及时关闭,怎样才能让它所占用的内存对象无法被GC回收”,不可能 在谈及List等集合类型时,同時 多说一句,“用好的集合对象亲戚亲戚朋友会及时clear掉,怎样才能让什儿 集合也会对一些对象产生强引用,这样 就会延迟对象的回收时间”。

    总之,内存调优这方面的能力不说出来未免一些可惜,亲戚亲戚朋友可不用用 不用 根据上述的描述举一反三,在面试中找一切可不用用 不用 的不可能 引入什儿 话题。

    不过这里也请亲戚亲戚朋友注意些技巧,别自说自话地一股脑地全说,这样 反而过犹不及。打个非常不恰当的比方,就像钓鱼,亲戚亲戚朋友可不用用 不用 先下个饵,比如在介绍项目时先粗略地提到当时人做过这方面的事情,但先别说具体的,等面试官主动问了,再具体地按下文给出的思路一一展开。

    万一面试官在亲戚亲戚朋友的再三暗示下还是没接口继续问(着实什儿 不可能 性非常小),那说明面试官真的对此没兴趣,不可能 说你应聘的公司对此没需求,这样亲戚亲戚朋友就可不用用 不用 此打住了。

3 根据堆区形状,阐述垃圾回收的流程

在找到离米 的不可能 后,亲戚亲戚朋友可不用用 不用 先从堆的形状入手,进而完整篇 说明垃圾回收的流程。比如亲戚亲戚朋友被问到,你对Java中的垃圾回收机制了解几条?不可能 当你说什么出在项目里你做过内存调优,面试官进一步我能 说什么出细节,这样亲戚亲戚朋友可不用用 不用 按次序说出如下的要点。

1 可不用用 不用 先说下,new出来的对象都放在堆区里。

2 可不用用 不用 说下堆的形状,比如堆里分年轻区,年老区和持久区,年轻区里还分伊甸区和另另另有另两个缓冲区,持久区主要存放的是Java类信息或在代码里通过import引入的类信息,垃圾回收流程主要涉及到的是年轻和年老区。

3 可不用用 不用 说下垃圾回收的一般流程,比如什么如果 会触发轻量级回收,什么如果 会触发Full GC。

4 可不用用 不用 说下虚拟机是凭什么判断对象可不用用 不用 被回收(对象上这样强引用,则会在下次GC流程时被回收),也可不用用 不用 说下“引用计数法”和“根搜索算法”以及它们的差别。

5 可不用用 不用 说下,系统线程员可不用用 不用 通过System.gc()来启动Full GC,但Full GC并回会 在调用和什儿 土办法后就启动。不过根据实践,两者的时间间隔不用太长。

在说完上述要点后,亲戚亲戚朋友最后一定得引出下另另另有另两个“内存调优”什儿 话题,比怎样才能不用用 不用 说,“着实说Java虚拟机能自动回收内存,但在平时写代码时,亲戚亲戚朋友会遵循一些要点来提升内存性能,在项目里,亲戚亲戚朋友回会 监控内存使用量,怎样才能让我在项目里回会 过排查OOM疑问的经验“。这样 的话就能进一步展示当时人的“调优和排查”能力。

4 再进一步说明怎样才能写出高性能的代码

亲戚亲戚朋友如果 提到过这方面技能,这里来总结一下要点,在面试时,亲戚亲戚朋友可不用用 不用 在阅读本章相关内容的基础上自行展开叙述。

1 物理对象(比如Connectio或IO)用好如果 得及时close。

2 大的对象用好后应当及时设置成null,以取回强引用。

3 集合对象用好后应当及时clear。

4 尽量别频繁地使用String(或其它不变类)对象,这样 容易产生内存碎片。

5 尽不可能 地使用软和弱引用,不可能 这样 能提早对象的被回收时间。

6 不建议重写finalize土办法。

7 可不用用 不用 通过调整命令行参数来调整堆内存的性能,但同時 请注意,在项目里一般只会修改-Xms或-Xmx参数,不可能 打上去一些日志打印和保存Dump文件的参数。在修改其它参数时,项目组一般会很慎重,而是亲戚亲戚朋友可不用用 不用 说当时人了解其它的参数,但不可能 这样十足的把握,别说当时人在项目里调整过同类于“设置年轻区与年老区的比值”等容易产生内存疑问的参数。

    避免疑问相对容易,但定位疑问就相对难了,而是建议亲戚亲戚朋友可不用用 不用 再进一步展示当时人“监控、定位和调优”方面的能力,比怎样才能不用用 不用 通过如下的叙述引入到什儿 话题,“除了什么代码上的技巧外,亲戚亲戚朋友在项目上线后还不用 监控内存使用量,一旦发生OOM或Stop The World等疑问,亲戚亲戚朋友得通过一定的土办法来定位疑问点,从而再用刚才提到的技巧来优化内存”。

5 最后展示监控、定位和调优方面的综合能力

    在面试时,面试官是这样当场给出另另另有另两个实际的疑问让亲戚亲戚朋友来现场避免,我希望候选人叙述得不离谱,一些要点能说上来,一般就会认为候选人具备这方面的能力。

    这块亲戚亲戚朋友可不用用 不用 说,比如通过JConsole确认有内存疑问,通过Dump文件来查看OOM的现场,从而再通过GC日志和代码里输出的内存使用量来定位疑问点。在面试前,建议亲戚亲戚朋友多看一些GC日志文件和Dump文件,这样 在叙述时就更会胸有成竹了。

    通过阅读什儿 章节,亲戚亲戚朋友一定能体会到,“内存监控、定位和调优”方面的能力不须难学,怎样才能让难准备面试中的说辞,怎样才能让在面试中,最多用上五分钟就能把这次责的知识点说全,但亲戚亲戚朋友一旦按上述思路展示出了这方面能力,这样很大程度能改变面试官对你的评价。

    根据亲戚亲戚朋友的面试经验,初级系统线程员的平均能力着实差不了几条,在而是如果 亲戚亲戚朋友是无法选用 的。比如亲戚亲戚朋友要从10当时人里招5当时人进来,除去很重好的(一般另另另有另两个)和很重差的(一般也是另另另有另两个),有6当时人的综合能力(包括学校背景工作背景项目经验和面试结果)是差过多的,也怎样才能让说亲戚亲戚朋友先要从这6当时人里选用 出3当时人。

    这时,不可能 这6人中谁有同类于内存调优(不可能 前章提到的设计模式)等方面的加分项,这样就回会 优先考虑什儿 人。