平时网上冲浪的时候,总是会看到“某大厂”、“某中厂”、“又一互联网大厂”如何如何了,那么
大家口中的“大厂”究竟是指的哪些公司呢?
评判一家互联网公司处在什么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。
再来推荐下
我们的面试刷题网站和小程序:面试鸭!
咱们面试鸭立志成为
一款题库全面、持续更新、题解优质的刷题神器
,主要目的就是为了彻底解决所有你能想到的八股文学习痛点!
我们精选了近两年的高频面试真题,
已经
有 8000 多道面试题
目啦,
由大厂资深面试官手写答案,押题命中率超高!
不仅有传统八股文,场景题、项目题、系统设计题等等应有尽有,还在不断更新中!
面试鸭十月涨价!
当前最低价 99.9 元买断永久会员