java 调用静态方法和构造函数和静态块执行的先后顺序

大家好,我是从c#过来学习java,想了解一下,一个类中有构造函数和静态方法,调用静态方法的时候是不是先执行了构造函数。那么静中又有静态区块的时候呢... 大家好,我是从c#过来学习java,想了解一下,一个类中有构造函数和静态方法,调用静态方法的时候是不是先执行了构造函数。那么静中又有静态区块的时候呢 展开
 我来答
小傻

推荐于2017-10-03 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

java中首先是静态块先执行,静态方法,最后是构造函数。示例如下:

public class ExA {  
    static {  
        System.out.println("父类--静态代码块");  
    }  
  
    public ExA() {  
        System.out.println("父类--构造函数");  
    }  
  
    {  
        System.out.println("父类--非静态代码块");  
    }  
  
    public static void main(String[] args) {  
        new ExB();  
    }  
}  
  
class ExB extends ExA {  
    static {  
        System.out.println("子类--静态代码块");  
    }  
    {  
        System.out.println("子类--非静态代码块");  
    }  
  
    public ExB() {  
        System.out.println("子类--构造函数");  
    }  
}  

执行结果 
===== 
父类--静态代码块 
子类--静态代码块 
父类--非静态代码块 
父类--构造函数 
子类--非静态代码块 
子类--构造函数
yong恒的JJ
2018-11-17 · TA获得超过235个赞
知道答主
回答量:172
采纳率:0%
帮助的人:49.8万
展开全部
静态块和静态变量是并列的,谁在前谁最先。接下来,main,除了main 静态方法都不会执行,实例化以后再执行,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6724e5c
推荐于2017-10-08 · TA获得超过376个赞
知道答主
回答量:60
采纳率:0%
帮助的人:78.3万
展开全部
构造方法是只有你在new对象的时候才会执行,静态语句块和静态方法在类加载到内存的时候就已经执行了
,另外,静态语句块只能给静态变量赋值,里面不能出现方法,同样,静态方法里面也不能出现静态语句块
追问
调用静态方法之前是不是先执行了静态语句块呢
追答
对,先是静态语句块执行,然后静态方法加载到内存.
静态语句块你不管它它自动会执行,而静态方法它一直存在于内存中,只有你用类名点方法名的时候才会执行
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式