全局变量、局部变量、实例变量以及静态变量的区别

全局变量(globals): 也称为成员变量,属于某个类中定义的变量。在整个类中有效。

可分为:

(1).类变量:又称静态变量,用static 修饰,可直接用类名调用,所有对象的同一个类变量都是共享同一块内存空间的。

(2).实例变量:不用static修饰, 它只能通过对象调用 ,所有对象的同一个实例变量是共享不同的内存空间的.

局部变量(Local variables):是指那些在方法体中定义的变量以及方法的参数,它只在定义它的方法内有效。是相对于全局变量而言的。

当全局变量与局部变量同名时:

在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

注:在Java等面向对象语言中,也可能出现多个局部变量重名的情况。例如一个方法的形式参数与类成员的名字相同,这时形式参数会把类成员屏蔽,如果要访问类成员,应该用this关键字。

时间: 2024-08-09 02:20:40

全局变量、局部变量、实例变量以及静态变量的区别的相关文章

JVM存储位置分配——java中局部变量、实例变量和静态变量在方法区、栈内存、堆内存中的分配

Java中的变量根据不同的标准可以分为两类,以其引用的数据类型的不同来划分可分为“原始数据类型变量和引用数据类型变量”,以其作用范围的不同来区分可分为“局部变量,实例变量和静态变量”. 根据“Java中的变量与数据类型”中的介绍,“变量是在内存中分配的保留区域的名称.换句话说,它是一个内存位置的名称”,也就是说我们通过这个变量名字就可以找到一个指向这个变量所引用的数据的内存指针,根据变量的类型我们可以知道这个指针之后的几个字节里存储了这个变量所引用的数据. 所以,了解变量在方法区.栈内存.堆内存

成员变量、局部变量、差异和静态变量

在堆栈区成员变量,自属于所述对象的部分成员.对象是成对分配 局部变量被分配在占,引用的对象被分配在栈上 静态变量被分配在静态区域中的方法区 1:成员变量和局部变量之间的差 (1)在类中的位置不同 成员变量:类中方法外 局部变量:方法定义中或者方法声明上 (2)在内存中的位置不同 成员变量:在堆中 局部变量:在栈中 (3)生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在.随着方法的调用完成而消失 (4)初始化值不同 成员变量:有默认值 局部变量:没

JNI/NDK开发指南(七)——C/C++访问Java实例变量和静态变量

转载请注明出处:http://blog.csdn.net/xyang81/article/details/42836783 在上一章中我们学习到了如何在本地代码中访问任意Java类中的静态方法和实例方法,本章我们也通过一个示例来学习Java中的实例变量和静态变量,在本地代码中如何来访问和修改.静态变量也称为类变量(属性),在所有实例对象中共享同一份数据,可以直接通过[类名.变量名]来访问.实例变量也称为成员变量(属性),每个实例都拥有一份实例变量数据的拷贝,它们之间修改后的数据互不影响.下面看一

[javase学习笔记]-8.2 成员变量与静态变量的差别

这一节我们看一看成员变量与静态变量的差别所在. 什么是静态变量呢?我们上节用statickeyword时就提到了静态变量.也就是说用statickeyword修饰的变量就是静态变量. 我们在6.4节学习了成员变量与局部变量的差别.这一节我们重点看看成员变量与静态变量之间的差别. 我们看代码: class Person { String name;//姓名,这是一个成员变量 static String country = "中国";//国籍,这是一个静态变量 public void pr

面向对象——概念(成员变量、静态变量、成员方法、静态方法、垃圾回收机制、重载、包)

静态变量和成员变量的区别: 1.成员变量描述的是对象的特征,包含在对象之中.不同的对象成员变量彼此独立.一个对象成员变量的改变,不会影响其他对象. 静态变量独立在对象之外,是所有对象共享的变量.静态变量改变后会影响所有对象. 2.成员变量只能通过对象.的方式访问.而静态变量,可以通过对象.的方式访问,也可以通过类名.的方式访问.所以静态变量也称为类变量 3.成员变量存放在堆空间中,静态变量存放在数据段中. 静态方法和成员方法的区别: 1.静态方法加载时机在对象之前,可以通过对象.和类名.的方式访

Java中的局部变量、成员变量和静态变量

直接看代码 public class Variable { // 静态变量,属于类的变量,且用关键字static声明,不属于实例,虽然可以通过实例来调用,但是不建议 private static int staticVar; // 成员变量,属于类对象的变量 private String instanceVar; public static void main(String[] args) { // 局部变量,在方法中申明的变量,不能在出了这个方法,即一对花括号{}之外 的地方使用 // 局部变

android中少用静态变量(android静态变量static生命周期)

在android中,要少用静态变量. 我现在做的一个应用中,之前的开发人员使用静态变量来存储cookie,这个全局的静态变量用来验证身份. 这时客户反应,应用长时间不使用,再次使用,会提示身份过期. 后来经查,问题基本确定在静态变量上. 上stackoverflow查了android中static变量的生命周期,有人这么说 Lifetime of a static variable: A static variable comes into existence when a class is l

变量,final常量,类成员变量,static关键字,实例变量,静态变量,局部变量

1.常量:又称为final变量,在整个程序中仅能被赋值一次 final int num = 1215; num = 1216; // 错误,仅能赋值一次 2.类成员变量:不在方法中定义的变量即为成员变量,在方法体内定义的变量则为局部变量 成员变量含义:对象的属性 public class Book{ int id; string name; //两个成员变量 public String getName(){ int id = 0;  //局部变量,必须进行赋值或初始化 } } 3.static关

C中什么情况下把局部变量定义为局部静态变量

首先要说明,数组不是变量:C中称它是具有相同类型元素的集合,严格说来它是一种简单的数据结构--这是题外话.定义在函数中的自动型(就是不用static修饰)数组,函数被调用时才创建,而函数结束后就自动销毁了,那么函数执行过程中对它的操作就白费了.定义成static型后,编译时就为其分配内存空间并永久性保留着,直到程序结束,函数对它的操作就不会丢失了.知道这个原理后,也就知道并不是函数中的数组都得定义成static型,比如操作结果是在屏幕上显示数组内容,那在函数里作显示,这就不必用static了--