1、先看如下代码:
Integer f1=100,f2=100,f3=150,f4=150;
System.out.println(f1==f2);
System.out.println(f3==f4);
输出结果为:true
false
为什么呢?这里涉及一个知识点就是:
Integer有一个常量池在-128~127的时候,生成的Integer对象是同一个地址值,所以为true
当超过这个范围产生的就是不同的对象,所以用==比较为false.
2、先看如下代码:
public class A{
int a[]=new int[5];
public static void main(String[] args){
Sysout.out.print(a[0]);
}
}
这里会编译错误,为什么?
其实main方法也是static方法,static方法不能调用非静态方法,在 int a[]=new int[5];前面加上static关键字即可。