各位大虾好:
下面是最近常见面试题,希望能够为正在找工作的java爱好者提供资源帮助,大家共同进步
jsp与servlet
1.direct与forword
2.servlet生命周期基础题
1.Java多态的实现
2.class.forname()的作用,用上它有什么好处
3.delete与tracate的区别
4.怎么样用socket获取本地IP
5.&,|,^,~与逻辑&&,||的区别
6.常用的类型是那些?char能够存储多少个字节?能存汉字吗?如果能,能存储多少个?
7.写一个插入排序或冒泡排序
8.抽象类与接口
9.常用的集合类,接口分别是哪些?
10.线程的实现方法有几种?有几种状态
11.运行时异常与一般异常
12.面向对象与面向过程的区别,你是如何理解的
13.谈谈你对b/s与c/s的理解
14.在数据库上,oracle与sqlserver的区别及范围
15.存储过程与函数的区别?包,游标,触发器的使用
16.public class Test1 {
public static void getstr(String st1){
st1="hello,java world";
}
public static void main(String[] args) {
String st1="1234";
getstr(st1);
System.out.println(st1);
}
}结果为:17.
  如何列出某个目录下的所有文件
  如何列出某个目录下的所有子目录
  判断一个文件或目录是否存在
  如何读写文件17.有员工表 emp(empid,Identified,ename,ebirth,deptid)分别代表员工编号,员工身份证号码,员工姓名,员工生日,员工所在部门,部门表 dept(deptid,deptname)分别代表部门编号,部门
a.求身份证号为422129198001010531的员工姓名,生日及所在部门
b.求生日相同的员工姓名,所在部门
c.求生日相同,部门相同的员工姓名,身份证号码,部门
xml
xml的解析方式,及它们之间的区别

