复合语句,当一句处理(用在if,for,while......),或者是函数定义的开始和结束

解决方案 »

  1.   

    一般来说,这样和不加没区别。
    如果前面有static,那就是静态代码块。
      

  2.   

    代码块,跟不加{}区别大了,在{}内声明的东西,只在这个代码块有效!
    如:String str1 = "hello1";
    {
       String str2 = "hello2";
       str1 = str1 + "1111";//可以使用代码块外的变量
    }//退出代码块后str2被垃圾回收,str2的生命期结束;
    str2 = str2 + "2222";//错误,编译通不过
      

  3.   


    静态代码块是在JVM装入这个类似加载的,它只执行一次。如果有几个静态代码块,按定义的顺序执行。

    class A
    {
        static int a;
        {
            a=1;
        }
    }
     
     
      

  4.   

    是的
    基本上是一样的
    但是我们作项目的时候,要求必须这么写
    原因是 以后有可能在这个括号里边添加代码
    但是如果开始就没有这个括号
    而修改代码的人太弱了也没有加括号
    那就会出现很难找出来的bug