1、5个常见异常:
1. Java.lang.NullPointerException 空指针
2. java.lang.ClassNotFoundException 指定的类不存在
3. java.lang.ArithmeticException 数学运算异常,好比程序中出现了除以零这样的运算就会出这样的异常
4. java.lang.ArrayIndexOutOfBoundsException 数组下标越界
5. java.lang.IllegalArgumentException 方法的参数错误,不少J2ME的类库中的方法在一些状况下都会引起这样的错误
6. java.lang.IllegalAccessException 没有访问权限
2、Servlet的生命周期是什么:
一、Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,
二、service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,
三、当服务器决定将实例销毁的时候调用其destroy方法。
3、ArrayList,Vector, LinkedList的存储性能和特性:
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素。
它们都容许直接按序号索引元素,可是插入元素要涉及数组元素移动等内存操做,因此索引数据快而插入数据慢,
Vector因为使用了synchronized方法(线程安全),一般性能上较ArrayList差。
LinkedList使用双向链表实现存储,按序号索引数据须要进行前向或后向遍历,插入数据时只须要记录本项的先后项便可,插入速度较快。
4、多线程有几种实现方法?同步有几种方法?
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口。
实现同步也有两种,一种是用同步方法,一种是用同步块。同步方法就是在方法返回类型后面加上synchronized,
好比:public void synchronized add(){...}
同步块就是直接写:synchronized (这里写须要同步的对象){...}
5、overload和override有什么区别:
Overload是重载,是有相同的方法名,但参数类型或个数彼此不一样
Override是重写,子类与父类中,子类中的方法的方法名,参数个数、类型都与父类中的彻底同样,在子类中覆盖掉了父类的改方法。
6、mysql 语句:
一、分页查询语句:
SELECT * FROM tb_goods_info WHERE auto_id >=2500 ORDER BY auto_id ASC LIMIT 0,20
sql语句意思: LIMIT 0,20 :查询 0+20 行 去除前0行
二、存储过程:
create procedure 存储过程名字()
(
[in|out|inout] 参数 datatype ------变量不用加@。直接 b int; sqlserver须要@
)
begin
MySQL 语句; -------每条语句后都要加 ; 分号。 sqlserver不须要
end;
使用:call pr_no_param();
三、修改列
alter table 表名 change 列名称 列新名称 新数据类型;
四、删除列
alter table 表名 drop 列名称;
五、分组
select id ,count(id_id) group by id having count(id_id)>1
7、Java集合类框架的基本接口有哪些?
一、Collection:表明一组对象,每个对象都是它的子元素。
二、Set:不包含重复元素的Collection。
三、List:有顺序的collection,而且能够包含重复元素。
四、Map:能够把键(key)映射到值(value)的对象,键不能重复。
8、异常处的时候,finally代码块的重要性
不管是否抛出异常,finally代码块老是会被执行。并且finally代码块主要用来释放资源,好比:I/O缓冲区,数据库链接。
9、Java中equals和==的区别
基本数据类型也称原始数据类型:byte,short,char,int,long,float,double,boolean 用“==”比较的是他们的值。
复合数据类型:好比String。 “==”比较的是存储地址。“equals”比较的是值。
String str1="hello";
String str2="he"+new String("llo");
String str3="he"+"llo";
System.out.println(str1==str2); //false
System.out.println(str1==str3); //true
String a = "hello2";
final String b = "hello"; 变量b被final修饰,所以会被当作编译器常量,在使用到b的地方会直接将变量b 替换为它的值
String d = "hello";
String c = b + 2;
String e = d + 2;
String f="hello"+2;
System.out.println((a == c)); //true
System.out.println((a == e)); //false
System.out.println((a == f)); //true
http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html
10、java中final的用法:
一、当用final修饰一个类时,代表这个类不能被继承。
二、对于一个final变量,若是是基本数据类型的变量,则其数值一旦在初始化以后便不能更改;
若是是引用类型的变量,则在对其初始化以后便不能再让其指向另外一个对象。
三、使用final方法的缘由有两个。第一个缘由是把方法锁定,以防任何继承类修改它的含义;第二个缘由是效率。
http://www.cnblogs.com/dolphin0520/p/3736238.html
11、存在js代码:var str="{name:\"aicai\"}",用多种方法把var 转换成json对象:
一、function strToJson(str){
var json = eval('(' + str + ')');
return json;
}
二、function strToJson(str){
var json = (new Function("return " + str))();
return json;
}
三、function strToJson(str){
return JSON.parse(str);
}
12、java 中synchronized和java.util.concurrent.locks.lock的做用及异同
主要相同点:Lock能完成synchronized所实现的全部功能
主要不一样点:Lock有比synchronized更精确的线程语义和更好的性能。
synchronized会自动释放锁,而Lock必定要求程序员手工释放,而且必须在finally从句中释放。
html