思考好久不知道该发什么,直接发一大批面试题估计就会在收藏夹吃灰了,每天5道,大家可以在碎片时间看。
1.JDK和JRE有什么区别?
JDK:Java Development Kit的简称,Java开发工具包,提供了Java的开发环境和运行环境。
JRE:Java Runtime Environment的简称,Java运行环境,为Java的运行提供了所需环境。具体来说JDK其实包含了JRE,同时还包含了编译Java源码的编译器Javac,还包含了很多Java、程序调试和分析的工具。简单来说:如果你需要运行Java程序,只需安装JRE就可以了,如果你需要编写Java程序,组要安装JDK。
2.说一下HashMap的实现原理
HashMap基于Hash算法实现,我们通过put(key,value)储存,get(key,value)来获取,当传入key时,HashMap会根据key.hashCode()计算出hash值,根据hash值将value保存在bucket中,当计算出的hash值相同时,我们称之为hash冲突,HashMap的做法是使用链表和红黑树储存相同hash值的value,当hash冲突的个数比较少时,使用链表否则使用红黑树。
3.说一下HashSet的实现原理
HashSet是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet的实现比较简单,相关HashSet的操作,基本都是直接调用底层HashMap的相关方法来完成,HashSet不允许重复的值。
4.Array和ArrayList的区别
Array可以储存基本数据类型和对象,ArrayList只能储存对象
Array是固定大小的,ArrayList大小可以自动扩展
Array内置方法没有ArrayList多,比如add、removeAl、iteration等方法只有ArrayList有
5.如何实现Array和List之间的转换
Array转List:使用Array.asList(array)进行转换
List转Array:使用List自带的toArray()方法
//list to array
List list = new ArrayList();
list.add("差点");
list.add("资深程序员");
Object [] o = list.toArray();
for(Object obj:o){
System.out.println(obj);
}
//array to list
String [] array = new String[]{"差点","资深程序员"};
System.out.println(Arrays.asList(array));