变量声明
-
变量声明格式
type varName [=value] [,varName[=value]…]数据类型 变量名 [=初始值] [,变量名 [=初始值]…];
注:[] 中的内容为可选项,可有可无
# 数据类型 变量名 [=初始值] [,变量名 [=初始值]…] int age = 18;
-
如果只定义一个变量,没有赋值,那么这个变量相当于没有定义,编译时会忽略该变量如果只定义一个变量,没有赋值,那么这个变量相当于没有定义,编译时会忽略该变量
-
不可重复定义
Java关键字
所有标识符(即变量名)不允许使用Java关键字,标识符包含包、类、变量、方法等所有可以起名的地方。
官网:关键字列表
常量
利用 final 修饰符定义一个的变量将使其变为常量,一旦初始化后不允许修改。
变量作用域
作用域指的就是作用范围,变量在什么范围中有效
作用范围就是离它最近的{}
数据类型
分类 | 类型 | 变量分类 | 变量类型 | 存储空间(字节) | 取值范围 | 默认值 |
---|---|---|---|---|---|---|
基本类型 | 数值型 | 整型 | byte | 1 | -128 ~ 127 | 0 |
short | 2 | -32768 ~ 32767 | 0 | |||
int | 4 | -2147483648 ~ 2147483647 | 0 | |||
long | 8 | 负2的63次方 ~ 2的63次方 - 1 | 0 | |||
浮点类型 | float | 4 | ±3.40282347E + 38F (有效位数6-7位) | 0.0 | ||
double | 8 | ±1.79769313486231570E + 308(有效位数15-16位) | 0.0 | |||
字符型 | char | 2 | 表示在Unicode编码表中的字符的单个字符 | ‘\u0000’ | ||
布尔型 | boolean | 理论:1/8字节 数组:1字节 单独使用:4字节(当做int处理) | false | |||
引用类型 | 类 | null | ||||
接口 | null | |||||
数组 | null |
有效数字指的是从左开始第一个不为0的数到最后一个数
变量使用规则
public class VariableTest {
public static void main(String[] args) {
// 注意:整数型默认为int类型
// 默认情况赋值是十进制
int number10 = 12;
System.out.println("十进制12:\t" + number10);
// 前面加上0, 值就是八进制
int number8 = 012;
System.out.println("八进制12:\t" + number8);
// 前面加上0x或0X, 值就是十六进制
int number16 = 0x12;
System.out.println("十六进制12:\t" + number16);
// 前面加上0b或0B, 这个值就是二进制
int number2 = 0b10;
System.out.println("二进制10:\t" + number2);
// 浮点类型常量 - 十进制形式
float decimal4 = 3.14F;
System.out.println("浮点类型常量 - 十进制形式:\t" + decimal4);
// 浮点类型常量 - 科学计数法形式
double decimal8 = 314E-2;
System.out.println("浮点类型常量 - 科学计数法形式:\t" + decimal8);
// 注意:浮点型默认为double类型, 定义float类型必须在后面加上f或F
float floatDecimal = 3.1415926F;
System.out.println("浮点类型变量 - float:\t" + floatDecimal);
// double类型后面可以加d或者D, 一般都省略不写
double doubleDecimal = 2.0220411;
System.out.println("浮点类型变量 - double:\t" + doubleDecimal);
// 浮点类型有精度问题不要直接比较,浮点数的判断相等,通过两数相减 小于某个范围即可
if (decimal4 == decimal8) {
System.out.println("decimal4 变量 与 decimal8 变量相等");
} else {
System.out.println("decimal4 变量 与 decimal8 变量不相等");
}
// 定义字符类型变量
// java中: 字母、数字、符号、中文都是字符类型常量,都占2字节
char charVal1 = 'a';
System.out.println("字符型变量:\t" + charVal1);
// 字符类型计算时使用Unicode编码进行计算
char charVal2 = '满';
System.out.println("字符变量【满】输出:\t" + charVal2);
// 字符类型加法运算
System.out.println("字符变量【满】 + 99 输出:\t" + (charVal2 + 99));
// 定义布尔变量
boolean booleanTrue = true;
System.out.println("布尔型变量true:\t" + booleanTrue);
boolean booleanFlase = false;
System.out.println("布尔型变量flase:\t" + booleanFlase);
}
}
运行结果
$ java VariableTest [16:15:02]
十进制12: 12
八进制12: 10
十六进制12: 18
二进制10: 2
浮点类型常量 - 十进制形式: 3.14
浮点类型常量 - 科学计数法形式: 3.14
浮点类型变量 - float: 3.1415925
浮点类型变量 - double: 2.0220411
decimal4 变量 与 decimal8 变量不相等
字符型变量: a
字符变量【满】输出: 满
字符变量【满】 + 99 输出: 28484
布尔型变量true: true
布尔型变量flase: false
类型自动转换
类型级别
byte > short > char > int > long > float > double
当表达式中有多种数据类型,所有类型先转换为其中最高级别的类型,再进行计算
转换规则
情况 | 规则 |
---|---|
左 = 右 | 直接赋值 |
左 < 右 | 强转 |
左 > 右 | 直接自动转换 |
public class VariableAutoChange {
public static void main(String[] args) {
// 转换的方式-自动转换 int => double
double doubleVar1 = 9;
System.out.println("int类型值9自动转换为double类型,输出:\t" + doubleVar1);
// 转换的方式-强制转换
int intVar2 = (int)9.9;
System.out.println("double类型值9,9强制转换为int类型,输出:\t" + intVar2);
// 自动转换级别(从低到高)
// byte > short > char > int > long > float > double
// 当表达式中有多种数据类型,所有类型先转换为其中最高级别的类型,再进行计算
double doubleVar2 = 2022 + 4.11 + 9.9f + 'Q';
System.out.println("多数据类型表达式类型自动转换,输出:\t" + doubleVar2);
}
}
运行结果
$ java VariableAutoChange [16:31:14]
int类型值9自动转换为double类型,输出: 9.0
double类型值9,9强制转换为int类型,输出: 9
多数据类型表达式类型自动转换,输出: 2117.00999961853
系列文章
上一篇:【Java基础(二)】Java安装与运行
下一篇:【Java基础(四)】运算符