多语言展示
当前在线:1237今日阅读:84今日分享:32

2016年Java面试总结1

最近在面试了,只有一句话要说,就是对于我这种刚毕业半年,在校打游戏看小说为主的人,面试难啊,面试机会大大的有,上周7天,面试了6家了,一家都不要了,网上有个2015年Java开发岗位面试题归类,就一这个为模板写的了,再加上我在面试中被面试的了问题了,所以吐槽一下了
方法/步骤
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 stringbuffer是变量可以改变,Stringbuider速度快于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” .他们之间用 == 比较的结果这个我也搞不懂了,马马虎虎吧

推荐信息