Java变量类型

Java变量类型

  • 局部变量(local variable)

  1. 局部变量声明在方法、构造方法或者语句块中;
  2. 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
  3. 访问修饰符(public ,protect,default,private)不能用于修饰局部变量;
  4. 局部变量只在声明它的方法、构造方法或者语句块中可见;
  5. 局部变量是在栈上分配的。
  6. 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
public class LocalVariable{
    public static void main(String[] args){
        int age = 18;
        String name = "琼宝宝";
        String time = "永远";
        System.out.println(name+time+age+"岁!");
    }
}
//该例子中的age,name, time 都是局部变量

  • 实例变量(成员变量member variable)

    0.实例变量不能用static修饰!!!

    1.实例变量声明在一个类中,但在方法、构造方法和语句块之外.

    2.当一个对象被实例化之后,每个实例变量的值就跟着确定.

    3.实例变量在对象创建的时候创建,在对象被销毁的时候销毁.

    4.实例变量的值应该至少被一个方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息.

    5.实例变量可以在使用的时候再动态赋值.

    6.访问修饰符(public ,protect,default,private)可以修饰实例变量;

    7.实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用 访问修饰符可以使实例变量对子类可见;

    8.实例变量具有默认值,数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是 null。


    public class MemberVariable{
        int age;	  //成员变量会被自动初始化,不需要定义的时候赋值
        String name;  //不能用static来修饰
        String time;
        
    	public static void main(String[] args){
            MemberVariable baby = new MemberVariable();
            baby.age = 18;
            baby.name = '琼宝宝';
            baby.time = '永远';
            System.out.println(baby.name+baby.time+baby.age+"岁!!");
            
        }
    }
    

  • 静态变量(static  variable  又叫类变量)

    0.静态变量在类被加载的时候,一起加载带静态内存中。

    1.静态变量在类中以 static 关键字声明,但必须在方法之外。

    2.静态变量可以被所有的实例对象共享。

    3.静态变量除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量

    5.静态变量在第一次被访问时创建,在程序结束时销毁,其生命周期和类相同。

    public class StaticVariable{
        static String name;
        static String job;
        
        public void study(){
            name = "琼宝宝";
            job = "好孩子";
            System.out.println(name+"是一个爱学习的"+job);
        }
        
        public static void main(String[] args){
            StaticVariable baby = new StaticVariable();
            baby.study();
        }
    }
    

总结

.局部变量作用范围最小,生命周期最短。
.成员变量和静态变量很类似,只是前者不能用static修饰,在创建对象的时候初始化。
.静态变量从属于类,随着类的加载被同时加载进入静态区,生命周期取决于类的生命周期,可以被所有实例共享.
原文地址:https://www.cnblogs.com/coding-996/p/12000248.html