一、变量
-
定义:
变量是内存中的一块存储区域,用于保存数据。
-
构成:
数据类型、变量名、存储的值三部分组成。
-
注意:
java中每个变量必须先定义,后使用。
变量只在其作用域内有效,同一作用域不能有重名变量。
变量的值必须在其类型的有效范围内。
二、数据类型
1、基本数据类型
类型 | 所占内存 | |
整形 | byte(字节型) | 1字节 |
short(短整型) | 2字节 | |
int(整形) | 4字节 | |
long(长整型)(数字后加L) | 8字节 | |
浮点型 | float(单精度浮点型)(数字后加F) | 4字节 |
double(双精度浮点型) | 8字节 | |
字符型 | char | 2字节 |
布尔型 | boolean | 1位 |
这里可能对位和字节不理解,现在来说明一下。
- 位(b或bit)是内部数据存储的最小单位,10100001是一个八位二进制数
- 字节(B或byte)是是数据处理的基本单位
1B = 8b 1KB = 1024B 1M = 1024KB 1G = 1024M
由此也可以通过上面类型所占的内存大小,进行有符号的二进制数转十进制来算出他们在十进制中的数值大小范围。例如:byte类型,所占1字节->八位二进制数,转十进制范围-128——127。
关于基本数据类型的说明:
-
浮点类型
float、double的数据具有舍入误差。如果需要精确
数字计算或保留指定位数的精度,需要使用 BigDecimal类
。
System.out.println(0.1 + 0.2); //0.30000000000000004
-
char类型
1、Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他的一个字符。
2、字符型变量的三种表现形式:
形式1:使用单引号(' ')括起来的单个字符
。
例如:char c1 = 'a'; char c2 = '小'; char c3 = '2';
形式2:直接使用 Unicode值
来表示字符型常量:‘\uXXXX
’。XXXX代表一个十六进制整数。
例如:\u0023 表示 '#'。
形式3:Java中还允许使用转义字符‘\’
来将其后的字符转变为特殊字符型常量。
例如:char c3 = '\n'; // '\n'表示换行符
3、char类型是可以进行运算的。因为它都对应有Unicode码,可以看做是一个数值。
-
布尔类型
boolean类型数据只有两个值:true、false,无其它
2、引用数据类型
类(class)、数组(array)、接口(interface)、枚举(enum)、注解(annotation)、记录(record)
三、基本数据类型变量间运算规则
不同的基本数据类型(只有7种,不包含boolean类型)变量的值经常需要进行相互转换。
1、自动类型提升
规则:将取值范围小(或容量小)的类型自动提升为取值范围大(或容量大)的类型 。
注意:byte、char、short之间进行运算都会变为int类型。即便是byte和byte相同类型间运算也会变成int。
2、强类型转换
规则:将取值范围大(或容量大)的类型强制转换成取值范围小(或容量小)的类型。
格式:数据类型1 变量名 = (数据类型1)被强转数据值;
例如:byte a = (byte)5 //5默认是int类型
3、基本数据类型与String的运算
字符串类型:String
-
String不是基本数据类型,是引用数据类型
-
使用一对
""
来表示一个字符串,内部可以包含0个、1个或多个字符。
运算规则:
- 任意八种基本数据类型的数据与String类型只能进行连接“+”运算(就是拼接),且结果一定也是String类型。