Java中的成员变量和局部变量
2015-01-28 10:10
302 查看
在Java中的所有变量有2种:
1、成员变量:
i. 实例Field(不以static修饰)
ii. 类Field(以static修饰)
2、局部变量:
i. 形参(方法签名中定义的变量)
ii. 方法局部变量(在方法内定义)
iii. 代码块局部变量(在代码块内定义)
成员变量无须初始化,只要定义了类Field和实例Field,系统就会帮我们默认初始化。类Field的作用域 > 实例Field作用域。
局部变量除了形参之外必须显式初始化(必须先给方法局部变量和代码块局部变量指定初始值)。
成员变量初始化和内存中的运行机制:
当系统加载类或创建类的实例时,系统会自动为成员变量分配内存空间,并在分配内存空间后,自动为成员变量指定初始值。
例:Person p1 = new Person();
Person p2 = new Person();
在第一次使用Person时,系统会先加载这个Person类,并初始化,但是并不会创建p1。在这个过程之后才会在栈中创建p1 、p2。
局部变量和C语言中的局部变量的性质非常相似。
若有以下3种情况应考虑用成员变量:
1、描述某个类或对象的固有信息。
2、要变量保存类或实例运行时的状态信息。
3、某个信息要在类或多个方法间共享。
1、成员变量:
i. 实例Field(不以static修饰)
ii. 类Field(以static修饰)
2、局部变量:
i. 形参(方法签名中定义的变量)
ii. 方法局部变量(在方法内定义)
iii. 代码块局部变量(在代码块内定义)
成员变量无须初始化,只要定义了类Field和实例Field,系统就会帮我们默认初始化。类Field的作用域 > 实例Field作用域。
局部变量除了形参之外必须显式初始化(必须先给方法局部变量和代码块局部变量指定初始值)。
成员变量初始化和内存中的运行机制:
当系统加载类或创建类的实例时,系统会自动为成员变量分配内存空间,并在分配内存空间后,自动为成员变量指定初始值。
例:Person p1 = new Person();
Person p2 = new Person();
在第一次使用Person时,系统会先加载这个Person类,并初始化,但是并不会创建p1。在这个过程之后才会在栈中创建p1 、p2。
局部变量和C语言中的局部变量的性质非常相似。
若有以下3种情况应考虑用成员变量:
1、描述某个类或对象的固有信息。
2、要变量保存类或实例运行时的状态信息。
3、某个信息要在类或多个方法间共享。
相关文章推荐
- java中成员变量与局部变量
- 《Java基础学习笔记》JAVA成员变量和局部变量
- java中类的成员变量和局部变量
- java程序笔试陷阱:静态代码块中变量,成员变量,局部变量的相关陷阱
- java 线程---成员变量与局部变量
- java中的成员变量与局部变量
- java面向对象(成员变量和局部变量)
- Java基础05:面向对象;类与对象;匿名对象;成员变量;局部变量;封装;构造函数
- Java 成员变量与局部变量的区别:
- java中成员变量和局部变量的区别
- java中成员变量和局部变量的区别
- Java 多线程(四) 多线程访问成员变量与局部变量
- java个人学习笔记06(类、对象、成员变量、局部变量)
- java 线程---成员变量与局部变量
- Java中的成员变量和局部变量
- JAVA学习笔记(三)成员变量、局部变量
- 详解JAVA成员变量和局部变量
- java 多线程对成员变量与局部变量的影响
- Java 多线程访问成员变量与局部变量
- 虚拟机大牛RednaxelaFX关于java里面的静态变量、成员变量、局部变量的内存分配