刚刚结束面试,面试分数39.8,说实话,有点小遗憾,最后两个编程题,有一个出了点小问题,集合转数组,没转成功,我当时都不知道什么情况,我的个擦擦,面试已完就解决了,真是紧张下的失误啊,所以分不高,有点小遗憾,唉。。。不然绝对能上40+。首先理论部分,没问几个题,为什么?等会告诉你。理论问的有面向对象与面向过程的区别,我敢说我面试之前从没想过这个问题吗?我不只看了java视频吗?结果让我凭着大学c语言那仅有的一点印象硬是给说出了一个所以然来,意料之外的答完了。。。紧接着问面向对象多态的特点,事先记得完美答完。又问了集合框架,又问了反射,暴力反射之类的,还问了一个多线程同步,安全等问题。就问了这么多,总共5个问题,多吗?不多,知道为什么吗?因为我的诀窍在于我先把老师讲的知识点说一遍,然后在把我在网上查的知识点又说了一遍。有些人会问网上查什么,就查那些你视频听了后是记下来的而不是理解下来的问题。有两个作用,第一,体现你探索知识这种思维,第二,一个问题可以说7,8分钟,你说老师能问几个,问了我不记得的我还真不会,其实。这种方式岂不是很nice!举个例子:hashset一般要复写hasecode()和equalse()方法,为什么?老师视频讲过,你照着答就行了。第二,你该说说你查的资料了,为什么用hashcode()方法和equalse()方法去保证对象的唯一性。我查到的是:在java核心思想中是这么讲的:hashset中的每一个对象都有一个散列码,又叫哈希值,在哈希表中,其机制是把一个哈希表分成若干个桶(也就是列表项),用每一个哈希值去除以所有的桶数,余数即为对象应该所在的桶,假如桶中存在对象,此时则调用equalse()方法,假如equlse()方法值不同,则存入,否则不存入。再比较哈希表与数组相比有什么优点,现在假如有可以存储10000个对象,如果不用hashcode(),直接比较10000次,你觉得怎么样?现在用hasecode()方法来算,10000个对象分成1000个桶,meigetong每个桶中存储10个对象,20除以1000余20,得出应该存在20号桶,假如20号桶有9个元素,一个空的位置,计算机是不是只要计算一次在比较9次就行了,相比比较10000次哪个方便?这个一说的话,你算下这个小问题要讲多少分钟,你这么好学老难道不让你讲,可能她觉得听你讲完“哦,好像是这么回事的感觉”,你说这给人一种什么感觉。总的来说,我最后笔试题做出来一个,一个有一个小的问题,不能算做出来。有点小遗憾,不过我会告诉你我只看了24天多,这24天敲代码最多24小时吗?没办法,得赶时间,错过了48,,49期,没时间敲代码,幸好还有一个多月,我可以复习知识点,多敲代码,每天敲几个小时,争取做到学到的知识里敲代码能迅速而有见解。不知道能分到名额不,等待分配结果吧。
|