static关键字&&静态代码块

1.静态代码块:在类加载的时候运行,不能访问普通变量,不能存在任何方法体中;
(2)静态方法:类初始化的时候加载
(3)静态变量:类初始化的时候加载
2.构造代码块:
(1)每次创建对象的时候都会提前调用一次构造代码块
(2)构造代码块不是优先于构造函数执行,而是依托于构造函数

对象的初始化顺序:
  首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,
  当子类的静态内容执行完毕之后,再去看父类有没有构造代码块,如果有就执行父类的构造代码块,
  父类的构造代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有构造代码块,
  如果有就执行子类的构造代码块。子类的构造代码块执行完毕再去执行子类的构造方法。

原文地址:https://www.cnblogs.com/smj1990/p/9144004.html

时间: 2024-10-13 04:43:21

static关键字&&静态代码块的相关文章

Java中this和static关键字及代码块

this: 可以使用this表示类中的属性------this.name=name 可以使用this强调调用的是本类的方法 可以使用this调用本类的构造方法------this();调用本类中无参构造方法 可以使用this表示当前对象(调用方法的对象)----最重要的用途 static: 声明属性---------属性则为全局变量 声明方法---------Person.setName("Tom");使用类名称调用static方法 普通代码块:直接在方法或是语句中定义的代码块 pub

面向对象基础——static关键字和代码块的使用

具体内容 在Java中可以使用static声明属性和方法,因为之前多部分属性和方法都属于非static的,这样一来,每个对象都占有自己的内容,如果现在希望一个属性被所有的对象所共同拥有,则可以将其声明为static类型,声明为static类型的属性和方法之后此属性或方法也称为类非,可以由类名称直接调用. 使用static声明属性 static可以声明全局属性,全局属性到底有哪些作用?如下所示 class Person{ // 定义Person类 String name ; // 定义name属性

【Java总结】static,静态代码块

static static可以修饰属性,方法,代码块,内部类 特点 随着类的加载而加载 优先于对象存在 修饰的成员被所有对象所共享 访问权限允许时,可以不创建对象,直接被类调用 static修饰的属性,存储在内存中的静态区域,整个程序中只有这一个成员 public class Test { public static void main(String[] args) { Person p = new Person(); Person.setName("ttf");//类可以直接访问静态

final、static、代码块、静态代码块、内部类、代码执行顺序

final final域使得确保初始化安全性(initialization safety)成为可能,初始化安全性让不可变形对象不需要同步就能自由地被访问和共享 作用在类上               则为final类,final类不能被继承.一般用于工具类时,同时把工具类构造函数声明为私有,暴露静态共有方法 作用在成员变量上    则视为常量.此时赋值方式有三种:(1)声明时赋值(2)构造函数中赋值(3)代码块中赋值. 即不管哪种方式都要保证在使用该变量之前要确保已经有值.使用该特性,可以强制赋

Java中普通代码块,构造代码块,静态代码块区别及代码示例

//普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--"先出现先执行"public class CodeBlock01{ public static void main(String[] args){ { int x=3; System.out.println("1,普通代码块内的变量x="+x); } int x=1; System.out.println("主方法内的变量x="

ava中普通代码块,构造代码块,静态代码块区别及示例

//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 //普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行” 1 2 public class CodeBlock01{ 3 public static void main(String[] args){ 4 5 { 6 int x=3; 7 Syst

普通代码块、构造块、静态代码块、构造方法浅析

1.普通代码块:直接在一个方法中或语句中出现的{}被称为普通代码块. 相同类型的代码块执行顺序为,先定义先执行. 2.构造块:直接在类中定义的且没有加static关键字的代码块{}称为构造代码块. 构造块在创建对象时被执行,每次创建对象都会被执行,且构造块的执行顺序 优先于类构造函数. 3.静态代码块:在java类中使用static关键字声明的代码块称为静态代码块.静态 代码块主要用于初始化类,为类的静态属性初始化.有如下特定: 1)静态代码块不能存在任何方法体内 2)静态代码块不能直接访问实例

关于构造代码块、局部代码块和静态代码块的作用和区别

构造代码块: 直接在类中定义且没有加static关键字的代码块称为{}构造代码; 作用:给对象统一初始化数据 public class Demo1 { public static void main(String[] args) { Test test = new Test(3); //构造代码块会在构造函数被调用时执行, 且在这个例子中比"this.id=id;"语句先执行,作用是给对象统一初始化数据; System.out.println(test); } } class Test

java-普通代码块、构造代码块和静态代码块的区别。

//执行顺序:优先级从高->低:静态代码块->main方法->构造代码块->构造方法. 1.普通代码块.(按顺序执行便可) 2.构造代码块.(直接在类中定义,且没有加static关键字的代码块称为构造代码块.构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数.) 3.静态代码块. //静态代码块:在java中使用static关键字声明的代码块.静态块用于初始化类,为类的属性初始化.每个静态代码块只会执行一次.由于JVM在加载类时会执行静态