public class MyInstanceTest{
static String s;
static String s1 = new String("OOK");
public static void main(String []args){

if(s instanceof String){
System.out.println("s am true String");
}else{
System.out.println("s am false String");
}

if(s1 instanceof String){
System.out.println("s1 am true String");
}else{
System.out.println("s1 am false String");
}

}
}
Console:
s am false String
s1 am true String我觉得应该都是true才对啊?

解决方案 »

  1.   

    String 类型默认null,null instanceof String是false
      

  2.   

    instanceof的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据
    static String s1 = new String("OOK");
    声明了一个String对象引用,指向一个String对象,然后用instanceof来测试它所指向的对象是否是String类的一个实例,显然,这是真的,所以返回true,也就是String的值为True。
    static String s;
     if(s instanceof isObject ){
                System.out.println("s am true String");
            }else{
                System.out.println("s am false String");
            }
    试下这个
      

  3.   

    答:s的默认值是:null
    而 null instanceof  任何类  结果都是:false
      

  4.   

    instanceof 返回是否为该对象的实例
    s 是 null,当然返回false
      

  5.   

    这是属性默认值的问题,基本类型有自己的默认值,其他类型都是null.
      

  6.   

    static String s;
    没有实例化
      

  7.   

    类被加载的时候你的静态成员被初始化
    S为空,s1非空;
    而判断 null instanceof String 并不会产生问题,因为null什么都没有指向,所以返回false