标签:应该 ble protected 加载过程 代码 定义变量 理解 属性 开头
开头注意:static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。
根据定义变量位置的不同,可以将变量分为成员变量和局部变量。
成员变量是 定义在一个类的变量:类中方法外
局部变量是定义在一个方法内的变量:方法中
成员变量分为:
静态属性:随类的存在而存在,是在类加载的初始化
非静态属性:随实例的属性存在而存在。
局部变量:
局部变量不能加static,包括protected, private, public这些也不能加。局部变量保存在栈中。
局部编程必须在声明时初始化。
成员变量和局部变量区别:
成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值。
成员变量存在于堆内存,局部变量存在于栈内存。
静态变量:类中方法外,用static修饰
生命周期:JVM第一次读到这个类并加载类时开始,类销毁不存在。
类加载过程:
加载父类(如果父类已经加载过,则不在加载)。
初始化静态属性 。
按顺序的初始化静态代码块 初始化的前提就是分配空间 。
静态变量存在于方法区即静态区(方法区包含整个程序中唯一存在的元素)
全局变量(在java中可以理解为用static final修饰):在java中全局变量也称成员变量,是创建对象的时候分配内存的。全局常量存于全局数据区。
创建对象过程为:
分配空间。
创建父类对象。
初始化成员变量。
调用构造方法创建一个对象。
方法(包括静态方法)中不能有静态变量,方法中存在的是局部变量,而不是静态变量。静态变量是定义在类中,方法体外面的。
实例变量:定义在类中但在任何方法之外。
当一个对象被实例化之后,每个实例变量的值就跟着确定;
标签:应该 ble protected 加载过程 代码 定义变量 理解 属性 开头
原文地址:https://www.cnblogs.com/1994xlai/p/12989477.html