阿里面试官:垃圾回收都不懂?来面试?

2020最全JVM垃圾回收机制面试题整理,阿里面试官最爱问的都在这里了(附答案) 前言 为什么需要垃圾回收 首先我们来聊聊为什么会需要垃圾回收,假设我们不进行垃圾回收会造成什么后果,我们举一个简单的例子 我们住在一个房子里面,我们每天都在里面生活,然后垃圾都丢在房子里面,又不打扫,最后房子都是垃圾 我们是不是就没法住下去了。 所以JVM垃圾回收机制也是一样的,当我们创建的对象占据堆空间要满了的的时候我们就对他进行垃圾回收,注意java的垃圾回收是不定时的,c语言的是需要去调用垃圾回收方法 刚刚也说到 上面举的例子也说到 假设一个房子都被垃圾堆满了 那么我们没法住人了 那么我们是不是会告 阅读详情

面试官:我还记得上次你讲到JVM内存结构(运行时数据区域)提到了「堆」,然后你说是分了几块区域嘛

面试官:当时感觉再讲下去那我可能就得加班了

面试官:今天有点空了,继续聊聊「堆」那块吧

候选者:嗯,前面提到了堆分了「新生代」和「老年代」,「新生代」又分为「Eden」和「Survivor」区,「survivor」区又分为「From Survivor」和「To Survivor」区

候选者:说到这里,我就想聊聊Java的垃圾回收机制了

面试官:那你开始你的表演吧

候选者:我们使用Java的时候,会创建很多对象,但我们未曾「手动」将这些对象进行清除

候选者:而如果用C/C++语言的时候,用完是需要自己free(释放)掉的

候选者:那为什么在写Java的时候不用我们自己手动释放”垃圾”呢?原因很简单,JVM帮我们做了(自动回收垃圾)

面试官:嗯…

候选者:我个人对垃圾的定义:只要对象不再被使用了,那我们就认为该对象就是垃圾,对象所占用的空间就可以被回收

面试官:那是怎么判断对象不再被使用的呢?

候选者:常用的算法有两个「引用计数法」和「可达性分析法」

候选者:引用计数法思路很简单:当对象被引用则+1,但对象引用失败则-1。当计数器为0时,说明对象不再被引用,可以被可回收

候选者:引用计数法最明显的缺点就是:如果对象存在循环依赖,那就无法定位该对象是否应该被回收(A依赖B,B依赖A)

面试官:嗯…

候选者:另一种就是可达性分析法:它从「GC Roots」开始向下搜索,当对象到「GC Roots」都没有任何引用相连时,说明对象是不可用的,可以被回收

候选者:「GC Roots」是一组必须「活跃」的引用。从「GC Root」出发,程序通过直接引用或者间接引用,能够找到可能正在被使用的对象

面试官:还是不太懂,那「GC Roots」一般是什么?你说它是一组活跃的引用,能不能举个例子,太抽象了。

候选者:比如我们上次不是聊到JVM内存结构中的虚拟机栈吗,虚拟机栈里不是有栈帧吗,栈帧不是有局部变量吗?局部变量不就存储着引用嘛。

候选者:那如果栈帧位于虚拟机栈的栈顶,是不是就可以说明这个栈帧是活跃的(换言之,是线程正在被调用的)

候选者:既然是线程正在调用的,那栈帧里的指向「堆」的对象引用,是不是一定是「活跃」的引用?

候选者:所以,当前活跃的栈帧指向堆里的对象引用就可以是「GC Roots」

面试官:嗯…

候选者:当然了,能作为「GC Roots」也不单单只有上面那一小块

候选者:比如类的静态变量引用是「GC Roots」,被「Java本地方法」所引用的对象也是「GC Roots」等等…

候选者:回到理解的重点:「GC Roots」是一组必须「活跃」的「引用」,只要跟「GC Roots」没有直接或者间接引用相连,那就是垃圾

候选者:JVM用的就是「可达性分析算法」来判断对象是否垃圾

面试官:懂了

候选者:垃圾回收的第一步就是「标记」,标记哪些没有被「GC Roots」引用的对象

候选者:标记完之后,我们就可以选择直接「清除」,只要不被「GC Roots」关联的,都可以干掉

