为什么这个数组到2d数组布尔值为true?

Leo*_*nne 3 java arrays syntax boolean

嗨,我碰巧遇到了我的朋友发给我的代码,并且我在编写print语句的第二部分时遇到了麻烦.. a[3]是4,这是在第0行第2列(b[0][2]),但为什么a[2]是53,证明真的b[2][1] == 43??? (代码打印'真实'顺便说一下.)

class Ex1{
     public static void main(String[] args) {

         int a[] = { 1,2,053,4};
         int b[][] = { {1,2,4} , {2,2,1},{0,43,2}};

         System.out.print(a[3]==b[0][2] );
         System.out.print(" " + (a[2]==b[2][1]));
  }
}
Run Code Online (Sandbox Code Playgroud)

xle*_*ier 12

发生这种情况是因为053八进制数等于43十进制数.

0前缀是指在Java和一个八进制值一些其他语言(Perl中,红宝石,C和派生,Javascript来仅举几例).