A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴建红 中级黑马   /  2014-6-7 14:57  /  1387 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

现在已经学习了三种代码块,局部代码块、静态代码块以及构造代码块,静态代码块很好识别,因为之前有个Static,但是局部代码块和构造代码块,从代码里如何一看识别出来呢?

评分

参与人数 1黑马币 +5 收起 理由
jiang_ming + 5 很给力!

查看全部评分

5 个回复

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

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");

        }
}
回复 使用道具 举报
yanghu 发表于 2014-6-7 15:32
还有一个同步代码块,主要用于多线程当中。
在一个类中,加了static的就是静态代码块,没有加static的就是 ...

:handshake
回复 使用道具 举报
还有一个同步代码块,主要用于多线程当中。
在一个类中,加了static的就是静态代码块,没有加static的就是构造代码块,在函数中的就是局部代码块。
静态块优先于主方法的执行,静态块优先于构造方法的执行,而且只执行一次!
构造代码块,在new对象时,构造代码块优先构造方法执行!
静态代码块优先于构造代码块执行。
理解错误的请指出,谢谢。

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马