自学内容网 自学内容网

2024 互联网各厂梯队排名!你在第几梯队?

大家好,我是鸭鸭。

平时网上冲浪的时候,总是会看到“某大厂”、“某中厂”、“又一互联网大厂”如何如何了,那么大家口中的“大厂”究竟是指的哪些公司呢?

评判一家互联网公司处在什么level,是靠员工人数、盈利规模、产品知名度还是福利待遇?又或者有一套综合的计算方式?

今天鸭鸭刷到了一份网友整理的2024互联网各厂排名,一共分成了四个梯队,快来看看你的公司上榜了没~

图片

这份榜单应该几乎把比较有知名度的互联网公司都网罗进来了,这份排名你认可吗?

欢迎在评论区交换“内部消息”,破除大家的信息差~

……

如今正是秋招的关键时刻,拿着这份表单当作投递参考也未尝不可。大厂并不一定高不可攀,面试总也离不开项目追问、八股文拷打。

这个时候就体现出面试鸭的价值了!8000+高频面试题,大厂面试官精心原创题解,免费刷题复习路线,简直手把手带你拿offer。

进大厂第一步,就从今天这道面试题开始吧。

为什么 Java 新生代被划分为 S0、S1 和 Eden 区?

回答重点

主要是为了提高新生代内存的利用率。

扩展知识

详细分析

因为新生代对象朝生夕死的特性,适合复制算法。按正常思路将新生代一分为二,划两块区域,每次只使用其中一个,GC 后将存活的复制到另一个区域,然后清理老区域非存活对象,这样替换使用两块区域可以避免内存碎片的存在。

但如果一分为二的话,空间利用率只有一半了(每次分配对象只能占据一半的内存大小),这样不太划算。

图片

基于这点,定义了三个区域,Eden 区和两个 Survivor 区,Eden 区 + 1 个 Survivor 区可以比二分之一大,提升利用率,默认 Eden 占 80% ,一个 Survivor 占 10%。

图片

然后利用两个 Survivor 来交替接收 gc 后存活的对象。

比如当前用 Eden + s0 两块区域,gc 的时候将存活的对象拷贝至 s1,然后清理 Eden 和 s0,接着使用 Eden + s1 作为新的对象分配区域。

图片

后面 gc 后,把存活的对象拷贝至 s0,就这样往复使用两个 Survivor 区即可,这种划分手段就提升了内存的利用率。

并且程序可以根据自身的特性调整 Eden 区和 Survivor 区的比例,默认 8:1:1。

如果单个 Survivor 放不下 GC 存活的对象怎么办?

老年代兜底。

也就是说如果 Survivor 放不下存活的对象,那么超出的对象直接晋升到老年代。

如果老年代剩余的空间也放不下这些存活的对象怎么办?

如果是 CMS 垃圾回收器,则会触发 CMS 回收。如果 CMS 回收不足以回收足够的空间,会触发 Full GC(Serial Old 回收器)。

如果是 G1 垃圾回收器则会触发 Mixed GC。

最后

再来推荐下我们的面试刷题网站和小程序:面试鸭


原文地址:https://blog.csdn.net/codenav/article/details/142630407

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!