2017-04-24 2 views
0
class LetsComp { 
    public static void main(String[] args) { 

    int a = 10, b = 0010; 

    System.out.println(a == b); // this gives false, even if both values in actual are same 

    } 
} 
+5

Das ist, weil sie nicht gleich sind. 'a' ist 10,' b' ist 8. – RealSkeptic

+1

Java-Nummern, die mit 0 beginnen, sind oktal, dh Sie könnten 08 oder 09 nicht verwenden. Wenn Sie Literale schreiben würden, die mit 0x beginnen (zB 0x010), wären sie hexadezimal. – Thomas

Antwort

2

In Java 10 und 0010 sind nicht gleich.

0010 ist in oktal äquivalent zu 8 (in Dezimal), während 10 ist bereits im Dezimalformat.

Von JLS:

Ein oktalen Ziffer besteht aus eine ASCII-digit 0, gefolgt von einem oder mehreren der ASCII Ziffern 0 bis 7 mit Unterstrichen durchsetzt, und kann einen positiven, Null darstellen, oder negative ganze Zahl.

Verwandte Themen