1.变量
变量指的是程序运行时可变的量,相当于开辟一段内存空间来保存一些数据。
1.1整型变量int
代码示例:
int a = 20;//定义一个整型变量a,并赋初值20
一个int变量占4个字节。
1.2长整型变量long
代码示例:
long a = 10L;//定义一个长整型变量,赋初值10L
- 初始化设定的值为10L,表示一个长整型的数字。写为10l也可以。(L:大写字母;l:小写字母)
- Java中long类型占8个字节。
1.3双精度浮点型变量double
代码示例:
double a = 2.0;//定义一个双精度浮点型变量a,并赋初值2.0
1/2 = 0.5,此处得到的结果0.5需要用double类型计算。如果用int类型,会直接舍去。
double a = 1.0;
double b = 2.0;
System.out.println(a/b);
//运行结果
0.5
- double变量占8个字节,但是浮点数的内存布局和整数差别很大,不能单纯的用2^n的形式表示数据范围。
1.4单精度浮点型变量float
代码示例:
float a = 1.0F;//定义一个单精度浮点型变量a,赋初值1.0
- 此处的1.0F写为1.0f也可以。
- Java中单精度浮点型变量占4个字节。
- 在工程中需要用到浮点数,优先考虑double。
1.5字符类型变量char
代码示例:
char str = 'A';//定义一个值为A的字符类型变量
- Java中使用单引号+单个字母的形式表示字符字面值。
- 计算机中的字符本质上是一个整数。在C语言中用ASCII码表示字符,而在Java中使用Unicode表示字符。一个字符占用两个字节。
1.6字节类型变量byte
代码示例:
byte a = 0;//定义一个值为0的字节变量a
- 字节类型表示的也是整数,因为只占用一个字节,因此只能表示(-128~127)的范围。
- 字节类型和字符串类型互不相干。
1.7短整型类型变量short
代码示例:
short a = 0;//定义一个值为0的短整型变量a
- short占用2个字节。
1.8布尔类型变量boolean
代码示例:
boolean a = true;
boolean b = false;//定义两个布尔类型变量a和b,分别赋初值true,false
- boolean类型的变量只有两种取值true和false,即真和假。
- Java的boolean类型和int类型不能相互转换,不存在1表示true,0表示false。
- boolean类型有些JVM的实现是占用1个字节,有些占用2个字节,没有明确规定。
1.9字符串类型变量String
代码示例:
String str = "ZhongGuo";//定义一个字符串变量str,赋初值ZhongGuo
- Java使用双引号+若干字符表示字符串字面值。
- String不是基本类型,而是引用类型
- 字符串中一些特定的不太方便直接表达的字符需要进行转义。
2常量
常量指的是运行时类型和数据不能发生改变。
2.1字面值常量
10 // int 字面值常量(十进制)
010 // int 字面值常量(八进制) 由数字 0 开头. 010 也就是十进制的 8
0x10 // int 字面值常量(十六进制) 由数字 0x 开头. 0x10 也就是十进制的 16
10L // long 字面值常量. 也可以写作 10l (小写的L)
1.0 // double 字面值常量. 也可以写作 1.0d 或者 1.0D
1.5e2 // double 字面值常量. 科学计数法表示. 相当于 1.5 * 10^2
1.0f // float 字面值常量, 也可以写作 1.0F
true // boolen 字面值常量, 同样的还有 false
'a' // char 字面值常量, 单引号中只能有一个字符
"abc" // String 字面值常量, 双引号中可以有多个字符.
2.2final关键字修饰的常量
代码示例:
final a = 20;
a = 30;//编译出错,提示 无法为最终变量a赋值
- 当程序运行到第一行,已经将a这个量用具体的数据20代替了,也就是说,第一行执行完毕已经不存在a了。执行到第二句时,进行赋值时因为a已经是一个具体数据20了,所以无法再给他赋值。
- 常量在程序执行过程中不可被修改。
- 常量+常量=常量
- 常量+变量=变量
- 变量+变量=变量