黑马程序员技术交流社区

标题: 关于各个代码块执行先后问题 [打印本页]

作者: xingxiansheng    时间: 2016-3-29 22:32
标题: 关于各个代码块执行先后问题
一个程序里有普通代码块静态代码块,构造代码块,那么执行顺序是怎么个顺序啊?加载顺序呢?

作者: wjs    时间: 2016-3-29 22:45
静态代码块  构造代码块  普通代码
作者: 404951246    时间: 2016-3-29 23:23
执行顺序位:静态代码块,构造代码块,普通代码块,加载顺序是:静态代码块,构造代码块,普通代码块
作者: Gqg    时间: 2016-3-29 23:49
执行顺序位:静态代码块,构造代码块,普通代码块;


加载顺序是:静态代码块,构造代码块,普通代码;

作者: yangxiong    时间: 2016-3-29 23:50
执行顺序位:静态代码块,构造代码块,局部代码块,加载顺序是:静态代码块,构造代码块,局部代码块。
静态代码块随着类的加载而加载,只执行一次,一般用于加载驱动。
作者: 伊乐杰    时间: 2016-3-29 23:58
静态代码块,构造代码块,普通代码块;
作者: Ak-47    时间: 2016-3-30 01:24
静态代码块随着类的加载而存在,是最早进内存的,但是它只执行一次,下次创建对象也不执行,构造代码块是创建对象的时候才会执行,是随着对象的创建而执行,毎创建一次对象就执行一次,希望能帮到你
作者: wsgfs    时间: 2016-3-30 08:22
首先是静态代码快, 构造代码块,最后是普通代码块,因为类在加载的时候,首先加载静态成员(包括静态代码块),再者是使用一个对象,进行初始化调用是的构造方法,也就是构造楼主说的构造代码块),最后要使用对象的行为功能,自然最后是调用普通代码块了

作者: zx7750462    时间: 2016-3-30 11:44
1、优先级
           静态代码块 -> 构造代码块 ->构造方法
     2、执行顺序
           父类静态代码块->子类静态代码块->父类构造代码块->父类构造方法->子类构造代码块->子类构造方法
这是学完继承后完整的
作者: Zhouyongming    时间: 2016-3-30 13:27
父类静态代码块 ->子类静态代码块  ->父类构造代码块->父类构造方法->子类构造代码块->子类构造方法
作者: 小灰辉    时间: 2016-3-30 13:49
代码块 分为 局部代码块,构造代码块,静态代码块;
它们之间的执行顺序是静态代码块,构造代码块, 调用方法时执行局部代码块;
局部代码块的作用是限制限量的生命周期,提前释放内存.提高内存利用率.
作者: 123liu123    时间: 2016-3-30 16:43
先静态,然后是构造代码块,最后是普通代码块
作者: xiaochenu    时间: 2016-3-30 17:41
静态只执行一次先静态再构造然后在普通
作者: 叶小伞    时间: 2016-3-30 19:22
静态代码块-构造代码块-普通代码块
静态代码块是随着类的加载而执行的,所以最前
构造代码块每创建一次对象就执行一次
最后是普通代码块
该知识点出现在Java基础视频第8天,详细了解的话可以多看看
作者: 小凡帅哥    时间: 2016-3-30 22:20
静态代码块,构造代码,普通代码块,加载的时候类加载执行静态,建立对象执行构造,方法进栈执行普通
作者: 菇凉斋    时间: 2016-3-30 23:51
=先执行静态代码块,然后是构造代码块,接着是普通代码.
作者: 菇凉斋    时间: 2016-3-30 23:55
加载顺序也是一样
作者: adomwon    时间: 2016-3-31 15:27
首先执行静态代码块,静态代码块是随着类的加载而加载的,然后再执行构造代码块进行初始化
作者: 啊海    时间: 2016-3-31 21:46
先静态代码块,构造代码块,再普通代码块
作者: kingblue    时间: 2016-4-1 00:05
执行顺序和加载顺序都是:静态代码块、构造代码块、和普通代码块。
静态代码块随着类的加载而加载,只执行一次,构造代码块是每次都会执行。
作者: daniua    时间: 2016-4-1 14:50
静态代码块  构造代码块  普通代码
作者: 122754304    时间: 2016-4-1 23:15
执行顺序:静态代码块-构造代码块-局部代码块.加载顺序:先加载类然后加载构造函数
作者: dwt1397261    时间: 2016-4-2 16:16
父类静态代码块->子类静态代码块->父类构造代码块->父类构造方法->子类构造代码块->子类构造方法
作者: clvslyf    时间: 2016-4-2 20:42
先执行静态代码快,再执行构造代码块,静态代码块只执行一次,构造代码块每创建一次对象就执行一次
作者: 怎么能够    时间: 2016-4-2 22:40
border-style:solid;
作者: aweilovemusic    时间: 2016-4-3 20:58
1.如果没有继承体系,执行顺序是:静态代码块 -> 构造代码块 ->构造方法
         静态代码块是随着类的加载而执行的,所以最前,一般用于加载驱动
         构造代码块每创建一次对象就执行一次
