java中静态代码块和构造代码块的区别

如题所述

直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。
静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。

注意:1 静态代码块不能存在于任何方法体内。2 静态代码块不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-08-24
还是不得不拿出<clinit>和<init>说事了。以下拿类T作为讲解的对象类型吧:
class T{
private static final String msg = "this is a test class!";
private static int version = 1;

static{

version = 2;
desc = "class T";
}
private static String desc = “T is a test Class”;

private int age = 2;
{
age = 10;
name = "panda";

}
public T(){本回答被提问者采纳
第2个回答  2017-02-05
这些是一些比较底层的知识。在实际开发中用的不多,主要就是在面试题中会用到,首先先来什么用到静态语句块以及他的作用
相似回答