1. 程式人生 > >java初級工程師面試題一

java初級工程師面試題一

今天去面試了,做了份筆試題,很基礎,由於沒有關注基礎最後還是掛了。在這裡對今天的面試做一個總結以防止下一次再犯同樣的錯誤。

1.寫出jsp的四個作用域

     解:application,session,request,pageContext

2.描述servlet的生命週期?

    解:首先呼叫init()方法初始化,然後呼叫service()方法處理請求,最後呼叫destroy()銷燬。由jvm進行垃圾回收。

3.詳細描述一下mvc?

    解:mvc即模型(mode)-檢視(view)-控制(controler)的縮寫。模型層即從業務抽取出來用於儲存資料的實體類(pojo);檢視層用於展示資料的地方。控制層用於存取資料,轉發請求,它是銜接模型層和檢視層的中央樞紐。程式採用mvc的開發方式,可以提高程式的可維護性,降低程式碼直接的耦合度,每個層之間各司其職。

4.switch的表示式可以作用於byte嗎?可以作用於long嗎?可以作用於String嗎?

    解:switch表示式作用的資料型別byte,short,char,enum(java5),String(java7)

5.short s1 = 1;s1=s1+1錯在哪?short s1 = 1;s1 +=s1錯在哪?

    解:java語言中基本資料型別之間進行運算,運算結果會向高位資料型別轉換,所以s1+1結果為int型別在賦給s1會出現編譯報錯。由於 += 是java語言規定的運算子,java編譯器會對它進行特殊處理,因此可以正確編譯。

6.描述一下java中的collection?

    解:java中的collection的子介面主要List和Set兩大類。

          (1).  List介面的實現類主要有LinkedList和ArrayList。其中LinkedList主要是以連結串列的方式儲存,特點就是增加和刪除元素的效率特別高,新增和刪除元素時只需改變指標的指向。ArrayList主要是以連結串列的方式儲存資料,陣列有個特點就是支援隨機訪問,查詢非常快。

          (2). Set介面的實現類主要有HashSet和TreeSet。Set集合有個特點就是不允許元素重複,它裡面的元素是無序的。

7.簡述java中連線資料庫的步驟?

   解:(1)載入驅動

             通過Class.forName("com.mysql.jdbc.Driver")載入驅動;

          (2)獲取連線

             通過DriverManager.getConnection獲取連線。

          (3)執行sql

             從connection中獲取執行sql的Statement物件,執行statement的excuteQuery(sql)方法獲得一個ResultSet結果集,,從ResultSet中獲取資料

          (4)關閉連線

                最後呼叫的connection的close()方法關閉連線。

8.java中陣列有length()方法嗎?String有length嗎?

   解:java陣列中沒有length()方法,獲取陣列長度時通過.length獲取。String 沒有length,獲取String的長度時呼叫length()方法。

9.寫一個singleton?

   解:public class Singleton{

              private static Singleton singleton;

              private    Singleton(){}

              public static Singleton newInstance(){

                   if(singleton==null){

                            singleton = new Singleton();

                    }

                    return singleton;

             }

          }

10.給出檔名和一個字串,寫一個方法統計該字串在檔案中出現的次數?

    解://統計一個字串在另一個字串出現的次數
         public int count(String str1,String str2){
            int i = 0;
            int lgth = str2.length();
            while(str1.indexOf(str2)>-1&&str1.length()>str2.length()){
                i++;
                str1 = str1.substring(str1.indexOf(str2)+str2.length(),str1.length());
            }
            return i;

        }

11.有一個test表,表結構如下

    ID         NAME            AGE             MANAGER

    1           小張                 25                   2

    2           小花                 30                  1

查詢所有員工年齡大他主管年齡的姓名和年齡

    解:select a.NAME,a.AGE from test as a,(select * from test) as b where a.MANAGER=b.ID and a.AGE>b.AGE