常见的Java面试问题以及答案
想要顺利通过Java这一面试关卡,除了掌握扎实的理论知识与过硬的技术本领外,还需要在面试前做好充足的准备。这里所说的面试准备包括对面试公司的了解,以及面试中对于常见面试问题的回答。就拿Java岗位来说,面试官考察的知识点有很多,因此一定要做好准备。接下来,就让千锋西安校区老师为大家具体讲解一下常见的Java面试问题以及相关答案。
问题一:GC是什么?为什么要有GC?
参考答案:GC是垃圾收集的意思。内存处理是编程人员最容易出现错误的地方,忘记或者错误的内存回收会导致程序或者系统的不稳定甚至崩溃。而Java提供的GC功能可以自动检测对象是否超过作用域从而达到自动回收内存的目的,但是Java语言没有提供释放已分配内存的显示操作方法。
问题二:ArrayList类和LinkedList类有什么异同?
参考答案:首先,这两个类的相同点在于这两个类都继承了List类型,所以很多的API是一样的。其次就不同点来说,我们可以将这两个类简单想象成为C语言中的数组和链表形式,这样我们就可以通过命名可以直观看出两者的区别。还可以通过插入数据时的反应速度区别二者的不同。当插入数据时,LinkedList会比ArrayList快很多,因为前者只是做了一个类型插件,而后者将整个数据向后移动。然而在面对随机搜索时,ArrayList要比LinkedList速度快很多,类比C语言,其实就可以得到很好的理解。
问题三:forward和redirect的区别?
forward是服务器请求资源,服务器直接访问目标地址的URL,把URL的响应内容读取出来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
Redirect就是服务端根据逻辑发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。
综上所述,想要成功通过面试,还需要做好面试前充足准备。千锋教育作为一家“用良心做教育”的职业教育机构,始终以学生学习、成长为目标,与此同时,更有专业的就业指导老师为学员面试、就业保驾护航。