腾讯java开发面试题

| 阅读数:--次| 作者:小豆豆
摘要:腾讯java开发面试题
笔试:
1、文件拷贝,把一个文件的内容拷贝到另外一个文件里
java代码
/** 
* 复制单个文件 
* @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
常用方法:
java代码
//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遍历的几种方法
第一种:效率高,以后一定要使用此种方式!
java代码
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();
}
第二种:效率低,以后尽量少使用!
java代码
Map map = new HashMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
 Object key = iter.next();
  Object val = map.get(key);
}
4、写一个类,连接数据库并执行一条sql
java代码
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加密的密码
返回顶部
学到老代码浏览 关闭浏览