2016年Java面试总结1

 时间:2024-10-12 12:26:33

1、HashMap的实现原理?(当时被问到这个,我心中只有一句话,你XX)

2、hashmap使用put和get方法来存贮和获取键值对的的,当用put收到了键值对的时候,通过键调用hashcode()方法来获取到hashcode,然后找到(bucket)位置来储存值对象

3、描述一下ArrayList和LinkedList区别?

4、ArrayList是内部基于数组的,雉搽妤粲LinkedList内部实现基于连续的(链表)的,ArrayList在数据随机查询时候用,而LinkedList顺序查挝后芪醢询时用,ArrayList在插入数据在前中时,后面的数据也要改动,速度较慢,所以在数据的前中阶段添加修改数据的时候用LinkedList总的来说就是在查询的时候用ArrayList,增加修改的时候用LinkedList.ArrayList起始大小是10,如果满了以后还有添加数据,ArrayList空间扩大50%,这是个问题,难道用LinkedList,LinkedList由于是链表结构的了,如果说一个数据在ArrayList占2个位置的话(一个是键,一个是值),那么LinkedList就占3个位置了(上个元素,自身,下个元素)同时他们也是线程不安全的?

5、线程安全和不安全?(在问到hashmap hashtable区别的时候,还有线程安全的时候,hr就衍生出了这个问题)

6、线程安全:就是多线程执行的时候,结果是确定的,线程不安去:就是线程执行时,结果是不确定的举个列子:就是ArrayList在添加数据时步骤1:存放元素的苒锃巳伢值,增加size的大小数组size=0,线程A将a保存到数组,线程B将b保存到数组里面,那么应该是数组里面有a,b2个值了,但是可能是这样的了,就是A线程执行,存放a到size=0,但是线程A暂停了,执行线程B,存放b,由于size=0,所以b就放在了size=0的位置上,执行线程B,执行线程A,数据只有b,少了a,所以线程的执行结果是不确定的,所以ArrayList属于线程不安全的。

7、string、stringbuilder、stringbuffer区别(以前只用过String,stringBuffer了,结果面试的时候,被问了stringbuider)

8、String是常量不可改变,stringbuider stringbuf酆璁冻嘌fer是变量可以改变,Stringbu足毂忍珩ider速度快于stringbuffer,但是stringbuider是非线程安全的,stringbuffer是线程安全的,在操作大量数据时单线程的时候使用stringbuider,在多线程的时候使用stringbuffer

9、hashtable和hashmap的区别(只用过hsahmap,hashtable没用过啊)

10、hashmap允许有一个键是null值,一个或者多个键的值可以是null,hashtable键和值都不可以有null值,而且hashtable是同步的,而hashmap不支持同步,所以在多线程的时候使用hashmap要手动设置同步

11、String a= “abc” String b = “abc” String c = new String(“abc”) String d = “ab” + “c” .他们之间用 == 比较的结果这个我也搞不懂了,马马虎虎吧

2016年Java面试总结1
  • java面试总结
  • java最新面试题总结
  • Java面试要点精品总结
  • java面试总结(南京)
  • Java学习总结之01 概述
  • 热门搜索
    中秋节的手抄报简单又漂亮 儿童手抄报大全 小学生守则手抄报 小学手抄报大全 安全手抄报版面设计图 关于艺术的手抄报 我爱足球手抄报 喜迎国庆手抄报 防火手抄报图片大全 饮食与健康手抄报