作为一名程序员,想要有高深的技术,那么良好的逻辑思维能力是不可或缺的!很多企业在面试程序员的时候,都会出一些面试题来测试面试者,看看他们技术和逻辑能力能不能达到入职的标准,其实这些题不算太难,只要有一些相关的经验,也是可以答到关键点上!
可以看到,这是一段Java代码,题目给出提示:这段代码运行的时候会出现问题!然后要求面试者指出问题在哪里!而这位面试的程序员并不知道,所以求助于各位网友!
有网友解释,看似是原子操作,其实不是原子操作,是复合操作!如果真要像题目中加1的话,那么建议用原子整数,不要用integer,因为两个原子操作,复合之后就不是原子操作了!
还有网友的经验比较丰富,想到了很多问题:这段代码有线程安全问题,因为当value取出之后,有可能已经有线程把对应的key put到map中去了,会影响代码执行的结果!
其实工作中还有很多类似于这样的“细节”,稍微不注意就会出错,随之而来的就是一大串的Bug,然后还要去修改,无形之中加大自己的工作任务量,甚至重新返工也不一定。所以我们在编程的时候,一定要注意这些细节,这样才能够让我们的代码接近于完美的程度!