黑马程序员技术交流社区

标题: 代码块识别问题 [打印本页]

作者: 吴建红    时间: 2014-6-7 14:57
标题: 代码块识别问题
现在已经学习了三种代码块,局部代码块、静态代码块以及构造代码块,静态代码块很好识别,因为之前有个Static,但是局部代码块和构造代码块,从代码里如何一看识别出来呢?
作者: yanghu    时间: 2014-6-7 15:32
还有一个同步代码块,主要用于多线程当中。
在一个类中,加了static的就是静态代码块,没有加static的就是构造代码块,在函数中的就是局部代码块。
静态块优先于主方法的执行,静态块优先于构造方法的执行,而且只执行一次!
构造代码块,在new对象时,构造代码块优先构造方法执行!
静态代码块优先于构造代码块执行。
理解错误的请指出,谢谢。
作者: 吴建红    时间: 2014-6-9 15:05
yanghu 发表于 2014-6-7 15:32
还有一个同步代码块,主要用于多线程当中。
在一个类中,加了static的就是静态代码块,没有加static的就是 ...

:handshake
作者: axuan    时间: 2014-6-9 16:33

public class Test
{
        public static void main(String[] args)
        {
        //局部代码块:
                //作用:控制变量的生命周期;
                int x=0;
                System.out.println(x);
        }
       
        /*
         * 构造代码块:
                     作用:它可以给所有对象进行初始化
                     存在于:类中。
         */
        private String name;
        public Test(String name)
        {
                this.name=name;
        }
       
        /*
         * 静态代码块:
         特点:
        1. 随着类的加载而执行,而且只一次。
        2. 优先于主函数执行。

                      作用:给类进行初始化
         */
        static
        {
                        Class.forName("com.mysql.jdbc.Driver");

        }
}
作者: 爨庚轩    时间: 2014-6-9 20:22
判断是什么代码块,要看代码块出现的位置及有没有static修饰。用static修饰的就是静态代码块,这个可以很好的看出来;构造代码块,在类中定义且没有加static关键字的代码块称为{}构造代码块,构造代码块在创建对象时被调用;局部代码块:在方法或语句中出现的{}。
作者: uu993    时间: 2014-6-9 20:45
1、执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块>构造方法
2、普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”。
构造代码块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。
静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2