java基础06_常量和变量

文章目录

Java的数据类型(了解)

在定义常量和变量之前,我们首先了解有哪些数据类型。Java是强类型语言,对于每一种数据都定义了明确的数据类型。

  • 基本数据类型:整数、小数、布尔、字符。
  • 引用数据类型:class(类)、interface(接口)、数组、Enum(枚举)。
  • String:字符串。
  • null:为除基本类型以外的类型赋值。

基本类型和其他如下表格:

类型 关键字 说明
整数 byte 8位有符号整数,范围:-128 到 127
short 16位有符号整数,范围:-32,768 到 32,767
int 32位有符号整数,范围:-2³¹ 到 2³¹-1
long 64位有符号整数,范围:-2⁶³ 到 2⁶³-1
小数 float 单精度32位浮点数
double 双精度64位浮点数
布尔 boolean 逻辑类型,只有 true 和 false 两个值
字符 char 16位Unicode字符,范围:'\u0000' 到 '\uffff'
字符串 String 字符序列,是类不是基本数据类型
null null 不是数据类型,是引用类型的特殊值,表示不引用任何对象

变量

变量是在内存中开辟一块空间,用于存储可变数值。

变量定义语法:[数据类型] [变量名(标识符)] = [变量数值];

VarietyDemo类中定义变量:

java 复制代码
public class VarietyDemo{
	public static void main(String args[]) {
		byte byteVal = 2;
		short shortVal = 9;
		int intVal = 10;
		long longVal = 666L;
		float floatVal = 3.3F;
		double doubleVal = 3.1415926;
		boolean blnVal = true;
		char charVal = 'a';
		String strVal = "hhhhh";
		System.out.println(intVal); //输出intVal的值
		intVal = 110; //修改intVal的值
		System.out.println(intVal); //再次输出intVal的值
	}
}

注意:float类型值后面要加 F(不区分大小写),long类型值后面要加 L(不区分大小写),整数默认是Int类型,小数默认是double类型。

编译运行后,结果如下:

常量(final修饰)

常量是用final修饰的变量,且一旦定义不能改变的数值为常量。

定义语法:[final] [数据类型] [常量名(标识符)] = [常量数值];

注:常量命名请遵循Java命名规范,不推荐随便命名,最好见名知意。

根据上面的数据类型,常量也有整数常量、小数常量、布尔常量、字符常量、字符串常量和null。

定义FinalDemo类:

java 复制代码
public class FinalDemo{
	public static void main(String[] args){
		final int INT_VALUE = 12;
		final double DOUBLE_VALUE = 3.14;
		final boolean BLN_VALUE = true;
		final char CHAR_VALUE = 'A';
		final String STR_VALUE = "我爱Java";
		//null不能在基本类型使用
		final String NULL_VALUE = null;
		System.out.println(INT_VALUE); //输出"12"
		System.out.println(DOUBLE_VALUE ); //输出"3.14"
		System.out.println(BLN_VALUE ); //输出"true"
		System.out.println(CHAR_VALUE ); //输出"A"
		System.out.println(STR_VALUE); //输出"我爱Java"
		System.out.println(NULL_VALUE); //输出"null"
	}
}

编译运行,结果如下:

注:以上定义的常量是局部常量,只能在定义的方法内使用。

如果定义的常量在main方法外,编译运行,提示"无法从静态上下文中引用非静态变量STR_VALUE",因为main方法是static修饰的静态方法(后面会学到这里先不过多阐述),我们可以定义的常量都用static修饰,变成静态常量 ,或者定义成局部常量 (在main方法内定义常量)。

修改FinalDemo常量为静态常量:

java 复制代码
public class FinalDemo{
	static final int INT_VALUE = 12;
	static final double DOUBLE_VALUE = 3.14;
	static final boolean BLN_VALUE = true;
	static final char CHAR_VALUE = 'A';
	static final String STR_VALUE = "我爱Java";
	//null不能在基本类型使用
	public static final String NULL_VALUE = null;

	public static void main(String[] args){
		System.out.println(INT_VALUE); //输出"12"
		System.out.println(DOUBLE_VALUE ); //输出"3.14"
		System.out.println(BLN_VALUE ); //输出"true"
		System.out.println(CHAR_VALUE ); //输出"A"
		System.out.println(STR_VALUE); //输出"我爱Java"
		System.out.println(NULL_VALUE); //输出"null"
	}
}

说明:public权限修饰符、static静态修饰符、final修饰符三者之间编写上没有先后顺序,只要都在数值类型关键字之前都可以,我习惯public static final这种,更直观。

编译运行,结果如下: