java - 实用程序员的练习 19

标签 java language-agnostic

这摘自 The Pragmatic Programmer 的练习 19。

快速现实检查。以下哪些“不可能”的事情会发生?:

  1. 少于 28 天的月份

  2. stat(".",&sb) == -1(即无法访问当前目录)

  3. 在 C++ 中:a = 2; b = 3; if (a + b != 5) exit(1);

  4. 内角和≠180°的三角形

  5. 没有 60 秒的一分钟

  6. 在 Java 中:(a + 1) <= a

我有一些答案,但我不认为我的答案是“正确的”(从某种意义上说,这是作者在写问题时所考虑的答案)。

这是我的尝试:

1) September 1752

2) --I think we can skip this, not understanding the question--

3) I don't know C++, but is it something to do with threading and volatile variables (like Java) ?

4) impossible..

5) Due to occurence of leap Seconds

6) double a = 100000000000000001d;

我想知道是否有人知道这些问题的正确答案?

最佳答案

3:如果 a 和 b 是类类型,那么重载的 operator+ 可以做任何事情(或重载的赋值运算符,或运算符 !=,甚至是隐式转换运算符)。

4:曲面上的三角形内角和不是180。

6:a中溢出。

问题的重点是恕我直言,以证明很多“不可能”的事情确实发生了,并且当您非常防御性地编程时,您可能不仅仅是偏执狂。

关于java - 实用程序员的练习 19,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8009126/

相关文章:

java - 如何解决 "Cannot resolve constructor ' XSSFColor(颜色 )'"?

java - 推荐用于 Java 实现的低内存 HashMap

java - arraylist.get() 问题,没有语法问题

java - 将 XML 文件渲染为 byte[] 格式的 PDF

c++ - 调用者是否应该初始化 "out"参数?

java - 条件、谓词和规范之间有什么区别?

language-agnostic - 不可变集合上的非变异 "add"方法的最佳名称是什么?

language-agnostic - 定义包装代码

algorithm - 构建自己的整数类所需的知识?

language-agnostic - 是否有将四元数旋转转换为欧拉角旋转的算法?