Java基础_变量类型

        在Java语言中,所有的变量在使用前必须声明。支持的变量类型有局部变量(Local Variables)、实例变量(Instance Variables)、静态变量或类变量(Class Variables)、参数变量(Parameters)及常量。

声明变量格式

// 声明三个int型整数:a、b、c
int a,b,c;         
// 声明三个整数并赋予初值
int d = 3,e = 4,f = 5; 
// 声明并初始化 zz
byte zz = 22; 
// 声明并初始化字符串ss       
String ss = "runoob";
// 声明了双精度浮点型变量 pie
double pie = 3.14159; 
// 声明变量xx的值是字符'x'
char xx = 'x'; 

变量命名规则

  • 使用有意义的名字: 变量名应该具有清晰的含义,能够准确地反映变量的用途。避免使用单个字符或无意义的缩写。
  • 驼峰命名法(Camel Case): 在变量名中使用驼峰命名法,即将每个单词的首字母大写,除了第一个单词外,其余单词的首字母都采用大写形式。
  • 避免关键字:不要使用Java关键字(例如,class、int、boolean等)作为变量名。
  • 区分大小写:Java是大小写敏感的,因此变量名中的大小写字母被视为不同的符号。
  • 不以数字开头:变量名不能以数字开头,但可以包含数字。
  • 局部变量、实例变量、静态变量、参数变量采用驼峰命名法命名。
  • 常量使用全大写字母,单词之间用下划线分隔。

局部变量

  • 局部变量的作用域限于它被声明的方法、构造方法或代码块内。一旦代码执行流程离开这个作用域,局部变量就不再可访问。
  • 局部变量的生命周期从声明时开始,到方法、构造方法或代码块执行结束时终止。之后,局部变量将被垃圾回收。
  • 局部变量在使用前必须被初始化。如果不进行初始化,编译器会报错,因为 Java 不会为局部变量提供默认值。
  • 局部变量的声明必须在方法或代码块的开始处进行。声明时可以指定数据类型,后面跟着变量名,例如:int count;。
  • 局部变量在声明后必须被赋值,才能在方法内使用。赋值可以是直接赋值,也可以是通过方法调用或表达式。
  • 局部变量不能被类的其他方法直接访问,它们只为声明它们的方法或代码块所私有。
  • 局部变量存储在 Java 虚拟机(JVM)的栈上,与存储在堆上的实例变量或对象不同。
  • 由于局部变量的生命周期严格限于方法或代码块的执行,它们在方法或代码块执行完毕后不再被引用,因此JVM的垃圾回收器会自动回收它们占用的内存。
  • 局部变量的名称可以在不同的方法或代码块中重复使用,因为它们的作用域是局部的,不会引起命名冲突。
  • 方法的参数可以视为一种特殊的局部变量,它们在方法被调用时初始化,并在方法返回后生命周期结束。

实例变量

  • 成员变量声明在一个类中,但在方法、构造方法和语句块之外。
  • 当一个对象被实例化之后,每个成员变量的值就跟着确定。
  • 成员变量在对象创建的时候创建,在对象被销毁的时候销毁。
  • 成员变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息。
  • 成员变量可以声明在使用前或者使用后。
  • 访问修饰符可以修饰成员变量, public、protected、private 或默认访问级别。
  • 成员变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把成员变量设为私有。通过使用访问修饰符可以使成员变量对子类可见。
  • 成员变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。
  • 成员变量的值可以在声明时指定,也可以在构造方法中指定;
  • 成员变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObjectReference.VariableName。

静态变量

  • 使用static关键字修饰的变量是静态变量,通常也称为类变量。
  • 静态变量是指在类中定义的一个变量,它与类相关而不是与实例相关,即无论创建多少个类实例,静态变量在内存中只有一份拷贝,被所有实例共享。
  • 静态变量类加载时被创建,在整个程序运行期间都存在,直到程序结束才会被销毁。
  • 由于静态变量是与类相关的,因此可以通过类名来访问静态变量,也可以通过实例名来访问静态变量。
  • 静态变量在类加载时被初始化,其初始化顺序与定义顺序有关。如果一个静态变量依赖于另一个静态变量,那么它必须在后面定义。
  • 静态变量的访问修饰符可以是 public、protected、private 或者默认的访问修饰符。
  • 多个线程可能同时修改静态变量,导致不确定的结果或数据一致性问题,需要采取适当的同步措施。

参数变量

  • 参数变量是指在方法或构造函数中声明的变量,用于接收传递给方法或构造函数的值。
  • 参数变量与局部变量类似,但它们只在方法或构造函数被调用时存在,并且只能在方法或构造函数内部使用。
  • 参数变量的值传递方式有两种:值传递和引用传递。
  • 值传递在方法调用时,传递的是实际参数的值的副本。当参数变量被赋予新的值时,只会修改副本的值,不会影响原始值。
  • 引用传递在方法调用时,传递的是实际参数的引用(即内存地址)。当参数变量被赋予新的值时,会修改原始值的内容。

常量

  • 使用final关键字修饰的变量是变量,常量也是与类相关的,一旦被赋值就不能再修改。
  • 与静态变量不同的是,常量在编译时就已经确定了它的值,而静态变量的值可以在运行时改变。
  • 常量通常用于存储一些固定的值,如数学常数、配置信息等,而静态变量通常用于存储可变的数据,如计数器、全局状态等。

代码演示

/**
 * 这是一个示例类,main方法执行后输出的结果为:
 * 实例变量:20
 * 静态变量:30
 * 参数变量:40
 * 局部变量:10
 * 常量:3.14
 */
public class ExampleClass {

    // 实例变量
    private int instanceVariable;
    
	// 静态变量
    private static int staticVariable;
	
	//常量
	public static final double PI = 3.14;
	
	// 示例方法传入argumentVariable参数,作为参数变量
	public void exampleMethod(int argumentVariable) {
		
		// 局部变量
		int localVariable = 10; 
		
		//为实例变量和静态变量赋值
		instanceVariable = 20;
		staticVariable = 30;
		
		//打印输出各类型变量
		System.out.println("实例变量: " + instanceVariable);
        System.out.println("静态变量: " + staticVariable);
        System.out.println("参数变量: " + argumentVariable);
        System.out.println("局部变量: " + localVariable);
		System.out.println("常量: " + PI);
	}
	
	public static void main(String[] args) {
        ExampleClass exampleclass = new ExampleClass();
        exampleclass.exampleMethod(40);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值