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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xingxiansheng 中级黑马   /  2016-3-29 22:32  /  7686 人查看  /  36 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1黑马币
一个程序里有普通代码块静态代码块,构造代码块,那么执行顺序是怎么个顺序啊?加载顺序呢?

36 个回复

正序浏览
静态代码块是随着类的加载而执行的,且只执行一次;    构造代码块是随着对象的创建而执行的,每次创建对象都会执行构造代码块,并且优先于构造方法执行;    局部代码块(楼主说的普通代码块)是执行到了该语句才执行。
回复 使用道具 举报
静态代码块是最先加载 优先执行的 之后是普通代码块而 你的构造代码块 当你在创建一个类的对象的时候才会调用构造代码块
回复 使用道具 举报
http://blog.csdn.net/nmsoftklb/article/details/8825797
回复 使用道具 举报
静态睡着类加载而加载,主要是安装驱动最先执行,构造代码块先于构造法方法
回复 使用道具 举报
1,静态代码块随着类的加载而加载,第一步进行
2,构造代码块随着对象的创建而加载,第二步进行
回复 使用道具 举报
只知道先执行静态
回复 使用道具 举报
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了!
回复 使用道具 举报
赞!!!!!!!
回复 使用道具 举报
静态,构造,普通
回复 使用道具 举报
静态代码块,构造代码块,局部代码块
回复 使用道具 举报
静态代码块,构造代码块
回复 使用道具 举报
1.如果没有继承体系,执行顺序是:静态代码块 -> 构造代码块 ->构造方法
         静态代码块是随着类的加载而执行的,所以最前,一般用于加载驱动
         构造代码块每创建一次对象就执行一次
局部代码块的作用是限制限量的生命周期,提前释放内存.提高内存利用率.
     2、执行顺序
           父类静态代码块->子类静态代码块->父类构造代码块->父类构造方法->子类构造代码块->子类构造方法
这是学完继承后完整的          父类静态代码块->子类静态代码块->父类构造代码块->父类构造方法->子类构造代码块->子类构造方法
这是学完继承后完整的
回复 使用道具 举报
border-style:solid;
回复 使用道具 举报
先执行静态代码快,再执行构造代码块,静态代码块只执行一次,构造代码块每创建一次对象就执行一次
回复 使用道具 举报
父类静态代码块->子类静态代码块->父类构造代码块->父类构造方法->子类构造代码块->子类构造方法
回复 使用道具 举报
执行顺序:静态代码块-构造代码块-局部代码块.加载顺序:先加载类然后加载构造函数
回复 使用道具 举报
静态代码块  构造代码块  普通代码
回复 使用道具 举报
执行顺序和加载顺序都是:静态代码块、构造代码块、和普通代码块。
静态代码块随着类的加载而加载,只执行一次,构造代码块是每次都会执行。
回复 使用道具 举报
先静态代码块,构造代码块,再普通代码块
回复 使用道具 举报
首先执行静态代码块,静态代码块是随着类的加载而加载的,然后再执行构造代码块进行初始化
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马