java常见问题,
java常见问题,
我参加了很多面试和笔试,遇到了很多相同的问题。又在贴吧看到一套很符合的面试题目,就顺便整理下。
1、int和Integer的区别,
Integer是封装类,就是一个对象,int是基本数据类型,只能简单计算。
2、系列化和反系列化实现;
对象--字节序列的转化。
字节序列,可以保存于文件,网络传输。
java.io.ObjectOutputStream中writeObject(Object o);
java.io.ObjectInputStream中readObject(Object o);
Serializable和Externalizable接口,才能被序列化
private static final long serialVersionUID = -5809782578272943999L;版本号
3、Set元素不能重复,如何区分?==和equals()区别;
Set不可重复
List
Map 键/值; 专门为了快速查询,但是也只是达到arraylist的效率,插入较慢。
对于基本的数据类型,==比较是他们的值是否相等,不能使用equals。
对于复杂的数据类型。==比较是他们的地址是否相等,就是同一个对象才能相等; equals比较是的他们的值是否相等。
对于类。都是比较他们的地址。
4、单例模式的饿汉式和懒汉式;
懒汉式:延迟加载,相当于load;iterator; 单次效率好,
饿汉式:直接读取,相对get;list;对内存要求比较高。多次效率好。
5、查找大于2000部门的平均薪水,最高和最低的薪水;
Select avg(salary),max(salary),min(salary) from dep where depno in(select depno from dep having avg(salary)>2000);
6、创建线程方法
7、Session和cookie的区别
都是对象,一个存储在服务器
Cookie存储在客户端。
8、Arraylist和linkerlist的区别
1.ArrayList类提供了List ADT的一种可增长数组的实现。使用ArrayList的优点在于,对
get和set的调用花费常数时间。其缺点是新项的插入和现有项的删除代价昂贵,除非变动是在ArrayList的末端是在ArrayList的末端运行。初始化和读取很快。
2.LinkedList类则提供了List ADT的双链表实现。使用LinkedList的优点在于,新项的插入和现有项的删除均开销很小,这里假设变动项的位置是已知的。初始化,读取很慢。
9、Try...catch..finally
1:finally的内容一定会执行,除非退出了程序。就是说return了照样执行;顺序:保存返回值,只是finally,返回值。
2:当finally有return时,会返回finally的return 。
10、实现双向链表
Node{
Node pre;
Node next;
Object object;
...//set和get方法}
List{
Node head;
Node current;
Int size;
public void add(int l,Object o){
Node next,current,tem;
for(int i=0;i<l;i++){
next=head.getNext();
}
current.setObject(0);
tem=next.getNext();
next.setNext(current);
current.setNext(tem);
}
}
相关文章
- 暂无相关文章
用户点评