class A
{
   ......
   static final void add(String entity, int value) 
   {
     .......
   }
   ......
   static
   {
      add("&nbsp",160)
   }
}
请问:(1)第二个static这样写是什么意思?
      (2)在html实体字符里"&nbsp"与160之间是什么关系?

解决方案 »

  1.   

    你没有把add的方法体内的东西写出来,回答不了你"&nbsp"与160之间有什么关系;
    只知道"&nbsp"在html中是空格
    第二个static的用噶也没有看过是内部类?不清楚等高手
      

  2.   

    第二个static是静态块,类加载(不管是不是需要实例化)的时候会先调用到。
      

  3.   

    static块内的代码只在JVM第一次加载该类的时候运行
    首先调用的是static静态快的代码,然后调用启动方法.而static块的执行顺序是由代码的编写顺序执行的过程.
      

  4.   

    static
       {
          add("&nbsp",160)
       }
    被成为静态块 它在类加载的时候就会执行 通过它调用add方法 执行方法里的语句
      

  5.   

    静态块里的代码不一定是第一次被加载时执行,
    确切的说应该是第一次实例化的时候执行~
    因为他的执行和类的加载方式有关:
    看看下面的:
    1,测试类:
    package com.daniel.test;public class TestStatic {
      static{
        System.out.println("执行静态块!");
      }
      public void print(){
        System.out.println("执行TestStatic.print()!");
      }
    }
    2,主类:
    package com.daniel.test;
    public class StaticTest {
      public static void main(String[] args) throws Exception {
        StaticTest st = new StaticTest();
        System.out.println("准备加载com.daniel.test.TestStatic...");
        Class clazz = st.getClass().getClassLoader().loadClass("com.daniel.test.TestStatic");
        System.out.println("加载com.daniel.test.TestStatic成功!");
        System.out.println("准备实例化com.daniel.test.TestStatic...");
        TestStatic ts = (TestStatic)clazz.newInstance();
        System.out.println("实例化com.daniel.test.TestStatic成功!");
        ts.print();
      }
    }3,执行结果:
    准备加载com.daniel.test.TestStatic...
    加载com.daniel.test.TestStatic成功!
    准备实例化com.daniel.test.TestStatic...
    执行静态块!
    实例化com.daniel.test.TestStatic成功!
    执行TestStatic.print()!
    从结果很明显看出,静态块的执行是类第一次实例化的时候进行的~~~~~
    而 不是 大家常说的第一次加载类的时候执行的!!!!!
      

  6.   

    to daniel_kaka():
    这里有个例外情况,如果你调用类的静态方法,那么静态块的内容也会被调用,而不需要实例化对象。