人生第一次正经技术面。。。感觉自己挺蠢的。。。纯涨经验了吧
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,