初级Java工程师面试所遇面试题

1.servlet的生命周期 : 

        一、百度百科 :

                                    1、客户端请求servlet;

                                    2、加载servlet类到内存;

                                    3、实例化并调用init()方法初始化servlet;

                                    4、调用service()方法;

                                    5、加载和实例化servlet。

        二、菜鸟教程 :

                                    1、servlet调用init()方法进行初始化;

                                    2、service调用service()方法处理客户端请求;

                                    3、service调用destroy()方法终止;

                                    4、JVM垃圾回收器对servlet进行垃圾回收。

2、List的子类 :

        一、ArrayList子类 :

                                    1、底层数据结构是数组;

                                    2、查询快,增删慢;

                                    3、线程不安全,效率高;

                                    4、add()添加元素,get(index)获取元素;

        二、Vertor : 

                                    1、底层数据结构是数组;

                                    2、查询快,增删慢;

                                    3、线程安全,效率低;

                                    4、addElement()添加元素,elementAt(index)获取元素;

        三、Linkedlist : 

                                    1、底层数据结构是链表;

                                    2、查询慢,增删快;

                                    3、线程不安全,效率高;

                                    4、addFirst()添加在首,addLast()添加在尾,getFirst(),getLast()获取元素,removeFirst(),removeLast()删除元素;

3、for遍历与迭代器遍历的区别 : 

        一、iterator迭代器:

                                    1、适用于连续内存存储方式,例如数组,ArrayList;

                                    2、优点 : 可以实现一边遍历一边删除;

                                    3、只能从头开始遍历;

        二、for each遍历:

                                    1、底层基于iterator实现,也是从头开始遍历,但是效率会慢与iterator迭代,因为多出类型转换;

                                    2、不允许一边遍历一边删除,会抛出异常;

        三、for 遍历 :

                                    1、优点:可以从指定位置遍历,性能好;

                                    2、缺点 :会有额外的代码产生;而且不能一边遍历一边删除,否者会抛出异常;

猜你喜欢

转载自www.cnblogs.com/Mr-Tang/p/10665004.html