登陆

极彩论坛2018-4年码农吃闭门羹,面试腾讯、阿里通通凉,这些题真实太难答了

admin 2019-11-01 200人围观 ,发现0个评论

自己双非普本结业,在职场上也摸爬滚打了4年的时刻了,能够算得上是一个有4年经历的老码农了,之前一向都是在某小厂作业,本年预备换岗,个人的方针是BAT,但首要仍是想去阿里或腾讯,自己之前的项目经历感觉还不错,所以比较有决心,但万万没想到自己腾讯和阿里的面试全凉了,一个offer都没拿到,后来回来左思右想,或许仍是自己的预备不充分,但也确实是这些大厂太难进,这些面试题实在是欠好答(附上我的思路),所以共享给咱们,看有多少宫阙泪人知道?

问题一:带有* ( )的括号匹配问题,其间*能够表明”(”或”)”或”空白”,问给一个由“*()”组成的字符串,是否能够括号匹配。

思路:

经典的括号匹配需求一个栈就能够匹配,这种带*的括号匹配能够考虑用两个栈来处理,一个栈存括号,另一个栈存*。

问题二:面试进程中讲到了CAS中的ABA问题,面试官问呈现ABA的场景和比如是什么?

思路:

ABA问题的界说网上都有,面试也预备过。可是ABA的场景一时刻没想起来,上网查阅找到一个适宜的比如:

小明在提款机,提取了50元,由于提款机问题,有两个线程,一起把余额从100变为50

线程1(提款机):获取当时值100,希望更新为50,

线程2(提款机):获取当时值100,希望更新为50,

线程1成功履行,线程2某种原因block了,这时,或人给小明汇款50

线程3(默许):获取当时值50,希望更新为100,

这时分线程3成功履行,余额变为100,

线程2从Block中康复,获取到的也是100,compare之后,持续更新余额为50!!!

此刻能够看到,实践余额应该为100(100-50+50),可是实践上变为了50(100-50+50-50)这便是ABA问题带来的成功提交。

问题三:有两个数据集A和B,每个数据集都按递加顺序排列,运用迭代器别离求两个数据集的交,差。(考的是数据库的left join和join的算法简略完成)

思路:

迭代器有hasNext()和Next()办法,这个题倒不是极彩论坛2018-4年码农吃闭门羹,面试腾讯、阿里通通凉,这些题真实太难答了很杂乱。

问题四:写一个算法,判别a+b>极彩论坛2018-4年码农吃闭门羹,面试腾讯、阿里通通凉,这些题真实太难答了c,其间a,b,c都是带符号的long类型。

思路:

这个问题,考虑一下标题很快判别出来这题考的是判别溢出。

思路是,考虑哪些场景会溢出,a,b一起大于或许一起小于0才会溢出,一起a,b,c同符号的时分才用判别是否会溢出。

咱们拿溢出阈值(Long.MAX_VALUE)减去a然后和b比较,假如b大,那么a+b会溢出,两个负数同理。

问题五:一个java的事务代码,底层是MySQL数据库,某一天忽然发现履行变得很慢,请问怎么排查。

思路

拜见:腾讯面试题:一条SQL句子履行得很慢的原因有哪些?

https://www.cnblogs.com/technologykai/articles/10794557.html

一起还要考虑java事务层的代码问题,首先要定位哪里出了问题。

问题六:100亿个手机号的数据集,问有多少个不重复的手机号。

思路:

考点:手机号加载到内存用什么数据结构,假如用int数组存的话,会占用太多空间,String和long听起来都是很不错的挑选。

还能够计算下100亿手机号在内存中的巨细极彩论坛2018-4年码农吃闭门羹,面试腾讯、阿里通通凉,这些题真实太难答了。我觉得能够用bitmap存这些手机号,但面试官不太满足,最终说用hash区分的方法并行计算。

问题七:写一个LRUcache

思路:

这个题很好写...在leetcode上也操练过,可是,我忘了多线程同步了...没有加sychnorized,被面试官指出来,自己也意识到这是个很严重的过错。

在leetcode上的标题也没有加锁,能够经过,可是实践场景中LRUcache必定是多线程拜访的。

总结

面试一定要要自傲,但不能盲目自傲,自傲是树立在有足够预备的前提下的,所以有极彩论坛2018-4年码农吃闭门羹,面试腾讯、阿里通通凉,这些题真实太难答了换岗计划的,或正在面试的,一定要温习一些常识,预备好一些标题的答案,不要以自己的项目经历为傲,许多大厂也很垂青面试者对根底常识点的把握程度的。

最新BAT面试必问题及面试答案

涵盖了百度、阿里、腾讯、华为、网易、京东、字节跳动、谷歌等一线大厂的Java面试题和答案

感兴趣的朋友转发+私信【学习】即可

请关注微信公众号
微信二维码
不容错过
Powered By Z-BlogPHP