为什么现在的 Java 面试越来越八股文,这样真的能招到优秀的开发么,而不是只会背书的
source link: https://www.v2ex.com/t/780128
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
我模拟参加了一个 java 面试,我感觉问的问题都好八股
随便举几道题
- hashmap 扩容,以及为什么 0.75 ?
- java 动态代理的两种方式?区别?
- 类加载机制,双亲委派,破坏双亲委派
以我浅薄的知识点来说,第一题如果说考察一个人看没看过源码,应该可以开门见山的问,就算看过源码,也不一定所有细节都记得住。再说这傻逼的 0.75 ,人家一大坨数学证明过程也没在源码里面写啊,鬼知道为啥 0.75 。不背书谁能答出来
再看第二题 背书的答案应该不涉及到字节码增强,理论上这个要答好,肯定是要好好去看字节码增强的底层实现原理。但是标准答案就是什么 JDK 代理 cglib 。区别就是一个是接口动态代理,还有什么 final 修饰的不能使用,巴拉巴拉一堆。但是我感觉没问到点子上啊
第三题我就不懂了,但是我感觉这个也是背书的题
以上三题,我没背过书,基本答不上来。然后面试官说你基础太差 呵呵哈哈哈
ccde8259 20 小时 27 分钟前 via iPhone
第二问能聊聊 CGLIB 为什么这么快?
我遇到一个 ClassCastException,提示我 Cannot cast com.example.A cannot cast to com.example.A,怎么办?
0576coder 20 小时 20 分钟前 3
就是我感觉很多 java 开发者,都被困在 java 里面。比如多线程的答案背诵的贼溜,但是连个 pthread 都不知道是什么。
我自己使用的时候,我感觉 java 也有很多的局限性,比如你用了一个三方的包,那个老哥写的有 bug,异常没 catch 也没 throw,你使用的时候遇到了这个特殊情况,百分百会报错,你也没法在外层 catch,只能等别人修复 bug 。
还有比如 Thread 的 stop 方法已经废弃了,只能抛出 interrupt 异常,然后 catch 住再 reture 。其实这些都是我使用下来感觉不爽的点。
我其实想说的是,为什么现在面试 java 的时候,太局限在 java 自己本身了。很少从整体的角度来考察面试者,这是我感觉最不合理的地方
ccde8259 20 小时 10 分钟前 via iPhone
100 个候选人有 100 种 N 芒星,不可能每个人都在半个小时内聊得出来。所以只能把这些东西降维到一个相对统一而通用的尺度,去给候选人划出一个相对简单的六芒星。
janus77 19 小时 56 分钟前 1
第一题,你不一定要证明 0.75 ,只需要说大于 0.75 会怎样,小于会怎样。那么以后你写代码的时候,万一需要你自己传入这个参数,甚至需要你自己实现 hashmap 的时候,你应该知道这个参数传多少才适合你当时的场景。
第二题,实际写过代理这块的肯定知道,都不需要背的。你用过哪几种就哪几种,能全答出来当然最好,答不出全说下你用过的。就员工能力来说,用过的>没用过的,不难理解吧?
第三题,遇到 bug 的时候排查,需要知道这个类怎么加载的,加载时是否出现问题。
以上都是实际项目经验会遇到的。
Takamine 19 小时 51 分钟前 via Android 1
只问 Hashmap 扩容,那顺带的你自己得知道它线程安全不安全吧。要避免大数据量下的扩容内存占用,还有简单初始容量设置当然也可以用比如 Guava 的 Map 。
问动态代理,那如何用 InvocationHandler 去做点事情得知道吧,对应的 Spring 里的代理也得了解吧。
问双亲委派,那用了 Dubbo 的自己也得去看看 SPI 怎么实现的吧。
FrankD 19 小时 40 分钟前
面试官看你这个回答不上来,至少会认为你没好好准备,也就不想问了。
面试要想给人留下不差的印象,自己也要主动说出优点的。
tachikomachann 19 小时 38 分钟前 via Android
关于 0.75 你可以不知道官方为什么这样做,但是可以说说以你的理解,猜猜人家为什么要这样做。这个就体现了你面对陌生问题时解决问题的能力。
面试问题不一定要答标准答案的。
我一直认为面试过程就像相亲,想在一两个小时内让人家对你感兴趣,除非很有眼缘,不然最终都会落到谈论一些俗套的话题上面的,这个才是常态。如果你想快速达到目的(得到一份工作 or 结婚),就要迎合这种需求。如果你追求更高层次的东西(让你工作得很舒服的团队 or 美好的爱情),就需要不断试错,找到最合适自己的那个。
Akiya 19 小时 5 分钟前 via iPhone
总的来说面试就是看看两边是不是对味嘛,适合才是最重要的
asanelder 19 小时 4 分钟前
以第一题举例
1. 平时工作中用过 HashMap 么? (用过), 为什么要使用 HashMap (为了查式更快, 另外也是需要 kv 这种对应关系), 为什么 HashMap 就快呢( 讲讲 HashMap 是如何进行查找的, 比如分桶啦, 每一个桶里又具体是什么啦 )
到了分桶这一步呢? 你就可以主动去说一下, 这个分桶的个数是, 其实是有讲究的, 你想啊, 分太多, 会怎么样? 分太少, 又会怎么样? 两个极端都不可取, 总得中庸一下下, 那么, 就有一个默认的分桶数, 随着往里面放的东西越来越多, 桶的数量是不是也要变化呢? 当然呢? 否则每个桶里越来越多, 不就查起来慢了么? 那么, 在什么条件下要改变桶的数据呢? 还有每个桶里又是什么呢?
这样问题, 可以不用等着面试官问, 面试者自己循序渐进, 自问自答, 具体的数值自己记不清也很正常(比如默认桶的数量, 扩容因子等等), 但你这样回答, 面试官一看就知道你小子是理解这东西怎么回事的, 出了问题, 也知道如何去找.
总结一下
就是你和面试官, 不要是那么, 问答的形式, 而是讨论, 一步步的深入, 具体可以不表. 这也体现了以后你在工作中能不能和人进行有效的技术沟通啊! 如果面试官感觉你能准确把握问题, 思路由浅入深, 步步清晰. 对你的印象应该也不差吧.
当然, 面试官也是普通人, 有的面试官本身不合格.
yeqizhang 18 小时 40 分钟前 via Android
0576coder 18 小时 33 分钟前
比如你自己写业务,自己会去主动扩 hashmap 吗? 而且也不会死命的往一个 map 里狂赛东西把
代理的话 如果我是面试官,还不如直接问代理模式这种设计模式,考察动态代理的实现其实意义没有很大
第三个问题是属于我不了解的。
我是感觉面试题太死板了,不知道为什么这么死板。
xloger 17 小时 34 分钟前 10
如果他打个哈哈过去,或者瞎扯一些解释,说明他不过如此,自己也是个只会背面试题的逼。
如果他当场查证,或者自信地跟你讲一下泊松分布的原理,论证 0.75 是个较为合适的值,不应该随便改。那的确是人家牛,态度也没问题,我们也可以服气。
dbsquirrel 17 小时 33 分钟前 via iPhone
借这里问下,那非科班学生在国内找程序员工作难度有多高?本科 985,学过 CS61B,leetcode 刷了 200 道,spring boot 学过看过写过一点。
xwhxbg 16 小时 48 分钟前
Leviathann 15 小时 49 分钟前
事实上 sedgewick 的算法书里总大小 N = αM (链表数量),这个α举得例子都是 10,20 之类的
kawaiidora 14 小时 24 分钟前
“我是 15 年开始工作,肉眼看着环境一点点变烂。总之大概就是……大多数公司(包括大公司,因为质效太垃圾导致人员流动频率高到离谱)没有人员培养机制,完 全 没 有"可复制的"鉴别面试者能力的办法,进而人员准入标准完全是看小领导心情,哪里都是一言堂,所以大头兵们只好考八股文了。”
八股便于标准化啊,就好比看毕业院校比看 GPA 靠谱一样。
violence123456 12 小时 37 分钟前 via iPhone
tangzekk 12 小时 6 分钟前
你这压根源码没看,光 csdn+<java 面试指南>
你面试的时候把源码注释英文一说,面试官直接叫你爸爸
duhb 11 小时 38 分钟前 via iPhone
ppcoin 11 小时 32 分钟前 1
他跟他的子侄辈们也在说,不要因为科举荒废了修养圣贤之道,但是呢,你不好好复习功课,你把心思放在看闲书上头,你考不上怎么办呢?于是王阳明给自己找了一个理由,他这个理由也很有意思,他说你不要去管科举这个八股是有用还是没有用,他说这是另一件事情。他说比如我们要晋见皇上,等待皇上召用我们,你是不是应该有点诚意呢,你是不是应该先给皇上行礼,或者再带点家乡的土特产,就是你要有诚意。
许子东:高考就是一个诚意。
窦文涛:对,他说你把这个理解为你要为国家做贡献了,接受国家选择成为一个有用之才,你拿出点诚意来。就是你连参加一个高考就说死记硬背吧,你连点死记硬背都没有,我怎么能相信你是诚心诚意地要成为栋梁之才呢。你看王阳明这个说法,我发现挺有意思。
lecher 10 小时 51 分钟前
面试官的目的并不是发掘出候选人的所有潜能,而是在有效时间内筛选出能胜任岗位需求且有意愿入职的候选人。
筛选效果的评判标准是通过率和入职合格率在可接受范围内。
所以筛选的手段只是尽可能划出一个通用的及格线,至于入职之后用什么技能,和面试题目根本没有太大的关系。
候选人基数大,岗位少,筛选难度高。
候选人基数小,岗位多,筛选难度低。
赶上招聘岗位对应的面试官比例不足,还会开拓出异步方案,先做一轮笔试题,笔试题的难度也类似。
FreeEx 1 小时 34 分钟前 2
为什么不是+17 或者+19 呢?作为一个专业的电竞选手竟然只知道 [法师之靴] 是 +18 法术穿透,却说不出为什么?我觉得你的基础太差。
yisheyuanzhang 4 分钟前
如果是零碎的知识点跳着问,单向问没有交流,多半面试官也不懂,网上搜来的题
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK