黑马程序员技术交流社区

标题: 面试结束,告诉你别人所不知道的诀窍! [打印本页]

作者: 天蝎降降温    时间: 2014-10-25 12:36
标题: 面试结束,告诉你别人所不知道的诀窍!
    刚刚结束面试,面试分数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期,没时间敲代码,幸好还有一个多月,我可以复习知识点,多敲代码,每天敲几个小时,争取做到学到的知识里敲代码能迅速而有见解。不知道能分到名额不,等待分配结果吧。

作者: jeromechen    时间: 2014-10-25 14:42
楼主思维很好,时间有点赶,不过很厉害了那么短时间,你这个方法得学学,不仅是面试还是可以发散的提升一些不知道的知识,加油
作者: noiary    时间: 2014-10-25 15:30
吊炸天~
作者: 空洞的望着窗外    时间: 2014-10-25 20:44
恩                                                                                
作者: Mr.Ni    时间: 2014-10-25 20:49
吊炸天~我得学学
作者: 天蝎降降温    时间: 2014-10-25 21:06
jeromechen 发表于 2014-10-25 14:42
楼主思维很好,时间有点赶,不过很厉害了那么短时间,你这个方法得学学,不仅是面试还是可以发散的提升一些 ...

谢谢啊,其实只是每个人选择的方式而已,别具一格而又不违背原则的情况下都可以去尝试,面试结果出来了,已经录取分配到名额了,共同进步,一起努力。
作者: 天蝎降降温    时间: 2014-10-25 21:08
noiary 发表于 2014-10-25 15:30
吊炸天~

一起努力
作者: 天蝎降降温    时间: 2014-10-25 21:09
空洞的望着窗外 发表于 2014-10-25 20:44

嗯是个什么意思啊?
作者: 天蝎降降温    时间: 2014-10-25 21:10
Mr.Ni 发表于 2014-10-25 20:49
吊炸天~我得学学

一起努力,有时用不一样的方式有不一样的效果
作者: 田峻菘    时间: 2014-10-25 21:18
学扎实,准备充分就不怕面试了
作者: 天蝎降降温    时间: 2014-10-25 21:20
田峻菘 发表于 2014-10-25 21:18
学扎实,准备充分就不怕面试了

是的,如果报的人少点,我还是不会这样的,学扎实才是王道,幸好还有一个多月可以继续学习知识,多练习代码。
作者: 执着的桶牛    时间: 2014-10-25 23:21
自己每天也要努力!!!这么多优秀的人在竞争呢!!!
作者: 黄小橙    时间: 2014-10-26 00:12
恭喜lz了谢谢分享
作者: 千里马    时间: 2014-10-26 00:14
楼主总结得不错,不过还真的觉得学习的方法挺好的!多谢分享
作者: 戏言丶    时间: 2014-10-26 00:53
楼主说得很在理。。。不过我能不能说一下楼主得好好学单词不?equals、hashCode这些都打错了,可是很重要啊。也可能是楼主赶有些没注意到,只是想提醒一下:lol
作者: date1130    时间: 2014-10-26 01:20
恭喜楼主。。。
作者: 周波    时间: 2014-10-26 07:50
楼主屌炸天
作者: 康师傅-蛋黄派    时间: 2014-10-26 08:02
楼主辛苦了,打这么多字
作者: 袁枭飞    时间: 2014-10-26 08:55
目测楼主经验很丰富啊
作者: 天蝎降降温    时间: 2014-10-26 16:32
戏言丶 发表于 2014-10-26 00:53
楼主说得很在理。。。不过我能不能说一下楼主得好好学单词不?equals、hashCode这些都打错了,可是很重要啊 ...

不好意思,当时面完趁着记得就写下来,赶着吃饭,没检查。我看了下,有些写对,有些写错了。还是代码练得太少啊,接来来要努力敲代码了。
作者: 天蝎降降温    时间: 2014-10-26 16:55
既然有人关注的话,我在说说我查的一些资料。在回答线程同步及多线程安全问题时,我除了说了什么是线程的同步外,什么是多线程的安全问题,两者有什么联系。我还说除了我当时的一个疑问:既然对共享数据进行操作,就拿银行转账问题来说,假如现在有3000块,先转500,再转400,当一个线程第一次转500时还没运行完,第二个线程就开始了,因为操作系统时间片轮转算法,时间片到了,此时CPU调用另一个线程执行,那么不管转多少,转几次,里面不还是剩了2100吗?因为钱是存在一个账户中,一个变量引用中。反正就是觉得是也不是那种感觉,有点似懂非懂的感觉。我查到的资料是:同样在银行转账问题中,你可以写一个程序,然后在cmd(就是老师上课的那个黑框框)中运行 javap -c -v命令,反编译查看字节码命令行,然后你会看到将数据更新会账户的操作有6个指令,也就是系统指令,以上任意一个指令出都可能导致线程中断,CPU转而执行另一个线程,而倒数第二个指令恰好是存回账户更新数据,意思就是剩了多少钱更新回账户,假如线程在这个时候被中断,那么第一个线程由于没执行完,他存回的就绝对是2500块,而对面账户可能增加了900块,那还有400的差额哪去了,这就是多线程安全与线程同步的体现,如果这样的话,银行迟早要倒闭。我说完后,老师注视了我几秒钟(我会骗你?),好像顿时觉得我说的这个别人没说过似的,而且解释清楚了问题。我心里顿时有点开心:我的个擦擦,我查的这个终于派上用场了。我此时注视了一些时间,我回答这个小问题好像用了不少时间,虚的那种心态顿时少了不少。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2