变量学习

声明规则

<数据类型> <变量名称>;
<数据类型> <变量名称> = <赋值>;

变量的声明

int a = 1;
long b = 2;
float c = 0.01f;
double d = 11.11d;
String s = "hello world";
int e,f = a;

一般long、float、double数据类型直接赋值的话一般会在尾部添加标识l、f、d。

User user = new User();
String str = new String("hello world");
int[] arr = new int[5];
long[] longArr = {1, 2, 4, 5};

引用数据类型的变量声明一般是使用new关键字赋值。

变量的作用域

类/实例变量

public class User{
  	private int id; //private声明的变量为私有变量,正常情况下不可直接访问
  	private static long avg; // static声明为静态变量,私有静态变量只有本类静态方法可访问
  	public float sort; //public声明为公共变量,正常情况下本类实例可直接访问
  	public static String name; //声明为公共静态变量,其他类可以直接访问
  	protected byte six; //protected可声明为受保护的变量,本类实例和子类实例可直接访问
}

类中变量的声明一般会添加privatepublicprotectedfinalstatic等关键字,类变量的作用域一般是这个类所有的方法

  • private:声明为私有变量
  • public:声明为公共变量
  • protected:声明为受保护的变量,一般用于给子类共享
  • final:声明不可修改变量,final声明的变量只有一次赋值机会
  • static:声明静态变量,static变量只有static声明的方法可访问,不需要实例就可访问

类中变量中有static的也可称为静态变量,没有static的称为实例变量

静态变量:

  • 被static修饰
  • 可直接访问
  • 在类第一次被访问时创建,程序结束时销毁

实例变量:

  • 在创建实例时创建,实例销毁时销毁
  • 类实例可访问

局部变量

局部变量一般指方法内声明的变量,只作用与本方法内,方法外,其他方法不可访问。

public void demo(){
  	int b = 1;
  	int c = b;
}
  • 局部变量在声明时必须赋值
  • 局部变量仅在方法内生效
  • 局部变量分配在栈上
  • 方法执行完即销毁