局部变量、实例变量和静态变量的区别

实例变量:

也叫对象变量、类成员变量;从属于类由类生成对象时,才分配存储空间,各对象间的实例变量互不干扰,能经过对象的引用来访问实例变量。但在Java多线程中,实例变量是多个线程共享资源,要注意同步访问时可能出现的问题。bash

public class Demo {  
    //如下都是实例变量(成员变量、对象变量)  
    private String nameString;  
    public int age;  
    protected int priority;  
    //实例方法  
    public String getNameString(){  
        return this.nameString;  
    }  
}
复制代码

类变量:

也叫静态变量,是一种比较特殊的实例变量,用static关键字修饰;一个类的静态变量,全部由这类生成的对象都共用这个类变量,类装载时就分配存储空间。一个对象修改了变量,则因此对象中这个变量的值都会发生改变。多线程

public class Demo {  
    //类变量(静态变量)  
    public static int a = 0;  
    //实例变量  
    private String nameString;  
}
复制代码

局部变量:

方法中或者某局部块中声明定义的变量或方法的参数被称为局部变量,他们只存在于建立他们的block里({}之间)没法在block外进行任何操做,如读取、赋值。在Java多线程中,每一个线程都复制一份局部变量,可防止某些同步问题发生。ui

public static int a = 0;  
    //实例变量  
    private String nameString;  
      
    public void test(){  
        //局部变量  
        int temp = 1;  
        System.out.println(temp);  
    }
复制代码
相关文章
相关标签/搜索