候选者:过程非常简单粗暴,但也存在很明显的问题

候选者:直接清除会有「内存碎片」的问题:可能我有10M的空余内存,但程序申请9M内存空间却申请不下来(10M的内存空间是垃圾清除后的,不连续的)

候选者:那解决「内存碎片」的问题也比较简单粗暴,「标记」完,不直接「清除」。

候选者:我把「标记」存活的对象「复制」到另一块空间,复制完了之后,直接把原有的整块空间给干掉!这样就没有内存碎片的问题了

候选者:这种做法缺点又很明显:内存利用率低,得有一块新的区域给我复制(移动)过去

面试官:嗯…

候选者:还有一种「折中」的办法,我未必要有一块「大的完整空间」才能解决内存碎片的问题,我只要能在「当前区域」内进行移动

候选者:把存活的对象移到一边,把垃圾移到一边,那再将垃圾一起删除掉,不就没有内存碎片了嘛

候选者:这种专业的术语就叫做「整理」

候选者:扯了这么久,我们把思维再次回到「堆」中吧

候选者:经过研究表明:大部分对象的生命周期都很短,而只有少部分对象可能会存活很长时间

候选者:又由于「垃圾回收」是会导致「stop the world」(应用停止访问)

候选者:理解「stop the world」应该很简单吧:回收垃圾的时候,程序是有短暂的时间不能正常继续运作啊。不然JVM在回收的时候,用户线程还继续分配修改引用,JVM怎么搞(:

候选者:为了使「stop the world」持续的时间尽可能短以及提高并发式GC所能应付的内存分配速率

候选者:在很多的垃圾收集器上都会在「物理」或者「逻辑」上,把这两类对象进行区分,死得快的对象所占的区域叫做「年轻代」,活得久的对象所占的区域叫做「老年代」

候选者:但也不是所有的「垃圾收集器」都会有,只不过我们现在线上用的可能都是JDK8,JDK8及以下所使用到的垃圾收集器都是有「分代」概念的。

候选者:所以,你可以看到我的「堆」是画了「年轻代」和「老年代」

候选者:要值得注意的是,高版本所使用的垃圾收集器的ZGC是没有分代的概念的(:

候选者:只不过我为了好说明现状,ZGC的话有空我们再聊

面试官:嗯…好吧

候选者:在前面更前面提到了垃圾回收的过程,其实就对应着几种「垃圾回收算法」,分别是:

候选者:标记清除算法、标记复制算法和标记整理算法【「标记」「清除」「复制」「整理」】

候选者:经过上面的铺垫之后,这几种算法应该还是比较好理解的

候选者:「分代」和「垃圾回收算法」都搞明白了之后,我们就可以看下在JDK8生产环境及以下常见的垃圾回收器了

候选者:「年轻代」的垃圾收集器有:Seria、Parallel Scavenge、ParNew

候选者:「老年代」的垃圾收集器有:Serial Old、Parallel Old、CMS

候选者:看着垃圾收集器有很多,其实还是非常好理解的。Serial是单线程的,Parallel是多线程

候选者:这些垃圾收集器实际上就是「实现了」垃圾回收算法(标记复制、标记整理以及标记清除算法)

候选者:CMS是「JDK8之前」是比较新的垃圾收集器,它的特点是能够尽可能减少「stop the world」时间。在垃圾回收时让用户线程和 GC 线程能够并发执行!

候选者:又可以发现的是,「年轻代」的垃圾收集器使用的都是「标记复制算法」

候选者:所以在「堆内存」划分中,将年轻代划分出Survivor区(Survivor From 和Survivor To),目的就是为了有一块完整的内存空间供垃圾回收器进行拷贝(移动)

候选者:而新的对象则放入Eden区

候选者:我下面重新画下「堆内存」的图,因为它们的大小是有默认的比例的

候选者:图我已经画好了,应该就不用我再说明了

面试官:我还想问问,就是,新创建的对象一般是在「新生代」嘛,那在什么时候会到「老年代」中呢?

候选者:嗯,我认为简单可以分为两种情况:

候选者:1. 如果对象太大了,就会直接进入老年代(对象创建时就很大 || Survivor区没办法存下该对象)

候选者:2. 如果对象太老了,那就会晋升至老年代(每发生一次Minor GC ,存活的对象年龄+1,达到默认值15则晋升老年代 || 动态对象年龄判定 可以进入老年代)

面试官:既然你又提到了Minor GC,那Minor GC 什么时候会触发呢?

候选者:当Eden区空间不足时,就会触发Minor GC

面试官:Minor GC 在我的理解就是「年轻代」的GC,你前面又提到了「GC Roots」嘛

面试官:那在「年轻代」GC的时候,从GC Roots出发,那不也会扫描到「老年代」的对象吗?那那那…不就相当于全堆扫描吗?

候选者:这JVM里也有解决办法的。

候选者:HotSpot 虚拟机「老的GC」(G1以下)是要求整个GC堆在连续的地址空间上。

候选者:所以会有一条分界线(一侧是老年代,另一侧是年轻代),所以可以通过「地址」就可以判断对象在哪个分代上

候选者:当做Minor GC的时候,从GC Roots出发,如果发现「老年代」的对象,那就不往下走了(Minor GC对老年代的区域毫无兴趣)

面试官:但又有个问题,那如果「年轻代」的对象被「老年代」引用了呢?(老年代对象持有年轻代对象的引用),那时候肯定是不能回收掉「年轻代」的对象的。

候选者:HotSpot虚拟机下 有「card table」(卡表)来避免全局扫描「老年代」对象

候选者:「堆内存」的每一小块区域形成「卡页」,卡表实际上就是卡页的集合。当判断一个卡页中有存在对象的跨代引用时,将这个页标记为「脏页」

候选者:那知道了「卡表」之后,就很好办了。每次Minor GC 的时候只需要去「卡表」找到「脏页」,找到后加入至GC Root,而不用去遍历整个「老年代」的对象了。

面试官:嗯嗯嗯,还可以的啊,要不继续聊聊CMS?

候选者:这面试快一个小时了吧,我图也画了这么多了。下次?下次吧?有点儿累了

本文总结:

  • 什么是垃圾:只要对象不再被使用,那即是垃圾
  • 如何判断为垃圾:可达性分析算法和引用计算算法,JVM使用的是可达性分析算法
  • 什么是GC Roots:GC Roots是一组必须活跃的引用,跟GC Roots无关联的引用即是垃圾,可被回收
  • 常见的垃圾回收算法:标记清除、标记复制、标记整理
  • 为什么需要分代:大部分对象都死得早,只有少部分对象会存活很长时间。在堆内存上都会在物理或逻辑上进行分代,为了使「stop the world」持续的时间尽可能短以及提高并发式GC所能应付的内存分配速率。
  • Minor GC:当Eden区满了则触发,从GC Roots往下遍历,年轻代GC不关心老年代对象
  • 什么是card table【卡表】:空间换时间(类似bitmap),能够避免扫描老年代的所有对应进而顺利进行Minor GC (案例:老年代对象持有年轻代对象引用)
  • 堆内存占比:年轻代占堆内存1/3,老年代占堆内存2/3。Eden区占年轻代8/10,Survivor区占年轻代2/10(其中From 和To 各站1/10)

【对线面试官-移动端】系列 一周两篇持续更新中!

【对线面试官-电脑端】系列 一周两篇持续更新中!

原创不易!!求三连!!

阿里2015校招面试回忆录(成功拿到offer) 继上次“百度2015校园招聘面试题回忆录(成功拿到offer)”文章过后,大家都希望除了题目之外,最好能给出自己当时的回答情况,看看有没有什么回答技巧,这样更有参考价值。嗯,建议的很对,因此这次对于阿里的面试回忆,我下面以对话的形式尽可能复现我当初的面试场景。 阅读详情

相关推荐

阿里面试经历总结

阿里面试经历总结

断桥观望 7017

Java面试问题总结——如果老年代对象引用年轻代对象,年轻代对象是否会被垃圾回收?

这个问题考察了很多知识点,我们需要对Java内存管理和垃圾回收机制有很深入的认识,本文将系统阐述这两个方面内容,最后再给出这个问题的答案。该问题是我面试国内一家主攻云安全的互联网公司的问题之一,这也说明了该公司比较深厚的技术沉淀,整场面试技术官抛出了很多好的问题,后面我会再逐一整理。

Java技术博客分享 3869

手把手教你用certificate-manager修复Vcenter证书过期问题(附密码重置技巧)

本文详细解析了Vcenter证书过期引发的503服务不可用、密码错误等典型故障现象,并提供了使用certificate-manager工具进行系统性修复的完整步骤。文章重点阐述了证书体系原理、精准诊断方法,并分享了在SSO验证失败时通过vdcadmintool重置密码的关键技巧,帮助管理员快速恢复平台并建立预防性运维策略。

swift5iosmith的博客 457

java JVM - 垃圾回收机制

垃圾的定义:只要对象不再被使用了,那我们就认为该对象就是垃圾,对象所占用的空间就可以被回收 怎么判断对象不再被使用的呢? 常用的算法有两个「引用计数法」和「可达性分析法」 引用计数法思路很简单:当对象被引用则+1,引用释放时计数则-1。当计数器为0时,说明对象不再被引用,可以被可回收 引用计数法最明显的缺点就是:如果对象存在循环依赖,那就无法定位该对象是否应该被回收(A依赖B,B依赖A); 另一种就是可达性分析法:它从「GC Roots」开始向下搜索,当对象到「GC Roots」都没有任何引用相连时,说明对

sinat_36387539的博客 514

ubuntu为Docker配置代理

我们平常在ubuntu终端中使用curl或git命令时,往往会很慢。所以,首先需要给ubuntu终端环境添加代理。查看自身那个软件的端口号,我这里是7890。

不想随波逐流的大学生一枚,我们每个人都在努力奔跑 1643

PAT|中国大学MOOC-浙江大学翁恺-C语言程序设计习题集(更新中)

##2-0. 整数四则运算 时间限制:400 ms 内存限制:65536 kB 代码长度限制:8000 B 判题程序:Standard 作者:乔林(清华大学) 本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。 输入格式: 输入在一行中给出2个正整数A和B。 输出格式: 在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 输入样例: 3 ...

小鱼波波波 6万+

JVM分代模型:年轻代、老年代、永久代

接着Eden区就会被清空,然后再次分配新对象到Eden区里,然后就会如上图所示,Eden区和一块Survivor区里是有对象的,其中Survivor区里放的是上一次Minor GC后存活的对象。这时,发现他是不能被回收的,因为他被人引用了,而且是被局部变量“replicaManager”引用的。这个就是最普通的代码,一个变量引用一个对象,只要是强引用的类型,那么垃圾回收的时候绝对不会去回收这个对象的。,强引用就是代表绝对不能回收的对象,软引用就是说有的对象可有可无,如果内存实在不够了,可以回收他。

weixin_45873793的博客 2236

工程师职级胜任力框架

一、前言 尽管这些年国内的IT行业发展迅速,但是仍然欠缺一套比较综合性的面向工程师的职级胜任力框架,造成国内很多工程师大都一心只想成为技术大牛,而忽视了自己全方位的工程师职业素养和能力的培养。 最近我有幸读到了Circle CI公司分享的工程胜任力矩阵,发现这份文档就是一份比较贴合互联网研发型企业的工程师职级胜任力框架,于是我在它的基础上,重新整理出了一份更适合国内工程师阅读的《工程师职级胜任力框架》,并把它分享在波波的github站点上,希望这份文档对工程师的职业开发和成长有帮助。注,Circle CI.

架构师波波的专栏 6326

呼吁抵制优快云

很久之前在优快云写过几篇学习记录稿,本着互相学习,互相分享的想法。 不知道在什么时候,在未经本人允许的情况下,优快云将文章标记为VIP可读,非VIP需要付费。 对别人的原创文章用于商业目的。首先是可耻。严重鄙视这种没有节操的行为。 并且,本人还发现之前上传的一些学习资料,也被平台强制改为了使用积分才能下载。 目前本人已经自己的文章全部删除。且呼吁大家一起抵制这种唯利是图的平台。 建议大家在搜索引擎查询资料时,后面加 -csdn ,可以在搜索结果中过滤掉csdn帖子。 可以避免检索到的信息因付费问题无法查

学无止境 1466

深入解析SAP F4帮助函数F4IF_INT_TABLE_VALUE_REQUEST的回调机制

本文深入解析了SAP ABAP开发中F4IF_INT_TABLE_VALUE_REQUEST函数的回调机制。通过剖析其工作原理与核心参数,详细阐述了如何利用回调函数实现F4帮助的多值返回、动态数据过滤及选择后校验等高级定制功能,并提供了实用的代码示例与调试技巧,帮助开发者高效应对复杂的屏幕交互需求。

weixin_29213827的博客 198

VS2015编译配置GDAL(图文并茂、超详细!!!)

文章目录一、GDAL介绍二、下载GDAL三、修改源代码四、工具命令提示符操作五、编译GDAL六、安装GDAL七、在VS2015的项目中配置GDAL八、添加环境变量九、测试是否配置成功 一、GDAL介绍 GDAL(Geospatial Data Abstraction Library)是一个在XMIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。OGR是GDAL项目的一个分支,功能与GDAL类似,只不过它提供对矢量数据的支持。因此

weixin_46196863的博客 3756

突发,优快云 崩了!程序员们开始慌了?

而个人域名下的文章没受影响,说明这部分服务是独立部署的,或者走了不同的路由、缓存策略,到独立存储到其他数据库中。而且只要不是服务挂掉,上面这些问题都很好修复,回滚一下配置到正常的版本、或者清一清缓存就好了,从这个修复时间上来看,也是合理的。我对 优快云 可以说是又爱又恨。我看交流群里的吐槽,发现还是有很多程序员朋友慌了的,毕竟哪怕平时吐槽它广告多、质量低、答案水,真到用的时候,还是得真用一下的。如果 CDN 失效,或者文章没被缓存,就要到数据库中查询文章信息,如果数据库崩了,数据就没法正常读取。

weixin_40593162的博客 228

SAP 错误消息调试之七种武器:让所有的错误消息都能被定位

目录 长生剑 - SAPGUI Where Used List 碧玉刀 - ABAP调试器观察点 霸王枪 - ABAP调试器动态断点 多情环 - ABAP代码静态扫描 孔雀翎 - SAT 离别钩 - ST05 拳头 - 迷之方法??? Jerry在2018年开始用中文在微信公众号平台上写作之前,在SAP官方社区上总共写了639篇英文博客。 其中有一篇写于2013年介绍ABAP调试技巧的博客:

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

阿里面试官:CMS垃圾回收机制都不懂?回去吧

我淦,忘了

3y 922

如何通过conda安装HyPhy教程

本文介绍了在Ubuntu系统上通过conda安装分子进化分析工具HyPhy的详细步骤。首先创建conda环境并指定Python 3.8版本,然后通过bioconda通道安装HyPhy软件包。安装完成后可通过conda list命令验证安装。文中还特别指出可能遇到的libcrypto.so.1.1共享库缺失错误,并提供了解决方案的参考链接。该教程配有安装过程截图,帮助用户直观了解操作流程和验证安装结果。

猿小白的博客 8259

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

阿里一面被拒含泪离开,面试官:python开发连这些都不懂,哭也没用

自我介绍 首先简单介绍一下自己的情况:本科山东大学,专业软件工程。没有任何项目经验,也没有任何科研竞赛经历,有参与过一篇SCI论文在投(不是第一作者,不过没啥用),当过几个学生干部,实习只有一个通信模块和商城模块的实习经历,其他的就没啥拿得出手的资历了。 面试经历 (总用时1小时) 今天受约去阿里复试了Python开发,公司主要的项目是做自动化测试系统。早上匆匆吃了早餐坐了20站地铁来到了环球金融大厦C1一楼,进去是有门禁的,拿身份证在一楼的机器上输入预约码,会给一张纸上面有二维码,刷二维码就可以进去。来到

JAVAmonster12的博客 1342

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java面试官最爱问的垃圾回收机制,这位阿里P7大佬分析总结的属实到位

2021年的金三银四一眨眼就到了,对于很多人来说是跳槽的好机会,大厂面试远没有我们想的那么困难,摆好心态,做好准备,你也可以的。另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。BAT面试经验实战系列:Spring全家桶+Redis等其他相关的电子书:源码+调优面试真题:《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》

2401_84152317的博客 947

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

2024年最全阿里大牛整理总结出:内部学习垃圾回收算法手册,javanginx面试题

小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取。

2401_84585155的博客 905

【面经】记阿里巴巴校招一轮电话面试

前 言 电话面试 1 自我介绍 2 聊一下以往项目 3 面试官提出的问题 1 谈一谈 final 修饰符 2 集合类的特性 扩展问题 3 String 类能继承吗 4 2x8 运算提高速率 5 单例模式有什么类是单例 6 线程调度 7 java 中有内存泄露吗 8 垃圾回收机制 9 有 NDK 开发经验不 10 静态变量成员变量 11 Excption 与 Error 区别 12 子类能重写父类的构

Veyron_wu 5219

大厂面试官告诉你,这些问题,你最好别在面试时候问

和刚参与面试工作时的羞涩相比,现在的我也俨然成为一个老油条了,一边给应试者题目和提示,一边天马行空地想想“午饭吃什么”。 哎,先别说我不负责任,该给的提示和要求我都会讲得明明白白。有些人对面试和面试官过于上心,以至于连最基本的要求都没听清楚,这样挂了也是可惜。 不过作为一位从业十余年,在coding, problem solving, behavior,design...

九章算法的博客 5656

理解JVM并不难,看完阿里大佬整理的JVM文档,看完手撕面试官

理解JVM并不难,看完阿里大佬整理的JVM文档,看完手撕面试官 提到Java虚拟机(JVM),可能大部分人的第一印象是“难”,但当让我们真正走入“JVM世界”的时候,会发现其实问题并不像我们想象中的那么复杂。唯一真正令我们恐惧的,其实是恐惧本身。 JVM 的内存模型和 JVM 的垃圾回收机制一直是 Java 业内从业者绕不开的话题(实际调优、面试)JVM是java中很重要的...

Javazhoumou的博客 5805

后端面试每日一题 垃圾回收算法,字节跳动面试问题及答案java

看完美团、字节、腾讯这三家的一二三面试问题,是不是感觉问的特别多,可能咱们真的又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。开篇有提及我可是足足背下了Java互联网工程师面试1000题,多少还是有点用的呢,换汤不换药,不管面试官怎么问你,抓住本质即可!能读到此处的都是真爱Java互联网工程师面试1000题。

m0_61549740的博客 1122

大厂面试官为什么老是喜欢问JVM?

前言 最近有粉丝在后台跟我抱怨,自己去大厂面试,面试官老是喜欢问JVM! 你问JVM干啥?程序员平时又用不到这些东西!多问问框架、数据库、项目经验不行么? 有些人觉得是面试官zb,就爱问这种虚而不实的东西,显得自己牛逼,公司牛逼! 其实这种想法非常幼稚!我不排除部分面试官有这种想法,喜欢面试虐人。但是大厂有大厂的考虑,问JVM主要是看你在技术方向的潜力,你看对待技术有没有深挖的态度。 大概在201...

玩赚AI大模型的博客 1181

挑战BAT面试官之JVM垃圾收集器

BAT一直是广大程序员的梦想殿堂,不仅BAT的待遇在国内的IT行业中领先的,更在于BAT的技术也走在互联网的前列。因此,无论你是想有更高的薪资,还是追求极致的技术,都想去BAT里面镀金,有的可能在里面职位越混越高,有的可能干几年就出来创业或者到小的公司去当CTO。然而BAT的面试向来是非常严苛的,相信60%的人都直接被BAT的面试官干倒,30%的人能和BAT的面试官死磕到底,最后双方都歇斯底里,还有10%的人能干倒BAT的面试官。

Discovery的专栏 570

华为面试官问我:你真的明白Java垃圾回收器吗?我生气了!!(︶︿︶)

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)最新整理电子书网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)一个人可以走的很快,但一群人才能走的更远!

2401_84433807的博客 663
上一篇: 面试官问我JVM内存结构,我真的是
下一篇: 阿里面试官:CMS垃圾回收机制都不懂?回去吧
Java3y
Java3y 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 509原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值