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

直接看代码

public class Variable {

    // 静态变量,属于类的变量,且用关键字static声明,不属于实例,虽然可以通过实例来调用,但是不建议
    private static int staticVar;
    // 成员变量,属于类对象的变量
    private String instanceVar;

    public static void main(String[] args) {
        // 局部变量,在方法中申明的变量,不能在出了这个方法,即一对花括号{}之外  的地方使用
        // 局部变量必须手动初始化,不初始化就使用会报错
        int localVar;

        // 看看不初始化的输出情况
        // 成员变量需要通过对象调用,不初始化系统会给默认值
        String s = new Variable().instanceVar;
        System.out.println(s);

        // 静态变量不初始化系统也会给默认值
        System.out.println(staticVar);

        // 局部变量不初始化使用会报错
        System.out.println(localVar);
    }

}

原文地址:https://www.cnblogs.com/zxfei/p/10713646.html

时间: 2024-10-09 11:13:59

Java中的局部变量、成员变量和静态变量的相关文章

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

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

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

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

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

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

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

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

C++局部变量、全局变量、静态变量(堆、栈、静态存储区)

1 static关键字 1.1 隐藏 eg: //a.c文件中 char a = 'A'; void msg() { printf("Hello\n"); } //main.c文件中 extern char a; printf("%c",a); 输出结果:A Hello 所有未加static前缀的全局变量和函数都具有全局可见性,其它的源文件也能访问.a是全局变量,msg是函数,并且都没有加static前缀,因此对于另外的源文件main.c是可见的. 如果加了stat

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

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

Java中如何访问同名的方法或变量 ?

/* 类变量:又叫静态变量,这种变量属于类,通过类名就可以访问类变量. 实例变量:属于类的实例即对象,通过对象可以访问实例变量,但是不能通过类名访问实例变量. 静态方法:方法属于类,通过对象访问实例方法,不能通过类名访问实例方法. 隐藏:B隐藏了A的变量或者方法,那么,B不能访问A被隐藏的变量或方法,但是,将B转换成A后,可以访问A被隐藏的变量或方法. 覆盖:B覆盖了A的变量或者方法,那么,B不能够访问A被覆盖的变量或方法,将B转换成A后,同样不能访问A被覆盖的变量或方法. Java中方法和变量

java中c#中statc 静态调用不同之处、c#的静态构造函数和java中的构造代码块、静态代码块

1.java和c#静态成员调用的不同之处 static 表示静态的,也就是共享资源,它是在类加载的时候就创建了 java中   可以通过实例来调用,也可以通过类名.成员名来调用,但是一般最好使用类名.成员这个方式,因为静态成员是属于类的,并不是属于具体的对象 c#中     只能通过类名.成员调用,并不能 用实例来进行调用 2.c#的静态构造函数和java中的构造代码块.静态代码块 c# 静态构造函数的特点:        1)静态构造函数不需要手动调用,系统自动调用        2)静态构造

java基础(static---静态方法和静态变量以及静态方法)

静态变量 static变量也称作静态变量,静态变量和非静态变量的区别是: 静态变量:静态变量被类中所有的对象所共享,它将变量值存储在一个公共的内存地址,因为地址公共,所以如果某个对象修改了静态变量的值,那么同一个类的所有对象都会受到影响. 非静态变量:非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响. 静态方法 静态变量和方法可以在不创建对象的情况下进行访问. 静态方法与实例方法的区别: 静态方法:静态方法会随着类的定义而被分配和装载入内存中.静态方法