全面试 软件开发工程师 含答案.docx
《全面试 软件开发工程师 含答案.docx》由会员分享,可在线阅读,更多相关《全面试 软件开发工程师 含答案.docx(12页珍藏版)》请在第一文库网上搜索。
1、面试软件开发工程师含答案1.GC是什么?为什么要有GC?GC是垃圾收集的意思(GabageCo11ection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。2、垃圾回收的优点和原理。并考虑2种回收机制。Java语言中一个显著的特点就是引入了垃圾回收机制,使c+程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只
2、有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。3.垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象
3、是“可达的”,哪些对象是”不可达的“。当GC确定一些对象为“不可达”时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。4、什么时候用assert。assertion断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boo1ean表达式进行检查,一个正确程序必须保证这个boo1ean表达式的值为true;如果该值为fa1se,说明程序已经处于不正确的状态下,assert将给出警告或退出。一般来说,assertion用于保证程序最
4、基本.关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。packagecom.huawei.interview;pub1icc1assAssertTest*paramargspub1icstaticvoidmain(Stringargs)/TODOAuto-generatedmethodstubinti=O;for(i=0;i5;i+)(System.out.print1n(i);)假设程序不小心多了一句T;-i;asserti=5;)5.java中会存在内存泄漏吗,请简单描述。所谓内存泄露就是指一个不再被程序使用的对象
5、或变量一直被占据在内存中。java中有垃圾回收机制,它可以保证一对象不再被引用的时候,即对象编程了孤儿的时候,对象将自动被垃圾回收器从内存中清除掉。由于Java使用有向图的方式进行垃圾回收管理,可以消除引用循环的问题,例如有两个对象,相互引用,只要它们和根进程不可达的,那么GC也是可以回收它们的,例如下面的代码可以看到这种情况的内存回收:packagecom.huawei.interview;importjava.io.IOException;pub1icc1assGarbageTest* paramargs* throwsIOExceptionVpub1icstaticvoidmain(St
6、ringargs)throwsIOException/TODOAuto-generatedmethodstubtry(gcTest();/TODOAuto-generatedcatchb1ocke.printStackTrace();)System.out.print1n(,hasexitedgcTest!);System.in.read();System.in.read();System.out.print1n(outbegingc!);for(inti=0;i100;i+)(System.gc();System.in.read();System.in.read();)System.in.r
7、ead();System.in.read();Personp1=newPerson();System.in.read();System.in.read();Personp2=newPerson();p1.setMate(p2);p2.setMate(p1);System.out.print1n(beforeexitgctest!);System.in.read();System.in.read();System.gc();SystemeoutprintInCexitgctest!);)bytedata=newbyte20000000;Personmate=nu11;pub1icvoidSetM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全面试 软件开发工程师 含答案 面试 软件 开发 工程师 答案