几个面试题,大家都来说说吧..
1、写一个SOCKET 把www.baidu.com首页的内容读取下来
2、熟悉TOMCAT么..说说TOMCAT的线程池实现..
3、熟悉连接池么..说说连接池的实现思路和方式
4、servlet是线程安全的么..如果不是,在高并发环境下,代码的编写要注意哪些地方?
5、Struts中Action是线程安全的吗?如果不是,请说出理由.在Struts可以定义静态变量吗?
6、hibernate的session是线程安全的么?如果是,实现机制是什么?
7、SPRING事务的属性有哪些?其中,事务隔离级别有哪几种?什么情况需要使用这几种事务隔离级别?
8、你们项目的并发问题的解决策略是什么?
9、了解ORACLE的锁么?说说锁机制。
10、是否熟悉ORACLE的优化,如果现在的我的硬盘灯一直在闪的话,怎么有优化,说说思路.
[解决办法]
帮忙顶,不会答,等待大牛们回答!
[解决办法]
搬板凳,坐等学习!
[解决办法]
要是去面试,是这份题目,呵呵,你可以直接了当的问,不做题目,有机会面试咩。有的话,那就直接面试吧。木有的话,那就多跟那接待的MM聊聊天就算了..
[解决办法]
1、写一个SOCKET 把www.baidu.com首页的内容读取下来
不懂。。
2、熟悉TOMCAT么..说说TOMCAT的线程池实现..
不懂。。
3、熟悉连接池么..说说连接池的实现思路和方式
当程序启动的时候,创建多个数据库的连接,并把连接放入到连接池中,当要操作数据库的时候,从连接池中获取连接来操作数据库,操作结束之后不关闭连接,而是把连接放入到连接池中。这样可以减少创建和销毁连接所产生的开销,提高效率。
4、servlet是线程安全的么..如果不是,在高并发环境下,代码的编写要注意哪些地方?
不是线程安全的,不要对servlet的成员变量进行修改操作,如果要操作,需要使用synchronized修饰
5、Struts中Action是线程安全的吗?如果不是,请说出理由.在Struts可以定义静态变量吗?
不是,struts是用ActionServlet类来拦截客户端请求的(在web.xml里配置),ActionServlet也是servlet
6、hibernate的session是线程安全的么?如果是,实现机制是什么?
不懂
7、SPRING事务的属性有哪些?其中,事务隔离级别有哪几种?什么情况需要使用这几种事务隔离级别?
不懂
8、你们项目的并发问题的解决策略是什么?
加synchronizd,不修改类属性
9、了解ORACLE的锁么?说说锁机制。
不懂
10、是否熟悉ORACLE的优化,如果现在的我的硬盘灯一直在闪的话,怎么有优化,说说思路.
不懂
[解决办法]
1、写一个SOCKET 把www.baidu.com首页的内容读取下来
这不过是一个最简单http的协议[获取页面的get],直接使用socket模拟协议内容就能实现.
2、熟悉TOMCAT么..说说TOMCAT的线程池实现..
概念性问题,请百度.
3、熟悉连接池么..说说连接池的实现思路和方式
概念性问题,请百度.
4、servlet是线程安全的么..如果不是,在高并发环境下,代码的编写要注意哪些地方?
概念性问题,请百度.
5、Struts中Action是线程安全的吗?如果不是,请说出理由.在Struts可以定义静态变量吗?
跟上面一个问题在同一个地方,(Struts1不是Struts2是)
6、hibernate的session是线程安全的么?如果是,实现机制是什么?
概念性问题,请百度.
7、SPRING事务的属性有哪些?其中,事务隔离级别有哪几种?什么情况需要使用这几种事务隔离级别?
概念性问题,请百度.
8、你们项目的并发问题的解决策略是什么?
b/s项目来说一般web并发都被容器自动处理了,要处理的也就是数据库并发和自己的线程并发,这方面实际经验才是重要的,但你也可以百度知道一些.并发需要关心的关键:1并发量;2.并发带来的问题(线程安全问题,锁问题)
9、了解ORACLE的锁么?说说锁机制。
概念性问题,请百度.
10、是否熟悉ORACLE的优化,如果现在的我的硬盘灯一直在闪的话,怎么有优化,说说思路.
硬盘灯一直在闪=大量i/o读写,思路就在如何i/o,应用数据库性能在乎的是运算,数据仓库在乎的是i/o
不要指望能不思考就“获得”答案。
[解决办法]
1、写一个SOCKET 把www.baidu.com首页的内容读取下来
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.InputStreamReader;import java.net.URL;public class URLReader { public static void main(String[] args) { URL url=new URL("http://www.baidu.com"); File writeFiel=new File("d:\\baidu.html"); BufferedReader int=new BufferedReader(new InputStreamReader(rul.openStream())); BufferedWriter out=new BufferedWriter(new FileWriter(writeFile)); String inputLine=null; while((inputLine=in.readLine())!=null) { out.write(inputLine); } out.flush(); in.close(); out.close(); }}
[解决办法]
第六题 hibernate session 是通过 ThreadLocal来避免线程安全问题的
[解决办法]
学习一下
[解决办法]
这个问得还不错。。。
------解决方案--------------------
单纯路过学习的
[解决办法]
一样
import java.nio.ByteBuffer;import java.nio.channels.SocketChannel;import java.nio.charset.Charset;import java.net.InetSocketAddress;import java.io.IOException;public class BaiduReader { private Charset charset = Charset.forName("GBK"); // 创建GBK字符集 private SocketChannel channel; public void readHTMLContent() { try { InetSocketAddress socketAddress = new InetSocketAddress( "www.baidu.com", 80);//step1:打开连接 channel = SocketChannel.open(socketAddress); //step2:发送请求,使用GBK编码 channel.write(charset.encode("GET " + "/ HTTP/1.1" + "\r\n\r\n")); //step3:读取数据 ByteBuffer buffer = ByteBuffer.allocate(1024); // 创建1024字节的缓冲 while (channel.read(buffer) != -1) { buffer.flip(); // flip方法在读缓冲区字节操作之前调用。 System.out.println(charset.decode(buffer)); // 使用Charset.decode方法将字节转换为字符串 buffer.clear(); // 清空缓冲 } } catch (IOException e) { System.err.println(e.toString()); } finally { if (channel != null) { try { channel.close(); } catch (IOException e) { } } } } public static void main(String[] args) { new BaiduReader().readHTMLContent(); }}
[解决办法]
不错的帖子,学习了!
[解决办法]
一点不懂 要学习的还多啊
[解决办法]
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class BaiduSocket {
public static void main(String[] args) {
Socket socket = null;
InputStream is = null;
FileOutputStream fos = null;
PrintWriter out = null;
try {
socket = new Socket("www.baidu.com", 80);
System.out.println("成功建立连接.....");
out = new PrintWriter(socket.getOutputStream());
out.println("GET / HTTP/1.1");
out.println("Host: www.baidu.com:80");
out.println("Connection: Close");
out.println();
out.flush();
System.out.println("请求结束");
is = socket.getInputStream();
fos = new FileOutputStream(new File("E:/baidu.txt"));
byte[] bytes = new byte[1024];
int count = -1;
StringBuffer buf = new StringBuffer();
while ((count = is.read(bytes,0,bytes.length)) != -1) {
fos.write(bytes, 0, count);
buf.append(new String(bytes,0,count));
//System.out.println(new String(bytes,0,count));
}
String content = buf.toString();
//是否打印响应头信息,如果要打印头信息注释掉下面这行代码
content = content.substring(content.indexOf("<"));
System.out.println(content);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if(out != null) {
out.close();
}
if (is != null) {
is.close();
}
if (fos != null) {
fos.close();
}
if(socket != null) {
socket.close();
}
} catch(IOException e) {
e.printStackTrace();
}
}
}
}
[解决办法]
线程、IO、socket、事务。基本就这几个,基础理解清楚就可以了。
[解决办法]
1、写一个SOCKET 把www.baidu.com首页的内容读取下来
分为doGet请求和doPost请求
public final class NetWww {
private static Log log = LogFactory.getLog(NetWww.class);
/**
* 执行一个HTTP GET请求,返回请求响应的HTML
*
* @param url
* 请求的URL地址
* @return 返回请求响应的HTML
* @throws IOException
*/
public static String doGet(String url) throws IOException {
String response = null;
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod(url);
try {
client.executeMethod(method);
if (method.getStatusCode() == HttpStatus.SC_OK) {
response = method.getResponseBodyAsString();
}
} catch (IOException e) {
e.printStackTrace();
throw new IOException("执行HTTP doget请求" + url + "时,发生异常!", e);
} finally {
method.releaseConnection();
}
return response;
}
/**
* 执行一个HTTP POST请求,返回请求响应的HTML
*
* @param url
* 请求的URL地址
* @return 返回请求响应的HTML
* @throws IOException
*/
public static String doPost(String url) throws IOException {
String response = null;
HttpClient client = new HttpClient();
HttpMethod method = new PostMethod(url);
try {
client.executeMethod(method);
if (method.getStatusCode() == HttpStatus.SC_OK) {
response = method.getResponseBodyAsString();
}
} catch (IOException e) {
e.printStackTrace();
throw new IOException("执行HTTP dopost请求" + url + "时,发生异常!", e);
} finally {
method.releaseConnection();
}
return response;
}
public static void main(String[] args) throws IOException {
x=doGet("http://www.hao123.com/");
System.out.println(x);
}
}
[解决办法]
学习学习了!
[解决办法]
学习了 .............
[解决办法]
俺都不懂,学习了!
[解决办法]
感觉还好
[解决办法]
还要多学习!!!惭愧啊。。。