作者:
Flyingis
前段时间到书店抱了几本书回来,虽说网上有很多电子版的资料,但有时候觉得一些比较经典、自己比较喜欢的书籍还是有必要捧在手上细读的,《Java Puzzlers》就是其中之一,没事的时候就喜欢拿出来翻翻,怕自己像看新闻报纸一样看过就淡忘了,还是略作笔记让自己多份思考。
软件开发人员无论最初是从哪种语言开始学习的,首先都要掌握该语言的编程基础,例如语句、表达式、变量、数据类型、运算符、字符串等等,这些基础性的知识简单,但细节却比较繁琐,不同的编译器也会有不同的编译规则。以前寝室有同学考过的全国计算机等级考试二级C语言的试题中,语言的础规则是出题者最热衷的题形之一,曾经也觉得出题者无聊,只重理论不看实际,毕竟一些表达方法和书写格式可以通过规范来约束简化,但是作为一名程序员,一个专业的开发人员,应该了解自己所使用语言的基础规则,有时候一些程序的BUG就是存在于这些不起眼,或是自己认为应该没有问题的地方。
Java语言的表达式和C/C++比较相近,但也存在一些差异,这些差异不仅仅是那些看得见的差异,还有隐性的,例如相同的表达式,编译的规则不同。因此,我们需要理解Java表达式的一些基础性知识,加深认识。
1. 要精确表达一个浮点型变量,应该使用BigDecimal对象来构造这个实例,使用float或double在一般情况下只是提供了在一定精度范围下的一种近似,不能产生精确的结果。常用的数据库中都有与BigDecimal相对应的数据类型,有的更为详细。
2. 对于 long value = 30 * 300 * 3000 * 3000; 来说,long类型可以完整保存右边表达式计算的结果,但是右边表达式的计算是按照int类型进行的,只有当右边表达式计算完成后才会转换为long类型,在计算过程中,右边表达式的值就已经超出int范围,因此会出现计算溢出。
3. 通常我们使用最多的是十进制计算,和十进制不同的是,当十六进制或八进制常量的最高位被置位时,该常量是负值。
4. 注意数据类型之间的相互转换(特别是char类型和其他类型间的转换),以及三目运算符的第二和第三操作数类型不一致的情况处理。
5. 在C/C++中,操作符的操作数是从右向左计算,Java中相反。
6. 复合赋值操作和简单赋值操作在一般情况下是相同的,例如 x *= y 和 x = x * y ,但是当x和y类型不同时情况有所变化,例如当x为short类型,y为double类型时,x *= y的结果虽然和想象的有些出入,至少可以编译通过,但后者赋值却是非法的。
大家可以继续补充……
分享到:
相关推荐
《JAVA PUZZLERS》是一本深受欢迎的Java编程书籍,旨在揭示编程语言中的微妙陷阱和易犯错误,帮助开发者提升编程技能和理解。这本书以其独特的“谜题”形式,通过一系列精心设计的问题,引导读者探索Java语言的深奥...
Java Puzzlers 中文版(Java解惑) Java 谜题 1——表达式谜题 谜题 1:奇数性 下面的方法意图确定它那唯一的参数是否是一个奇数。这个方法能够正确运转 吗? public static boolean isOdd(int i){ return i % 2 == 1...
谜题 40:不情愿的构造器 尽管在一个方法声明中看到一个 throws 子句是很常见的,但是在构造器的声明 中看到一个 throws 子句就很少见了。下面的程序就有这样的一个声明。那么, 它将打印出什么呢?...
本書包含了Java程式語言和核心函式庫中的各種謎題,任何具備使用Java經驗的讀者都可以看得懂,但是書裡有不少謎題的難度頗高,即便是對經驗豐富的Java程式設計師而言,都是一項挑戰,所以如果你解不出來,別覺得難過...
Java Puzzlers(韩语版) 讲述了java中容易混淆的问题。 值得一看!
《Java Puzzlers》是一本深受Java开发者喜爱的书籍,由Joshua Bloch和Neal Gafter合著。这本书专门探讨了Java编程语言中容易让人迷惑的陷阱和常见误解,通过一系列精心设计的“puzzlers”(谜题)来揭示这些陷阱,并...
java puzzlers 中文版
《Java Puzzlers Code:揭示编程之谜》 Java Puzzlers 是一套经典的Java编程难题集,由Joshua Bloch和Neal Gafter合著,旨在帮助开发者深化对Java语言特性的理解和避免常见的陷阱。这些“puzzlers”通过一系列精心...
在书中,作者会提出一些看似简单但实际上可能引发错误的代码示例,这些示例被称为“puzzlers”。每个puzzler都会引导读者思考为什么这段代码会以某种意想不到的方式运行,然后提供详细的解答,解释背后的语言原理。...
《Java Puzzlers Sampler》是由Java领域的权威专家Joshua Bloch和Neal Gafter共同编著的一本书,书中收录了一系列令人困惑、出乎意料的Java编程问题,旨在帮助开发者更好地理解和避免这些潜在的陷阱。书中的...
《Java+Puzzlers》是一本深受欢迎的Java编程书籍,它主要探讨了在Java编程中容易被忽视或误解的一些小细节。这本书分为中文和英文两个版本,同时附带源代码,帮助读者深入理解问题并进行实践。"Puzzlers"在这里指的...
综上所述,`java_puzzlers`中文版中的这两个谜题,揭示了Java编程中容易忽视的细节,包括取余运算的符号敏感性和浮点数计算的不精确性。通过深入理解这些问题及其解决方案,开发者可以编写更加健壮和准确的代码。
JAVA解惑 中文和英文 Like many books, this one had a long gestation period. We've collected Java puzzles for as long as we've worked with the platform: since mid-1996, in case you're curious. In early...
这本书通过一系列精心设计的编程谜题(即"puzzlers"),帮助读者深入理解Java语言的内在机制和陷阱。源代码是书中各个谜题的实现,对于学习和理解Java的微妙之处非常有帮助。 首先,我们来看"java-puzzlers"这个...
根据提供的文件信息,“Java解惑 清晰版带书签”这一标题暗示这是一本深入探讨Java编程语言中常见问题及解决方案的专业书籍。该书由《Effective Java》的作者所著,因此我们可以推断出这本书将包含许多实用的Java...
《JAVA解惑》是一本专为Java爱好者设计的书籍,旨在帮助读者解决在学习和使用Java过程中遇到的各种问题。这本书以PDF格式提供,方便电子阅读和保存。在深入探讨Java编程语言的过程中,它覆盖了从基础概念到高级特性...
Java™ Puzzlers: Traps, Pitfalls, and Corner Cases.chm,英文版本,chm 格式,大小 1 Mb,作者:Joshua Bloch、Neal Gafter。 内容预览: Chapter 1. Introduction Chapter 2. Expressive Puzzlers Puzzle 1: ...
本书深入研究Java编程语言及其核心类为的细微之处,特写95个有关Java或其他类库的陷阱和缺陷的谜题,其中大多数谜题都采用短程序的形式给出。在每个谜题之后都有详细的解惑方案,这些方案在给出那些实际行为与表面上...
《Addison.Wesley.Java.Puzzlers.Jun.2005》一书由Joshua Bloch和Neal Gafter联合编著,由Pearson Education, Inc.于2005年出版。这本书的标题《Java Puzzlers: Traps, Pitfalls, and Corner Cases》揭示了其内容...