是不是这样呀?
null is a boolean operator.

解决方案 »

  1.   

    结果是 true is a boolean Operator.
    首先,在main()里,该类的静态元素(方法、属性)可以不需限制符,直接引用。就是连类名都不用啦。
    其次,执行中,首先加载的是类型,虚拟集分配了空间给类型,包括方法指令和静态数据(事实上,对象只分配了独立非静态数据空间)。processorA()可以执行,他返回的是类型Q1当然,它是指向的对象空间是null的,但是,他有与类型的联系。由于processorB();是静态方法,不需要独立的对象空间,也就是她没有去查找对象,就执行了,所以不会抛出Null异常。
      
      

  2.   

    true is a boolean operator
      

  3.   

    static Q1 processorA(){ 
          Q1 q=null; 
          if (("java").startsWith("null")) 
            return q; 
          else 
            return null; 
      } 
    请教这个程序段在这个程序中的功能,我觉得返回的是一个null啊,无论返回什么好像都和最后的结果没有多大的关系,请指教
      

  4.   

    返回的是一个null执行的是
    else 
            return null; 
      } 
    但是,java有动态绑定和静态绑定的问题,虽然是null,但是他也是绑定在类型Q1上的。所以有那样的结果。
      

  5.   

    static { 
          System.out.print("Java".startsWith("")); 
      } 
    应该是什么时候执行的?Q1并未进行初始化呀
      

  6.   

    静态绑定的不需实例初始化。当你调用processorA(),时系统首先加载类型Q1,这时,那些静态绑定的东西就被加载了,比如static { System.out.print("Java".startsWith(""));} 就被运行了。然后才是考虑Q1绑定的方法processorA()。
     
      

  7.   

    在类中这样的写法是什么意思??
    static { 
          System.out.print("Java".startsWith("")); 
      } 
      

  8.   

    必须了解类型信息在运行期是如何表示的。这时要用到一个名为“Class对象”的特殊形式的对象,其中包含了与类有关的信息(有时也把它叫作“元类”)。事实上,我们要用Class对象创建属于某个类的全部“常规”或“普通”对象。
    对于作为程序一部分的每个类,它们都有一个Class对象。换言之,每次写一个新类时,同时也会创建一个Class对象(更恰当地说,是保存在一个完全同名的.class文件中)。在运行期,一旦我们想生成那个类的一个对象,用于执行程序的Java虚拟机(JVM)首先就会检查那个类型的Class对象是否已经载入。若尚未载入,JVM就会查找同名的.class文件,并将其载入。所以Java程序启动时并不是完全载入的,这一点与许多传统语言都不同。
    static { 
          System.out.print("Java".startsWith("")); 
      } 
    一个static从句,用于在类首次载入时执行。
      

  9.   

    The fact just like what ycats said.
    If you get rid of the "static" before method processorB() or change it to something else but "static", you can compile it, yet it will throw a "NullPointerException" in the runtime.
      

  10.   

    真是无聊这样简单的问题都要这么多人来讲。
    下面我就这一方面的内容详细的解释一下。
    (1)单根类(除了继承object之外没有继承)。首先初始化所有的静态成员,并且只初始化一次。然后初始化非静态成员,然后执行构造函数。
    (2)非单根类。首先初始化全部的静态成员。然后初始化父类的非静态成员,然后是子类的非静态成员,现在开始调用父类构造和子类构造。
    (3)静态成员初始化是初次载入类时候完成的,正是象上面几位说的那样的。
    测试代码:
    class a{
    a(){
    System.out.println("construct a"+i);}
    static int i=ptra();
    static int ptr(){
    System.out.println("just a test in a!");
    return 20;
    }
    }
    class b extends a{
    b(){
    System.out.println("construct b"+j);
    }
    static int j=ptr();
    public static void main(String args[]){
    System.out.println("start program");
    b bb=new b();
    }
    }结果为:
    just a test in a!
    just a test in b!
    start program
    construct a20
    construct b10