人生第一次正经技术面。。。感觉自己挺蠢的。。。纯涨经验了吧
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也不会去。还有几个题记不清了