Java面试题---JavaSE方式

1.    HashMap 和 HashTable区别:两者的主要区别是Hashtable是线程安全的,HashTable是非线程安全。因而HashMap的速度更快,所以若无特殊需求建议使用Hashmap.多线程环境下如果使用HashMap,则应该使用synchronizedMap()方法来获取一个线程安全的集合。第二个是hashmap允许有空值,而且计算hash方式不同,不过两者的实现方式都是数组和链表方式。

2.    常见的异常:算术异常,空指针异常,类型转换异常,数组越界异常,文件读取异常,输入输出异常,操作数据库异常。

3.    HashMap数据结构:在Java语言中,最基本的数据结构一个是数组一个是引用,HashMap实际上是一个链表散列表的数据结构,即数组和链表的结合体。存取的时候,先计算hash值,然后根据hash值得到元素在数组中的位置,如果这个位置上已经有元素,则在这个位置上按照链表的形式存放,先加的存放在链表头,最先加入的放在链表尾。

4.    arrayList和vector的区别:Vector的方法都是同步的,是线程安全的,而ArrayList的方法不是,因此ArrayList性能更好。当元素超过初始大小时,vector会翻倍,而ArrayList之增加50%。

5.    list,set,map的区别,list和set实现了collection接口,其中ilst是有序的可以允许重复对象,常用的实现类有ArrayList,LinkedList,vector。Set刚好相反,不允许重复对象,无序容器,无法保证每个元素的存储顺序,只允许一个null,常见的实现类有Haseeset,Treeset。Map不是collection的子类或者实现类,Map是一个接口,按照键值对的方式存放。流行的几个实现类是:HashMap,LInkedHashMap,HashTable,TreeMap。

6.    Java多线程中死锁的问题:Java程序基本都涉及多线程,而多线程不可避免会遇到死锁问题。死锁是野日线程争用资源,导致被阻塞。避免死锁,

7.    Interface和abstract的区别和相同点:参考抽象类和接口的区别与相同点。

8.    多线程的实现方法和同步的实现方法:多线程实现方法有:Runnable接口和继承Thread类。同步的实现方式有两种,一种是用同步方法,一种使用同步块。同步方法是在方法返回类型后加上synchronized,同步块就是直接写:synchronized。

9.    什么是序列化,如何实现:序列化是一种用来处理对象流的机制,所谓对象流就是将对象内容流化,可以对流化后的对象进行读写操作,序列化是为了解决对对象流进行读写操作时引发的问题。序列化实现需要实现Serializabile接口,该接口没有需要实现的方法。

10.  Java中的equals和==的区别:equals表示两个变量是否对应同一个对象的引用,即堆中的内容是否相同。==操作比较两个变量的值是否相等,即堆中的内容是否相同。简单来说,也就是equals比较两个对象的内容是否相同,==比较的是两个对象是否是同一对象。


猜你喜欢

转载自blog.csdn.net/mr_ming_/article/details/79735527