局部代码块的作用是限制限量的生命周期,提前释放内存.提高内存利用率.
     2、执行顺序
           父类静态代码块->子类静态代码块->父类构造代码块->父类构造方法->子类构造代码块->子类构造方法
这是学完继承后完整的          父类静态代码块->子类静态代码块->父类构造代码块->父类构造方法->子类构造代码块->子类构造方法
这是学完继承后完整的
作者: 雨伞    时间: 2016-4-4 12:01
静态代码块,构造代码块
作者: 伊乐杰    时间: 2016-4-5 22:11
静态代码块,构造代码块,局部代码块
作者: caoshengwei    时间: 2016-4-5 23:55
静态,构造,普通
作者: 兵蜂    时间: 2016-4-8 23:37
赞!!!!!!!
作者: 改变自己、    时间: 2016-4-11 23:45
package StaticDemo;
class Person{
        private String name;
        private int age;
        //静态代码块
        static {
                System.out.println("父类静态代码块执行了");
        }
        //构造代码块
        {
                System.out.println("父类构造代码块执行了");
        }       
        //无参构造函数
        Person(){
                System.out.println("父类无参的构造函数执行了");
        }       
        Person(String name,int age){
                this.name = name;
                this.age = age;
                System.out.println("父类有参构造函数执行了");
        }       
}

class Student extends Person{
                //静态代码块
                static {
                        System.out.println("子类静态代码块执行了");
                }
                //构造代码块
                {
                        System.out.println("子类构造代码块执行了");
                }
               
        //子类空参构造函数
        Student(){
                System.out.println("子类的空参构造函数执行了");
        }
        //子类有参构造函数
        Student(String name,int age){
                super(name,age);
                System.out.println("子类的有参构造函数执行了");
        }
       
}

public class StaticDemo {
        public static void main(String[] args){
                //Student s = new Student();
                Student s1 = new Student("wangqaing",23);
        }

}
直接看结果就ok了!
作者: 943480861    时间: 2016-4-14 02:27
只知道先执行静态
作者: AAAheilong    时间: 2016-4-16 21:56
1,静态代码块随着类的加载而加载,第一步进行
2,构造代码块随着对象的创建而加载,第二步进行
作者: liudh1    时间: 2016-4-19 21:50
静态睡着类加载而加载,主要是安装驱动最先执行,构造代码块先于构造法方法
作者: nc11111    时间: 2016-4-21 19:39
http://blog.csdn.net/nmsoftklb/article/details/8825797
作者: zfr930102    时间: 2016-6-23 23:13
静态代码块是最先加载 优先执行的 之后是普通代码块而 你的构造代码块 当你在创建一个类的对象的时候才会调用构造代码块
作者: cjc147    时间: 2016-9-9 01:14
静态代码块是随着类的加载而执行的,且只执行一次;    构造代码块是随着对象的创建而执行的,每次创建对象都会执行构造代码块,并且优先于构造方法执行;    局部代码块(楼主说的普通代码块)是执行到了该语句才执行。




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