int x=3;
public static void main(String[] args) {
int x=012;
System.out.println(x); \\这里输出的是10为什么 ?

}

解决方案 »

  1.   

    012  -- 八进制的,正常情况下都不回这么定义int 变量的。
      

  2.   

    首先要确定x用的是哪个值,是main方法外的3还是main方法里的012?局部变量优先于全局变量,所以x的值为012。
    Java中八进制的数以0开头,那么012就等于十进制的8*1+2*1=10。
      

  3.   

    数字前面+了0的,比如:012就是8进制等于10,06就是6。
    012计算出10进制就是10了。
    int x=012;是局部变量,会优先使用。
    如果楼主要使输出结果为3,可以这样写:System.out.println(this.x);
    那么结果就是3了