面试题1

1.描述每个集合的特性,说说他们的不同和特点

答:List、Set、Map

  List:存储的元素有序、可重复

  Set:存储的元素无序、不可重复

  Map:通过键值对的形式存储元素

 

2、利用javaAPI对ArrayList中的元素进行排序,有几种方式?

 答:只有整型可以排序,其他什么字符串只有比较,比较的是字符串的长度、对象里,比较的对象的属性年龄或者学号等。
  1、Arrays.sort()  比较整形数组,由大到小

  2、Collection.sort(List集合)

  3、写一个自定义比较器类并实现Comparetor接口,实现compare 方法,

    如果返回的是-1,由大到小排序;

    如果返回的是0,按原来的顺序;

    如果返回的是1,由小到大排序。

    Collections.sort(比较器)

  4、ArrayList  对象.sort(自定义比较器)

  

3、利用javaAPI读取文件,并写入另外一个路径。

 

package com.luo.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;

public class test {
    
    public static void main(String[] args) throws Exception  {
        File readFile=new File("d:\\jiao01.png");
        File writeFile=new File("d:\\abc\\jiao01.png");
        
        FileInputStream fileInputStream = new FileInputStream(readFile);        
        FileOutputStream fileOutputStream = new FileOutputStream(writeFile);
        
        byte[] buf=new byte[1024];
        int len=0;
        while((len=fileInputStream.read(buf))!=-1) {
                fileOutputStream.write(buf, 0, len);            
        }
        
        fileInputStream.close();
        fileOutputStream.close();
    }
}

 

4、请写一个判读对象是否为空的方法,方法传递的参数是Object类型,空对象返回true,否则false,注意:集合中没有元素,map无键值对,数组中没有数据则判断为空。

public boolean isEmpty(Object object) {
        
        boolean result=false;
        if(object==null && object.equals("") && object.toString().length()==0) {
            result=true;
        }
        
        return result;
    }

 

 

5、什么是数据库事务,有什么特性,隔离级别有哪些?

答:所谓事务是指单个逻辑操作单元,

  提交事务就是,一组逻辑操作单元,使数据从一种状态转换为另一种状态。

事务的特性:原子性,隔离性,持久性,一致性

隔离级别:read_committed读提交、read_uncommitted读未提交、repeatable_read重复读、serializable序列化

 

6、如何优化数据库,开发中优化数据库体现在哪些方面?

答:1、减少服务器与数据库的交互,即同一个sql语句执行多次。充分使用cache缓存,减少数据库压力。(服务器访问数据库时) 

  3、为了减少多表关联,添加一些冗余的字段,提高查询的效率。(设计表时)

  4、SQL语句的优化  (SQL语句的编写)

  

 

7、请画图或者简述SpringMVC的执行流程

  (1)用户发送请求到前端控制器

   (2)前端控制器接受到请求后,调用处理器映射器

  (3)处理器映射器找到xml中的配置或者拦截器,生成处理对象送到前端控制器

  (4)前端控制器调用处理器适配器

  (5)处理器适配器找通过请求映射找到对应的控制方法

  (6)控制方法中经过一系列的业务处理,封装成ModelAndView,返回到处理器适配器,然后处理器适配器把这结果送到前端控制器

  (7)前端控制器接受结果,开始调用视图解析器

  (8)视图解析器把ModelAndView解析成视图,交给前端控制器

  (9)前端控制器渲染视图后,响应给用户

 

8、请写出开发中遇到的异常类

1、空指针异常,java.lang.NullPointerException

2、指定的类不存在,java.lang.ClassNotFoundException

3、数学运算异常,java.lang.ArithmeicException

4、数组下标越界,java.lang.ArrayIndexOutOfBoundsException

5、方法参数错误异常,java.lang.illegalArgumentException

6、没有访问权限,java.lang.illegalAccessException

7、运行时异常,RuntimeException

  

 

posted @ 2019-07-10 20:59  luojack  阅读(149)  评论(0编辑  收藏  举报