笔试:
1、文件拷贝,把一个文件的内容拷贝到另外一个文件里
/**
* 复制单个文件
* @param oldPath String 原文件路径 如:c:/fqf.txt
* @param newPath String 复制后路径 如:f:/fqf.txt
* @return boolean
*/
public void copyFile(String oldPath, String newPath) {
try {
int bytesum = 0;
int byteread = 0;
File oldfile = new File(oldPath);
if (oldfile.exists()) { //文件存在时
InputStream inStream = new FileInputStream(oldPath); //读入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1444];
int length;
while ( (byteread = inStream.read(buffer)) != -1) {
bytesum += byteread; //字节数 文件大小
System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
inStream.close();
}
}
catch (Exception e) {
System.out.println("复制单个文件操作出错");
e.printStackTrace();
}
}
2、jsp里边的对象,以及常用的方法
九大内置对象:
请求对象:request
响应对象:response
页面上下文对象:pageContext
会话对象:session
应用程序对象:application
输出对象:out
配置对象:config
页面对象:page
例外对象:exception
常用方法:
//out对象方法
out.print("...");
out.println("...");
//request对象方法
request.getParameter(String name);
request.setAttribute(String name, Object ob);
request.getAttribute(String name);
//response对象方法
response.sendRedirect(String location); //将客户机重定向到特定的URL。
response.addCookie(Cookie cook); //添加一个cookie对象
//session对象方法
session.getID(); //返回JSP容器分配给用户的唯一标示sessionID
session.getAttribute(String name); //返回与指定名称相联系的属性
session.setAttribute(String name, Object ob); //将一个对象绑定到会话中指定的name属性
session.removeAttribute(String name); //删除绑定到对话中指定名称的对象
//application对象方法
applicaton.getAttribute(String name); //返回与指定名称相联系的属性
applicaton.setAttribute(String name, Object ob); //将一个对象绑定到application中指定的name属性
applicaton.removeAttribute(String name); //删除绑定到application中指定名称的对象
3、HashMap遍历的几种方法
第一种:效率高,以后一定要使用此种方式!
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
第二种:效率低,以后尽量少使用!
Map map = new HashMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object val = map.get(key);
}
4、写一个类,连接数据库并执行一条sql
import java.sql.*;
public class rr
{
public static void main(String[] args)
{
try
{
String url="jdbc:mysql://localhost/mydb";
String user="root";
String pwd="123456";
//加载驱动,这一句也可写为:Class.forName("com.mysql.jdbc.Driver");
Class.forName("com.mysql.jdbc.Driver").newInstance();
//建立到MySQL的连接
Connection conn = DriverManager.getConnection(url,user, pwd);
//执行SQL语句
Statement stmt = conn.createStatement();//创建语句对象,用以执行sql语言
ResultSet rs = stmt.executeQuery("select * from student");
//处理结果集
while (rs.next())
{
String name = rs.getString("name");
System.out.println(name);
}
rs.close();//关闭数据库
conn.close();
}
catch (Exception ex)
{
System.out.println("Error : " + ex.toString());
}
}
}
面试:
1、JVM性能调优,都做了什么?
答:
1).控制GC的行为.GC是一个后台处理,但是它也是会消耗系统性能的,因此经常会根据系统运行的程序的特性来更改GC行为
2).控制JVM堆栈大小.一般来说,JVM在内存分配上不需要你修改,(举例)但是当你的程序新生代对象在某个时间段产生的比较多的时候,就需要控制新生代的堆大小.同时,还要需要控制总的JVM大小避免内存溢出
3).控制JVM线程的内存分配.如果是多线程程序,产生线程和线程运行所消耗的内存也是可以控制的,需要通过一定时间的观测后,配置最优结果
2、forward和sendRedirect的区别
答:sendRedirect是跳转302,它会请求2次,forward是请求转发,只请求1次服务器帮忙转发
3、<jsp:include page=''> 和 <%@include file=''%>的区别
答:一个是先调用再生成Servlet,一个是生成Servlet再调用
4、熟悉linux下的开发么?
你要说熟悉,他们问题一些liunx开发常用的东西
你要说不熟悉,他们会说哦,对你减10分
5、tcp头部都什么东西,http呢?
tcp这个我真不知道,http一些请求设置
6、加密解密的东西做过么?如md5什么的
用过md5加密的密码