面试题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