现在的程序员,这么简单的问题都能答错吗?

2021-05-06 19:39:26 +08:00
 polyang
今天作为面试官面了个应聘初级 Java 的程序员,该程序员工作 3 年,因为是初级,先问了几个简单的问题:

1 、final 修饰的变量到底是指引用不能变还是引用的对象内容不能变?
答曰:引用的对象内容不能变

2 、有两个 Integer 类型的变量,他们的值都是 100,如果用==比较,结果是什么?
答曰:false,他说==比较的是内存地址

3 、关于 MySQL 的索引问题,like 会不会走索引?
答曰:不会,而且还特别补充了一句,只要用到了 like 都不会走索引。

4 、创建线程有哪几种方式?
答曰:只知道线程池的方式,其他方式不清楚(然后我顺着这个问了他线程池,结果他说工作中没有用到过线程池,对线程池不是特别了解)。

但其他的理论性东西又答的还可以,估计是背的面试题。
11330 次点击
所在节点    程序员
99 条回复
IvanLi127
2021-05-07 16:15:10 +08:00
这题不难,我不写 java 的人,靠大学学的 java 都能答得上来,三年 java 这 5 题错 2 题就已经不靠谱了。虽然楼主这题好像不是很严谨,不过如果有看过面试题的话也应该能反应得出来才对。
zxCoder
2021-05-07 16:34:17 +08:00
第二个问题没啥意义

(反正我会,我看过
HolmLoh
2021-05-07 16:40:09 +08:00
2 、4 如果不是写了 3 年 java 的,答不出来其实情有可原,而且 2 他是答对了
1 答不出来实在不应该,但也有会错题意的可能
buzailianxi
2021-05-07 17:20:37 +08:00
凑合干吧,熟练工,年轻就行,真都会你给多少钱呢
lachesis
2021-05-07 17:28:44 +08:00
这不是难不难的问题,而是提问方式有明显的挖坑倾向,面试经验少的人碰到不自信的内容就容易被带偏。例如第 2 题,还不如直接展开聊聊 equals 和==的区别,问清楚比较值时应该用哪个
johnsona
2021-05-07 20:32:58 +08:00
俺知道 like 可以前缀索引
其他不知道了
面试官我可以去你们公司给你端茶倒水吗
其他三个不知道 java 都不会写
young1lin
2021-05-07 21:08:52 +08:00
不用看了,这是培训机构出来的。三年,只要不偷懒,这些都不算问题。问的都是 Spring 源码的问题,MQ 和 Redis 的实际使用场景问题。只要你能说一个小时任意一 MQ,不重复,都可以的。
enoc
2021-05-07 22:15:07 +08:00
我一个大二在校生都知道答案。。。
Felldeadbird
2021-05-07 22:57:30 +08:00
如果用过 mysql,然后回答 like 不走索引。应该是背题的人了。
JianH
2021-05-07 23:27:32 +08:00
第二题回答思路没问题吧,没看过 Integer 源码确实不知道啊,这属于偏题了吧
jiangzhizhou
2021-05-07 23:30:47 +08:00
面试官问我这种题的时候我一般都直接回复,不好意思贵司不适合我。
SpiderXiantang
2021-05-08 00:01:36 +08:00
格局小了
shyangs
2021-05-08 00:51:21 +08:00
学到了 IntegerCache 想在代码埋雷坑公司就这样写, 离职后业务扩充超过 127 就爆炸了 ::doge::
fuermosi777
2021-05-08 01:17:11 +08:00
工作六年,一个都答不上来
xupefei
2021-05-08 01:29:18 +08:00
有一道用 hashmap 解的 leetcode 题就涉及到了第二个问题里的坑
cassyfar
2021-05-08 02:55:14 +08:00
一般问我这些钻牛角尖没啥水平的问题,我扭头就走了。
snw
2021-05-08 06:31:05 +08:00
@zhoudaiyu
写 C#的就不会知道第 2 题这种坑。

我觉得用性能优化导致语义不一致,并不是良好的语言设计。[-128,127]这种 magic number 当年或许是奇技淫巧,现在就变成了包袱。

@fffang
然而 js 没有整型( ES2019 以前) :doge:
iceteacover
2021-05-08 11:37:05 +08:00
@dingwen07

public static void main(String[] args) {
Integer x = new Integer(100);
Integer y = new Integer(100);
System.out.println(x == y);

x = 100;
y = 100;
System.out.println(x == y);
}

第一个 false,第二个 true 。 大概 Java 优化的时候只能通过很简单的情况做处理,深入下去可能需要 编译优化的知识。

反正 对象 用 == 比较在 Java 领域看不是什么好事情,很奇怪为什么出题要这么出。。。
yjxjn
2021-05-08 12:02:50 +08:00
@Amber2011 三年应该是高级了。SSE 这种水平了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/775262

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX