群硕20170515Java研发实习生笔试题

来源:互联网 发布:手机淘宝怎么修改评价 编辑:程序博客网 时间:2024/05/17 13:10

昨天,群硕来我们学校召开了宣讲会,不得不承认我啥都没有准备就顺便去参加了群硕的笔试,然而在意料之外又在情理之中的结果是,我笔试就没有过。

我之前也做过一点项目的,所以说我现在才知道,能做出东西和能理解透那些知识点是两码事。一般情况,达到会做项目的水平,只要知道如何去做,大体上的业务流程是什么就行了。然后做项目的过程中遇到一些细节问题的话,可以再寻求论坛上大神的类似问题的解决方法。但是一旦这些东西落到纸上,那就是真刀真枪,没有任何提示,全凭自己的知识储备和记忆能力了。

趁着我还有点印象,我就大致回忆一下题目吧,希望能对各位战友有所帮助。

1.说一下你对垃圾回收的理解。

Carbage Collection(GC) 垃圾回收,是为了让系统更加安全和稳定。这一点和c++中的内存的释放与分配相似,不过c++中都是由程序员来管理的,而一旦程序员错误地操作了内存的话,就会有系统崩溃的危险。而Java在这一方面就做的比较人性化,Java语言中的垃圾回收器有自动检测功能,如果发现内存中的存储空间不再用到,就会将其释放掉。从这一方面来讲,减轻了程序员的工作量,使其能将能多的时间和精力用在更有价值的事情上。

垃圾回收器的自动检测功能在维护了系统的稳定性的同时,也增加了JVM的负担。因为垃圾回收器要不断的跟踪内存的分配及使用情况,有哪些对象需要被释放,释放完“垃圾”之后还得收拾“残局”——堆中残余的碎片,所以虚拟机的负担也不可避免的增加了,程序的执行效率势必要降低。鱼与熊掌不可兼得也。

那么,什么才是垃圾呢?

如果一个对象,没有被程序访问,即程序中没有任何一个变量去引用它,那这个对象占据的内存空间就是垃圾,就该将其释放掉。

需要注意一点,回收的是没有任何引用对象所占据的内存空间而不是对象本身。


2.明天再写