吸取昨天遲到的教訓,這次我早早的就到了公司,說是十點開始,我九點二十就到了。
到了公司先登記,然後做一份筆試題還包括填寫應聘信息。
大概就包括兩部分java基礎知識和oracle部分
下面是部分筆試題:
一:什麼是多線程?爲什麼要用多線程?與多進程的區別是什麼?
答:線程是程序中一個單一的順序控制流程.在單個程序中同時運行多個線程完成不同的工作,稱爲多線程.
使用線程可以把佔據長時間的程序中的任務放到後臺去處理
用戶界面可以更加吸引人,這樣比如用戶點擊了一個按鈕去觸發某些事件的處理,可以彈出一個進度條來顯示處理的進度
程序的運行速度可能加快
線程和進程的區別在於,子進程和父進程有不同的代碼和數據空間,而多個線程則共享數據空間,
每個線程有自己的執行堆棧和程序計數器爲其執行上下文.多線程主要是爲了節約CPU時間,
發揮利用,根據具體情況而定. 線程的運行中需要使用計算機的內存資源和CPU。 (還是網上的回答比較好,筆試的時候要是能帶本本就好了)
二:java集合類型主要有哪三種?列舉出5個集合類、
我的回答是:List Set Map ArrayList LinkedList HashSet HashMap HashTable
三:寫一個JDBC程序連接oracle,並打印結果集。
這題目很簡單,如何徒手寫在卷面上還要保持工整整潔的話,估計就很難了,反正我寫的亂七八糟,
估計面試官要頭疼一會了,知道怎麼寫,就是很難看而已,下面貼出在工具裏寫好的代碼。。
import java.sql.*;
public class Test {
public static void main(String[] args) {
try {
Class.forName("oracle...."); // 註冊驅動省略
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
try {
con = DriverManager.getConnection("...", "...", "..."); // url,user,password省略
pst = con.prepareStatement("select * from table where uid = ?");
pst.setInt(1, 100);
rs = pst.executeQuery();
while (rs.next()) {
System.out.println(rs.getInt(1)); // 打印數據
System.out.println(rs.getString(2));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
while (rs != null) { // 關閉連接資源
try {
rs.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
// pst con 關閉同上
}
}
}
四:面向對象的特徵有哪些?他們在使用過程中的優勢是什麼?
(1)對象唯一性。 (2)抽象性。 (3)繼承性。(4)多態性(多形性)
使用面向對象思想進行開發有以下優點:
1、易維護
採用面向對象思想設計的結構,可讀性高,由於繼承的存在,即使改變需求,那麼維護也只是在局部模塊,所以維護起來是非常方便和較低成本的。
2、質量高
在設計時,可重用現有的,在以前的項目的領域中已被測試過的類使系統滿足業務需求並具有較高的質量。
3、效率高
在軟件開發時,根據設計的需要對現實世界的事物進行抽象,產生類。使用這樣的方法解決問題,接近於日常生活和自然的思考方式,勢必提高軟件開發的效率和質量。
4、易擴展
由於繼承、封裝、多態的特性,自然設計出高內聚、低耦合的系統結構,使得系統更靈活、更容易擴展,而且成本較低。
(人家都說別人家的老婆好,發現其實別人的答案也挺好的)
五:概述MVC體系結構 爲什麼要用MVC結構?
這個問題我看過很多遍,怎麼一寫到紙上就寫的不那麼完美呢?
MVC模式是"Model-View-Controller"的縮寫 中文翻譯爲模式視圖控制器
Wiew通常是JSP,即頁面顯示部分。Controller通常是Servlet 即頁面顯示的邏輯部分實現
Model通常用服務端的javaBean或者EJB實現 即業務邏輯部分的實現
優點:低耦合性 高重用性和可適用性 較低的生命週期成本 可維護性 有利於團隊開發
六:請給出任意一程序設計樣式示例。
這問題我沒看明白是什麼意思,沒寫出來
簡單題和基礎題就以上這些。。。
下面就是一些oracle問題了。
GOODS(貨品表)
GOODSID(主鍵) GOODSNAME MEMO
1 青黴素
2 西瓜霜
3 創可貼
4 西洋參
SU(進貨表)
GOODSID(主鍵) SUQTY
1 60
2 70
SA(銷售表)
GOODSID(主鍵) SAQTY
2 80
3 90
問題一:進貨記錄,給出SQL達到如下效果
GOODSID GOODSNAME SUQTY
1 青黴素 60
2 西瓜霜 70
3 創可貼 0
4 西洋參 0
問題二:進銷對比,給出SQL達到如下效果
GOODSID GOODSNAME SUQTY SAQTY
1 青黴素 60 0
2 西瓜霜 70 80
3 創可貼 0 90
(有會的請留下答案)
------------------------------------------------
sql優化問題
select * from sa where sa.GOODSID not in(select goods.GOODSID from goods);
1,對上述語句進行優化
2,闡述對於SQL語句你是如何判斷其性能的 並說明在出現性能問題時如何處理?
--------------------------------------------------
數據併發問題
業務場景:存在一下表,狀態爲1的允許刪除,狀態爲2的不允許刪除
SALSTID(主鍵) GOODSID GOODSQTY USESTATUS
1 78 60 1
2 89 70 2
3 33 80 2
要求:在考慮併發的情況下,給出上述刪除行處理的僞代碼。
-----------------------------------------------------
以上就是部分筆試題,oracle部分有點難度(也不是難,而是我不會)
交卷之後接下來直接就面試了。。。
過來一男的,也不知道是不是昨天聊天的那位"牛哥",忘了問了,人挺好的。
面試問到的有:如何理解面向對象。如何理解String這個類,和StringBuffer StringBuilder的區別(說實話,還真沒好好理解過這個String類)。
項目中常用到的一些接口List Set等,ArrayList LinkedList Vector的區別,還有一些原理性的問題 比如是如何存取的(這一般是筆試中常見的題)
大概就記得這些了,其他的都是一些題外話了,比如你對我們公司業務的理解(公司是做ERP的),未來的職業規劃,能否承受較大壓力,能否適應出錯.
技術面之後,是人事面,問了很多東西,其中問到了我的傷心處 (爲什麼從上兩家公司辭職),這裏就不多說了,嗚嗚.....
最後說一到三個工作日我們給你答覆(可能性很小).
不求能否成功,只求每次面試都有所收穫,一步一步來,總會通向成功的彼岸.