以前面试的时候, 偶尔会被面试官问 PHP 的垃圾回收是如何实现的. 当时知识有限, 只能简单百度一下, 然后从源码理解一下 PHP 的垃圾回收, 当 PHP 识别到一个内容不再被用之后, 就会回收. 后来一个偶然的机会, 本人要从事一些 java 相关的工作, 后来面试也想过面试 java 方面的内容, 发现 java 对垃圾回收这块非常重视, 经常有大蝙蝠文章介绍 java 垃圾回收的原理, 本人一直对此不甚明白, 为何同样是编程语言, 为何大家的侧重点差异如此大.
直到最近, 公司需要开发一些占用内存非常严重的 PHP 程序, 然后本人才明白. PHP 作为一种不长驻内存的语言, 它的应用, 往往是简单的重复应用, 后面的经常覆盖前面的内存, 等于变相清除了垃圾内存, 又或者是网页访问的一次性请求, 然后立刻销毁, 所以 PHP 对内存的使用其实天然就有自我清除垃圾的功能. 而 java 在 web 中, 如果不及时销毁垃圾内存, 那么垃圾就可以长久的驻留在内存里面, 久而久之, 很容易就会内存溢出. 两种语言的实现方案, 导致他们对垃圾内存的重视程度不一样. 个人感觉很多面试官都不甚明白, 只是依据自己对 it 行业的理解然后顺口问问这方面的内容. 只有同时对两种不同语言熟悉的人, 才能体会到其中的不同.
来源: http://www.bubuko.com/infodetail-2786033.html