解决方案 »

  1.   

    Servlet的生命周期分为5个阶段: 
    实例化:Servlet容器创建Servlet类的实例。 
    初始化:该容器调用init()方法,通常会申请资源。 
    服务:由容器调用service()方法,(也就是doGet()和doPost())。 
    破坏:在释放Servlet实例之前调用destroy()方法,通常会释放资源。 
    不可用:释放内存的实例
      

  2.   

    Java多态的实现:实现多个接口
      

  3.   

    TRUNCATE和Delete有以下几点区别
      1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令Delete将被撤销,而TRUNCATE则不会被撤销。
      2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
      3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比Delete操作后的表要快得多。
      4、TRUNCATE不能触发任何Delete触发器。
      5、不能授予任何人清空他人的表的权限。
      6、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
      7、不能清空父表。 
      

  4.   

    关于forName()方法
    这个方法总是返回要加载的类的Class类的实例。forName(String className)单参数时, initialize=true,使用当前类装载器(也就是装载执行forName()请求的类的类装载器,初始化这个被装载的类(当然也包括:装载、连接、初始化),JVM会执行该类的静态代码段。
      

  5.   

    1.direct与forword
     
      forward 是服务器请求资源,服务器直接访问目标地址的URL,把目标地址的响应结果读取出来,然后把这些内容再发送给浏览器,浏览器根本不知道服务器发送的内容从哪来的,所以浏览器的地址栏还保留的是它原来的地址,
       redirect就是服务器端根据逻辑判断发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才服务器发送的所有参数重新请求,所以session,request参数都可以获取。浏览器地址栏发生变化2.同10楼
    3.class.forname()的作用,用上它有什么好处
      使用该方法直接生成以字符串命名的类的对象,
    5.&,|,^,~与逻辑&&,||的区别 
       a。条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型的,也可以操作数值型的。
       b。逻辑操作不会产生短路6.常用的类型是那些?char能够存储多少个字节?能存汉字吗?如果能,能存储多少个? 
       常用的原始数据类型有:
           1.整数类型:byte short int long
          2.浮点类型:float double
          3.字符型:char
          4.布尔型:boolean
          在java中以Unicode编码,一个char占16字节,所以保存一个汉字是没有问题的。
    7.写一个插入排序或冒泡排序
        冒泡:
        public int[] getSelect(int[] data){
           for(int i=data.length-1;i>=0;i--){
               for(int j=0;j<i;j++){
                   if(data[j]>=data[i]){
                       int temp = data[j];
                       data[j] = data[i];
                       data[i] = temp;
                   }
               }
           }
           return data;
       }
      

  6.   

    xml 
    xml的解析方式,及它们之间的区别两种形式 dtd  schema,本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的),有DOM,SAX,STAX等    DOM:处理大型文件时其性能下降的非常厉害.这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问    SAX:不现于DOM,SAX是事件驱动型的XML解析方式.它顺序读取XML文件,不需要一次全部装载整个文件.当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问
      

  7.   

    jsp与servlet 
    1.direct与forworddirect是二次请求,url跳转,request内数据不共享
    forward是一次请求,url不跳转,request内数据共享
     
    2.servlet生命周期 初始化调用init()
    根据请求方式service()调用相应的doget()/dopost
    销毁调用destroy()基础题 
    1.Java多态的实现继承  重载
     
    2.class.forname()的作用,用上它有什么好处期待答案
     
    3.delete与tracate的区别 期待答案4.怎么样用socket获取本地IP 期待答案5.&,|,^,~与逻辑&&,||的区别 位运算符:&,与,符号两边都进行运算,有一方非1则结果非1;  |,或,有一方为1则结果为1; ^,异或,双方异同,则结果位; ~,非,即取反运算逻辑运算符:&&,逻辑与,符号左边为false,右边不计算,结果为false; ||,逻辑或,有一方为true则结果为true6.常用的类型是那些?char能够存储多少个字节?能存汉字吗?如果能,能存储多少个? int,char,long,String,byte,float,double;
    其他的期待答案7.写一个插入排序或冒泡排序冒泡:降序
    int[] a={...};
    for(int i=a.length;i>0;i--){
    for(int j=0;j<i-1;j++){
    int temp=0;
    if(a[j]<a[j+1]){//改为>,则为升序
    temp=a[j];
    a[j]=a[j+1];
    a[j+1]=temp;
    }
    }
    }插入期待答案
     
    8.抽象类与接口抽象类:抽象类中可以有抽象方法也可以没有,抽象类只能单继承,子类必须实现其所有抽象方法;
    接口:其中所有类为抽象类,变量被static final修饰,可以显示多继承,子类必须实现其所有方法;
    两种都可以声明其引用,并指向其相应的子类对象;
     
    9.常用的集合类,接口分别是哪些?Map,Set,List
     
    10.线程的实现方法有几种?有几种状态 期待答案11.运行时异常与一般异常runtimeException:不能捕获,无能为力
    Exception:可以捕获,可以处理
     
    12.面向对象与面向过程的区别,你是如何理解的面向对象:抽象化,封装,继承,多态
     
    13.谈谈你对b/s与c/s的理解 B/S:browser/server:直接用浏览器就可以操作,服务器把处理过的结果发给浏览器进行显示,节省存储空间;
    C/S:client/server:需要安装客户端,服务器把一部分内容发给客户端进行分析显示,占用存储空间;14.在数据库上,oracle与sqlserver的区别及范围 期待答案15.存储过程与函数的区别?包,游标,触发器的使用 期待答案16.public class Test1 { 
    public static void getstr(String st1){ 
    st1="hello,java world"; 

    public static void main(String[] args) { 
    String st1="1234"; 
    getstr(st1); 
    System.out.println(st1); 

    }结果为: 
    123417. 
      如何列出某个目录下的所有文件 
      如何列出某个目录下的所有子目录 
      判断一个文件或目录是否存在 
      如何读写文件 dir.listFiles();
    File[] d=dir.listFiles();
    File[] c=null;
    for(int i=0;i<dir.length;i++){
    if(d[i].isDirectory()){
    c.put(d[i]);
    }
    }
    c.listFiles();//不太确定,有待考证
    file.exists();//同上
    InputStream is=new FileInputStream(a);
    OutputStream os=new FileOutputStream(b);
    byte[] buf=new byte[1024];
    int len=0;
    while((len=is.read(buf)!=-1)){
    os.write(buf,0,len);
    }
    关闭对象等;17.有员工表 emp(empid,Identified,ename,ebirth,deptid)分别代表员工编号,员工身份证号码,员工姓名,员工生日,员工所在部门,部门表 dept(deptid,deptname)分别代表部门编号,部门 
    a.求身份证号为422129198001010531的员工姓名,生日及所在部门 
    b.求生日相同的员工姓名,所在部门 
    c.求生日相同,部门相同的员工姓名,身份证号码,部门 a.select ename,ebirth,deptname from emp,dept where emp.deptid=dept.deptid and identified=422129198001010531;b、c期待答案
    xml 
    xml的解析方式,及它们之间的区别期待答案
      

  8.   

    char 采用unicode编码。。所以一个char有16个字节,一个汉字两字节
      

  9.   

    char 采用unicode编码。。所以一个char有16个字节,一个汉字两字节
      

  10.   

    线程实现   继承Thread类或者实现Runable接口
    四种状态:运行,就绪,挂起,结束
      

  11.   

    11.运行时异常与一般异常 runtimeException:不能捕获,无能为力 
    Exception:可以捕获,可以处理 runtimeException这个只是不强制捕获,同样是可以捕获的
      

  12.   

    6.常用的类型是那些?char能够存储多少个字节?能存汉字吗?如果能,能存储多少个?   八个基本数据类型: byte,short,int,long,float,double,char,boolean
      char在Java中占两个字节,汉字占两个字节,所以存一个汉字  另外:
      在java中如果想从字节流里读取汉字的话,得连续读取连个字节才能得到汉字
      char在C中是占一个字节的
      在java中,八个基本数据类型是Java内置的,不管在什么操作系统和平台上这些数据类型的长度和特征都是一样的
      String在java中是一个对象而不是数据类型,