`
wangym
  • 浏览: 124569 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java陷阱解惑

    博客分类:
  • Java
 
阅读更多

1、自增陷阱

陷阱:

下述程序的运行结果是多少?

	@Test
	public void test自增陷阱() {

		int expected = 10;

		int count = 0;
		for (int i = 0; i < expected; i++) {
			count = count++;
		}
		System.out.println(count);

		Assert.assertTrue(expected == count);
	}

结果是count=0不是预期的10。

 

解惑:

count++的返回值是count自增前的值。Java对自增的处理过程是:先把count的值拷贝到临时变量区,然后对count变量+1,最后返回临时变量区的值。 

// count = count++ 可以用下述代码来理解执行过程:
int temp = count;
count = count + 1;
return temp;

  

补充:

不过这个问题在不同的语言环境下会有不同的结果。比如在C++中,count=count++与count++是等效的,而在PHP中则保持着与Java相同的处理方式。

分享到:
评论

相关推荐

    Java面试解惑宝典(高清PDF版)

    最后,《Java解惑(中文版)》可能是针对Java编程中常见的疑问和陷阱进行的详细解释,旨在帮助开发者避免常见的编程错误,提升代码质量。这本书可能涵盖了一些容易误解的概念,如字符串的不可变性、equals()与...

    java解惑 for all javaer

    讲述如何在程序中避免程序缺陷和程序陷阱的,解惑的过程中,介绍了一些Java编程语言中许多不易被掌握的知识点,其阅读价值非常高,适合具有Java知识的学习者和有编程经验的Java程序员阅读。

    java解惑 PDF版

    文档《java解惑 PDF版》中列举了95个这样的谜题,每个谜题都旨在帮助开发者理解并纠正一些常见的错误理解。以下是根据提供的部分内容解析的几个相关知识点。 ### 表达式谜题与取余操作符(%)的行为 在Java中,...

    《Java Pazzlers》Java解惑.pdf 书签齐全

    该书特写了95个有关Java或其类库的陷阱和缺陷的谜题,其中大多数谜题都采用了短程序的方式,这些程序的行为与其看似的大相径庭。在每个谜题之后都给出了详细的解惑方案,这些解惑方案超越了对程序行为的简单解释,向...

    java解惑(+Java 解惑你知多少)

    本书特写了95个有关Java或其类库的陷阱和缺陷的谜题,其中大多数谜题都采用了短程序的方式,这些程序的行为与其看似的大相径庭。在每个谜题之后都给出了详细的解惑方案,这些解惑方案超越了对程序行为的简单解释,向...

    Javapuzzler+JAVA解惑 中英双语 完整源代码

    《Javapuzzler+JAVA解惑 中英双语 完整源代码》是一份集学习与实践于一体的Java编程资源,包含《Java Puzzlers》和《JAVA解惑》两部分,以及对应的完整源代码。这份资料对于深入理解Java语言的特性和陷阱,提升编程...

    java谜题解惑 中文chm

    在每个谜题之后都有详细的解惑方案,这些方案在给出那些实际行为与表面上迥异的程序行为的简单解释的同时,更向读者展示了如何一劳永逸地避免底层的陷阱与缺陷。 本书以轻松诙谐的语言,寓教于乐的方式,由浅入深、...

    java解惑(源代码+教程)

    Java编程语言是软件开发领域的重要组成部分,尤其在企业级应用中广泛应用。...无论你是初学者还是经验丰富的Java开发者,《Java解惑》都是一个宝贵的参考资料,可以帮助你在编程旅程中避免常见陷阱,提高代码质量。

    Java解惑.rar

    Java解惑,是一本以大量java实例,讲述如何在程序中避免程序缺陷和程序陷阱的,解惑的过程中,介绍了一些Java编程语言中许多不易被掌握的知识点,其阅读价值非常高,适合具有Java知识的学习者和有编程经验的Java...

    [JAVA解惑](美)布洛赫.扫描版

    Java解惑,是一本以大量java实例,讲述如何在程序中避免程序缺陷和程序陷阱的,解惑的过程中,介绍了一些Java编程语言中许多不易被掌握的知识点,其阅读价值非常高,适合具有Java知识的学习者和有编程经验的Java...

    java爱好者必备JAVA解惑(pdf格式)

    其次,书中的"解惑"部分可能会深入到一些常见的困惑和陷阱,例如: 1. **内存管理**:解释Java的垃圾回收机制,如何避免内存泄漏。 2. **异常处理最佳实践**:如何有效地捕获和处理异常,避免程序异常中断。 3. **...

    Java解惑(中文+书签).pdf

    Java是一种广泛使用的编程语言,它有许多特性需要程序员深入理解才能有效避免编程中的一些陷阱和冷僻问题。从给定的文件内容中,我们可以提炼出以下几个知识点: 1. 取余操作符(%)的特性与陷阱 在Java中,取余...

    Java解惑中文

    不过,可以按照给定的要求,基于标题“Java解惑中文”和描述“本书特写了95个有关Java或其类库的陷阱和缺陷的谜题,看完后会对Java加深理解”,来构建一些知识点。 标题《Java解惑中文》很可能是某本专注于解决Java...

    java解惑pdf + 源代码

    《Java解惑》是一本专为Java程序员设计的书籍,旨在揭示编程中的陷阱、误区和角落情况,帮助读者深入理解Java语言的微妙之处。这本书由Addison-Wesley Professional出版,作者通过一系列精心设计的“Java谜题”来...

    JAVA PUZZLERS(JAVA 解惑)中英文

    《JAVA PUZZLERS》是一本深受欢迎的Java编程书籍,旨在揭示编程语言中的微妙陷阱和易犯错误,帮助开发者提升编程技能和理解。这本书以其独特的“谜题”形式,通过一系列精心设计的问题,引导读者探索Java语言的深奥...

    Java解惑 中英文

    《Java解惑 中英文》是Java编程领域的一本...通过阅读《Java解惑 中英文》,读者不仅可以深化对Java语言的理解,还能提升编程技巧,避免在实际开发中踩到陷阱。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。

    Java解惑PPT8

    Java编程语言中有许多微妙而有趣的细节,这些细节可能会在开发过程中造成困扰,这就是"Java解惑"系列试图解决的问题。本文将深入探讨PPT8中提及的三个Java谜题:Puzzle 76 乒乓、Puzzle 77 搞乱锁的妖怪和Puzzle 78 ...

Global site tag (gtag.js) - Google Analytics