人生第一次正經技術面。。。感覺自己挺蠢的。。。純漲經驗了吧
Q:
1.線程創建的方式?
2.socket在哪一層?osi七層。為什么。
3.servlet是單例還是多例?
4.一張表五條記錄,分別有三門不同的成績,用一條sql語句求出每門成績最高和最低的和對應的學生姓名。
5.java解析xml的方式?
A:
1.比較簡單,繼承thread重寫Run方法、實現runnable、callable接口
2.傳輸層和網絡層。tcp和ip,也就是讓這個ip網絡層和tcp/udp傳輸層能夠完美的結合。所以socket是這兩層的概括。
數據鏈路層通過物理網絡鏈路提供數據傳輸。不同的數據鏈路層定義了不同的網絡和協議特征,其中包括物理編址、網絡拓撲結構、錯誤校驗、數據幀序列以及流控。
3.servlet是單例的,嚴格地說是一個ServletMapping對應一個單例實例(如果一個Servlet被映射了兩個URL地址,會生成兩個實例)。早期的CGI模式是原型式的,例如同時並發2000次請求一個Servlet,如果不是單例的,內存瞬間要創建2000個對象,同時為了線程安全還得阻塞對方線程,其性能非常之差。
要維護Servlet線程安全有很多辦法,通常是使用同步塊(或方法)來保護共享數據,其次可以volatile、Lock一些鎖機制,還可以使用ThreadLocal來打通安全通道,另外還有原子操作也是用來保護數據安全,有非常多的選擇。
4.SELECT "最高分",student.*
FROM student ,(SELECT MAX(score) AS score,subject
FROM student GROUP BY subject
)b
WHERE student.score
= b.score
AND student.subject
= b.subject
UNION
SELECT "最低分",student.*
FROM student ,(SELECT MIN(score) AS score,subject
FROM student GROUP BY subject
)b
WHERE student.score
= b.score
AND student.subject
= b.subject;
SELECT L.C# As 課程ID,L.score AS 最高分,R.score AS 最低分
FROM SC L ,SC AS R
WHERE L.C# = R.C# and
L.score = (SELECT MAX(IL.score)
FROM SC AS IL,Student AS IM
WHERE L.C# = IL.C# and IM.S#=IL.S#
GROUP BY IL.C#)
AND
R.Score = (SELECT MIN(IR.score)
FROM SC AS IR
WHERE R.C# = IR.C#
GROUP BY IR.C#
);
select c# ,max(score)as 最高分 ,min(score) as 最低分 from dbo.sc group by c#
5.(1)DOM解析(2)SAX解析(3)JDOM解析(4)DOM4J解析 前兩種屬於基礎方法;后面兩種是擴展方法,只適用於java平台。
后續,由於是外包感覺招不到人的樣子。。面成那樣居然下午打電話說還要再面一次。。。直接拒了。因為感覺拿到offer也不會去。還有幾個題記不清了