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
}
}
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
}
}
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.
Das ist, weil sie nicht gleich sind. 'a' ist 10,' b' ist 8. – RealSkeptic
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