Java 实用程序员练习19

Java 实用程序员练习19,java,language-agnostic,Java,Language Agnostic,这摘自实用程序员的练习19 一个快速的现实检查。以下哪些“不可能”的事情会发生 少于28天的一个月 stat(“.”,&sb)=-1(即,无法访问当前目录) 在C++中:a=2;b=3;如果(a+b!=5)退出(1) 具有内角和的三角形≠ 180° 没有60秒的一分钟 在Java中:(a+1)3:如果a和b是类类型,那么重载操作符+可以做任何事情(或者重载赋值操作符,或者操作符!=,甚至是隐式转换操作符) 4:曲面上的三角形的内角和不等于180 6:a中溢出 这些问题的重点是,如何证明许多“不可

这摘自实用程序员的练习19

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

  • 少于28天的一个月

  • stat(“.”,&sb)=-1(即,无法访问当前目录)

  • 在C++中:
    a=2;b=3;如果(a+b!=5)退出(1)

  • 具有内角和的三角形≠ 180°

  • 没有60秒的一分钟


  • 在Java中:
    (a+1)3:如果a和b是类类型,那么重载操作符+可以做任何事情(或者重载赋值操作符,或者操作符!=,甚至是隐式转换操作符)

    4:曲面上的三角形的内角和不等于180

    6:a中溢出


    这些问题的重点是,如何证明许多“不可能”的事情确实发生了,而且当你在进行防御性编程时,你可能不仅仅是偏执狂。

    2
    很容易发生。e、 g.如果您在目录中删除目录,然后执行某些操作。许多程序实际上都能处理这个问题

    noufal@sanitarium% ls
    noufal@sanitarium% cd
    noufal@sanitarium% mkdir /tmp/foo
    noufal@sanitarium% cd /tmp/foo
    noufal@sanitarium% touch x
    noufal@sanitarium% ls
    x
    noufal@sanitarium% rm -Rf /tmp/foo
    noufal@sanitarium% ls
    noufal@sanitarium% touch x
    touch: cannot touch `x': No such file or directory
    

    nr 5发生在

    的情况下,他们不是在章节/书的末尾提供答案吗?让你猜猜似乎有点残忍…4不是不可能的-请不要讨论球面几何,但4不是不可能的:事实上,由于空间是弯曲的,我们现实中没有一个三角形有180º。2如果程序当前目录上的权限被更改(或被完全删除),则可能发生这种情况。3.如果
    int a
    Integer,则可以通过运算符重载退出。如果
    int a
    整数,则
    (a+1)
    的计算结果为
    true
    。编辑:啊,等等,MadKeithV已经提到了……赋值运算符和隐式转换构造函数呢?@tokage-正确,我把它们添加到了我的答案中。我很高兴在最初提出的问题中没有任何逗号:)3更简单的int a;int&b=a;关于这一点,虽然这是一个很好和有用的观点,但我觉得对位法同样重要。根据语言规范,没有什么比处理实际上不可能的“不可能的”事情时费力地处理被复杂度污染的代码更令人沮丧的了。,