数据类型与运算符 - 变量、常量、数据类型
变量(Variables)
-
-
- 变量的本质:变量代表一个“可操作的存储空间”,空间位置、类型、大小是确定的,但空间内的值是不确定的,可以通过变量名访问“对应的储存空间”,从而操作该空间的值。
如果把“可操作的存储空间”比作“车位”,“储存空间里的数据”比作“不同品牌的车”,那“变量名”就是“车位号”,我们可以直接通过“车位号”找到这个“车位”,“车位”里停什么类型的车、车的大小、车位的位置是固定的,但车位里停什么品牌的车是随机的。 - 变量的声明:Java是一种强类型语言,每个变量都必须声明其数据类型,变量的数据类型决定了变量占据存储空间的大小(详见下方数据类型)。
变量作为程序中最基本的存储单元,其要素包括数据类型,变量名和作用域,变量在使用前必须对其“声明”,只有在变量声明以后,才能为其分配相应长度的存储空间。//声明变量格式,声明语句以分号结束 type varName [=value][,varName[=value]...]; //[]内容是可选项 数据类型 变量名 [=初始值] [,变量名 [=初始值]…]; //声明变量例子 double test; //double类型变量 test long earthPopulation; //long类型变量 earthPopulation int age,age2; //同时声明2个int类型变量 age 和 age2 int age=10, age2=12; //同时声明2个int类型变量 age 和 age2,并同时赋值 int ageTest = 18; //声明int类型的变量 ageTest 的同时初始化值(赋值),不赋值则使用默认值
- 变量的分类:
变量类型 声明位置 从属于 生命周期 局部变量(Local variables) 方法内部语句块内部 方法语句块 从声明位置开始,直到方法或语句块执行完毕,局部变量消失 成员变量(实例变量)(Member variables) 类内部方法外部 对象 对象的成员,伴随对象始终,创建对象时实例化,对象消失时跟着消失 静态变量(类变量)(Static variable) 类内部static修饰 类 类被加载,静态变量就有效;类被卸载,静态变量消失
- 变量的本质:变量代表一个“可操作的存储空间”,空间位置、类型、大小是确定的,但空间内的值是不确定的,可以通过变量名访问“对应的储存空间”,从而操作该空间的值。
- 局部变量(Local variables)
// 类Variables public class Variables{ // 方法体 main public static void main(String[] args){ int age = 10; //局部变量 age,在main方法中都可以使用 System.out.println(age); //输出局部变量 age,该变量属于该方法体,只能在方法内调用 // 语句块 { String name = "AaronHzy"; //局部变量 name,在该语句块中都可以使用 System.out.println(name); //输出局部变量 name,该变量属于该语句块,只能在语句块内调用 } } }
- 成员变量(实例变量 Member variables)
// 类Variables public class Variables{ int abc = 100; //成员变量,创建对象后都可以使用该变量 // 方法体 main public static void main(String[] args){ System.out.println(abc); //方法中输出成员变量 abc //语句块 { System.out.println(abc); //语句块中输出成员变量 abc } } }
- 静态变量(类变量 Static variable)
// 类Variables public class Variables{ static int test = 123; //静态变量,使用static修饰,仅能在类的内部使用 // 方法体 main public static void main(String[] args){ System.out.println(test); //方法中输出静态变量 test //语句块 { System.out.println(test); //语句块中输出静态变量 test } } }
-
常量(Constant)
-
- 常量的本质:常量通常指的是一个固定的值,初始化(赋值)后不可被改变,通常利用关键字“final”来定义。
// 声明常量格式,声明语句以分号结束 final type varName = value; // []内容是可选项 final 数据类型 变量名 = 初始值;
// 声明常量例子 final int age = 18; //double类型常量 age final String name = "AaronHzy"; //String类型常量 name
- 常量的本质:常量通常指的是一个固定的值,初始化(赋值)后不可被改变,通常利用关键字“final”来定义。
数据类型(Primitive Data Type)
-
- 数据类型作用:Java是一种强类型语言,每个变量都必须声明其数据类型。
- 局基本数据类型(Primitive Data Type):Java内置的数据类型,拥有六种数值类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔类型。
// 整数类型(精确的) byte a = 127; short b = 32767; int c = 2147483647; long d = 9223372036854775807L; //默认是int类型,要使用long类型需要在末尾加“<strong>L</strong>”转型 int a = 15; //十进制 int b = 015; //以0开头的是八进制 int c = 0x15; //以0x开头的是16进制 int d = 0b1101; //以0b或0B开头的是二进制
// 浮点类型(不精确的,不可直接用于比较) double a1 = 3.14D; //十进制,可以在结尾添加“D”转型到double类型,也可以不加,默认double double a2 = 300e2; //科学计数法,e2表示10^2,这里就等于300*10^2=30000 float a3 = 3.14F; //浮点常量默认是double类型,如要使用float类型必须在结尾加“F” long a4 = 9223372036854775807L; //默认是int类型,要使用long类型需要在末尾加“L”转型 // 如果一定要将浮点数进行比较,可使用 java.math包下面的两个类:BigInteger和BigDecimal // 这两个类可以处理任意长度的数值。BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点运算 BigDecimal bd = BigDecimal.valueOf(1.0); //设置bd值为0.1 bd = bd.subtract(BigDecimal.valueOf(0.1)); //bd减去0.1 bd = bd.subtract(BigDecimal.valueOf(0.1)); //bd减去0.1 bd = bd.subtract(BigDecimal.valueOf(0.1)); //bd减去0.1 bd = bd.subtract(BigDecimal.valueOf(0.1)); //bd减去0.1 bd = bd.subtract(BigDecimal.valueOf(0.1)); //bd减去0.1 System.out.println("BigInteger计算: " + bd); //输出BigInteger计算的数值 System.out.println("直接计算: " + (1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1)); //输出直接计算得出的数值,查看差异
// 字符型 char b1 = 'T'; //可使用Unicode编码支持的字符 char b2 = '中'; //可使用Unicode编码支持的字符 char b3 = '\u0061'; //也可直接使用“Unicode编码” char b4 = '\\'; //也可直接使用“转义字符”
// 布尔类型 boolean man = true; //只能为true或false,表示“真”和“假” /* 例子,判断是否为man,如果变量man为true,则输出语句“是否为男性:true” 否则,则输出语句“是否为男性:false” */ if(man){ System.out.println("是否为男性:true"); }else{ System.out.println("是否为男性:false"); }
• 引用数据类型(Reference Data Type):引用类型指向一个对象,类型有类、接口、数组等,所有引用类型的默认值都是“null”。