前言 都说大城市现在不好找工作,可小城市却也不好招人。 我们公司招了挺久都没招到,主管感到有些心累。 我提了点建议,是不是面试问的太深了,在这种小城市,能干活就行。 他说自己问的
都说大城市现在不好找工作,可小城市却也不好招人。
我们公司招了挺久都没招到,主管感到有些心累。
我提了点建议,是不是面试问的太深了,在这种小城市,能干活就行。
他说自己问的面试题都很浅显,如果答不上来说明基础太弱了。
我问了下面试题,然后我沉默了。
起因就是我嘴欠问了下这个面试题:
i++ 和 ++i 有什么区别,谁的效率更高?并解释出原因。
没错,我竟然答不上来,贼尴尬,心想早知不问了。
主管有些意外,又问了几个别的同事,没一个答上来的。
他脸黑了,周四研发部例会的时候,干脆所有人问了一遍。
好吧,都是工作至少5年以上的Java程序员,没一个人答上来,五花八门的回答,全错。
然后大家就一致决定(主管决定),每周展开一次学习会,要补基础,保持团队学习热情,提升团队技术能力。
本来是为了招人,结果自己人被团灭。
我挤出一个晚上不带娃的时间到处找资料,研究了下这个面试题,在此分享给大家,希望能有帮助。
首先,先看两个小例子:
到这里先停一下,大家自己思考半分钟,觉得打印结果是什么。
然后,我们来看看结果。
没错,第一个打印是 6 和 5,第二个打印是 6 和 6。
这就是他们的区别,解释下原因:
i++:这是后缀递增运算符,先将当前值赋给变量,然后再递增。
++i:这是前缀递增运算符,先递增变量的值,然后再赋给变量。
这个问题我其实蒙对了,我说是一样高的,但是主管问我原因,我没答上来。
然后我就去找了字节码指令的用法,将上面的案例以及两者效率是否一样进行了验证。
指令用法很简单,定位到class文件所在目录,使用
javap -verbose
命令执行即可。
我们将前面那个案例,通过字节码指令输出到txt文件中。
在文档编辑器中找到main方法,对这两个字节码内容进行比对,发现确实有如下不同。
可以看到红框部分,刚好佐证了上面解释的区别,i++会先使用当前值,然后再递增;而++i会在递增之后立即使用新值,通过字节码看起来还是挺明显的。
我们依然写个for循环的小例子来做验证。
将这两个类编译后的class通过字节码指令输出到txt中
接下来我们就可以比对下结果了
可以看到,main方法开始,从上到下的字节码是完全一样的,没任何不同。
所以,i++ 和 ++i 的效率本质是一样高的。
其实,我相信很多人都见过这个面试题,甚至在笔试题当中也遇到过。
但工作了这么多年,即使是我,也只是剩下一点印象,也没有真正去研究一下这个简单的问题。
希望这篇文章,给大家有所帮助,也能启发大家如何去研究此类问题。
好了,今天的小知识你学会了吗?
如果喜欢,请点赞+关注↓↓↓,持续分享干货哦!
来源地址:https://blog.csdn.net/xiangyangsanren/article/details/133212481
--结束END--
本文标题: 一个关于 i++ 和 ++i 的面试题打趴了所有人
本文链接: https://www.lsjlt.com/news/418507.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-01
2024-04-03
2024-04-03
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
一口价域名售卖能注册吗?域名是网站的标识,简短且易于记忆,为在线用户提供了访问我们网站的简单路径。一口价是在域名交易中一种常见的模式,而这种通常是针对已经被注册的域名转售给其他人的一种方式。
一口价域名买卖的过程通常包括以下几个步骤:
1.寻找:买家需要在域名售卖平台上找到心仪的一口价域名。平台通常会为每个可售的域名提供详细的描述,包括价格、年龄、流
443px" 443px) https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294.jpg https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294-768x413.jpg 域名售卖 域名一口价售卖 游戏音频 赋值/切片 框架优势 评估指南 项目规模
0