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