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 | 不是数据类型,是引用类型的特殊值,表示不引用任何对象 |
变量的定义和使用
变量是在内存中开辟一块空间,用于存储可变数值。
变量的定义语法:[数据类型] [变量名];
初始化变量的定义语法:[数据类型] [变量名] = [变量值];
同类型多个变量定义语法:[数据类型] [变量名] = [变量值],[变量名],[变量名];
变量定义说明:
- 定义变量可以不赋值,如果我们定义的时候就赋值,该值为初始值。
- 同类型定义多个变量,变量名之间用逗号
,隔开。 - 变量名也称为标识符,命名可以参考Java命名规范。
我们要使用定义好的变量,只要写定义的变量名即可获取对应的值(这里会涉及到变量作用域,先了解后面会阐述),下面演示在main方法中定义,变量只能在main方法内使用。
VarietyDemo演示类:
class VarietyDemo{
public static void main(String args[]) {
byte byteVal = 2,byNum = 7; //同类型定义多个变量并初始化值
short shortVal = 9;
int intVal; //未初始化值
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类型。
编译运行后,结果如下:

上面intVal赋值的内存图解:

常量(final修饰)的定义和使用
常量是用final修饰的变量,且一旦定义不能改变的数值为常量。
常量定义语法:[final] [数据类型] [常量名];
初始化常量定义语法:[final] [数据类型] [常量名] = [常量数值];
同类型多个常量定义语法:[final] [数据类型] [常量名] = [常量值],[常量名],[常量名];
常量定义说明:
- 定义常量可以不赋值,如果我们定义的时候就赋值,该值为初始值。
- 同类型可以定义多个常量,每个常量名用逗号
,隔开。 - 如果定义时没有赋值,一旦赋值后就不能改变。
- 常量名也称为标识符,命名规范可以参考Java命名规范。
- 其实常量也是变量,只是赋值后不能改变。
根据上面的数据类型,常量也有整数常量、小数常量、布尔常量、字符常量、字符串常量和null。
FinalDemo演示类:
class FinalDemo{
public static void main(String[] args){
final int INT_VALUE; //未初始化值
INT_VALUE = 12;
final double DOUBLE_VALUE = 3.14;
final boolean BLN_VALUE = true, FLAG = false; //定义同类型多个常量
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”
}
}
编译运行,结果如下:

注:以上定义的常量是局部常量,只能在定义的方法内使用。
错误演示代码:改变赋值后的常量
class FinalDemo{
public static void main(String[] args){
final int INT_VALUE;
INT_VALUE = 12;
System.out.println(INT_VALUE); //输出“12”
INT_VALUE = 30; //再次给INT_VALUE赋值,编译报错
System.out.println(INT_VALUE);
}
}
编译后报错如下:

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

修改FinalDemo演示类常量为静态常量:
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不能在基本类型使用
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”
}
}
编译运行,结果如下:

更多推荐


所有评论(0)