黑马程序员技术交流社区

标题: java 基础关于构造代码块和构造方法的执行顺序 [打印本页]

作者: long_believe    时间: 2014-7-10 21:42
标题: java 基础关于构造代码块和构造方法的执行顺序
一 之前看有关视频介绍:
构造方法在创建对象的过程中有隐式的三步:
    1:super()
    2:显示初始化成员变量
    3:执行构造代码块
但是:现在老师讲的顺序是:构造代码块 -->构造方法。
这两种解释有冲突么?到底是怎样的?

二 第三块内存方法区,方法区里面又分为普通方法区好静态区
我想问的是:普通方法是什么时候加载进方法区的?是jvm启动的时候加载进去的还是当程序需要使用的时候才随着相关类的加载而加载?静态区又是怎样的?



作者: 沐子松/kf    时间: 2014-7-10 21:53
等高人回答~~~
作者: long_believe    时间: 2014-7-13 21:01
都没人理了,哎
作者: 张盼    时间: 2014-7-13 22:25
变量初始化的顺序是默认初始化,显示初始化,构造方法初始化,构造方法初始化的过程中先调用构造代码块,因为子类调用构造方法之前之前要访问父类的构造方法,所以执行顺序是
默认初始化——>显示初始化——>父类构造代码块——>父类构造方法——>子类构造代码块——>子类构造方法
作者: 张盼    时间: 2014-7-13 22:32
类加载器将class文件加载进内存的时候,静态方法随着类的加载而加载进方法区中的静态区,普通方法是在调用的时候才加载进方法区的
作者: 瑟爽秋枫    时间: 2014-7-13 22:37
听视频中讲解的先执行构造代码块 再执行构造方法  
作者: doubandddk    时间: 2014-7-15 21:55
既然说了是隐式的,那就是构造代码块完了再构造方法的赋值,不冲突啊

静态方法时类加载时候就加载静态方法去的,成员方法是实例化对象的时候加载进内存的




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