Java 在左手边多放一个零,有什么区别

Java 在左手边多放一个零,有什么区别,java,Java,刚开始学习编程,你能解释一下他们之间的区别吗 public class tst { public static void main(String args[]){ int mk=1200; System.out.println(mk); } } public class tst { public static void main(String args[]){ int mk=01200; System

刚开始学习编程,你能解释一下他们之间的区别吗

public class tst {

    public static void main(String args[]){
        int mk=1200;
        System.out.println(mk);
    }

}

public class tst {

    public static void main(String args[]){
        int mk=01200;
        System.out.println(mk);
    }
}

第一个给出结果
1200
,第二个
640

前导0使编译器将数字解析为八进制数(基数8)。01200八进制的十进制值为640。

前导零表示八进制文字;所以01200是基数8,十进制是640


本质上,这是向八进制文字更为常见的旧时代致敬。但如今,这更可能成为一种干扰,引起混乱。有人提议对八进制文字采用更为谨慎的
0o
表示法。

这是因为System.out.println??据我所知,它将值转换为字符串???@mayankkumar println将整数转换为十进制表示的字符串。