k=k++到底有没有执行自增操作
--楼兰带你聊最纯粹的Java
人生三大境界,见山是山,见山不是山,见山还是山!
学了好多年Java,你知道你写的java代码到底是什么样子的吗?k=k++,这样一个简单的代码,就足够考验考验Java程序员的斤两。
类似这样的非人类代码的面试题,其实不在少数。这一类面试题,想要考验的,从来不仅仅是程序员的代码理解能力,而是对语言底层逻辑的熟悉程度。
如果你是一个刚入门的Java新手,那么,对于这一类问题,只要能够推断出执行的结果就行了。但是,如果你是一个已经工作两三年的程序员,那么仅仅只是会结果,那就不够了。
题外话:这个问题,我之前录了一个视频,结果竟然还有人把我这个视频和谭浩强老师的C语言摆到一桌了。对此,元芳,你怎么看?
话说我还真的是第一次听说谭浩强老师,真有点孤陋寡闻了。
一、入门级逻辑理解
简单从问题本身来看,这简直是一个侮辱智商的题目。都做了++操作了,肯定执行了自增啊。只不过++放在变量k的后面,那表示是先返回k的值,再进行自增。而有了等号的赋值操作后,k的值就直接返回了,所以k实际上是进行了自增操作,只不过逻辑上没有体现出来。如果换成k=++k,就能体现出自增