1. 关键字和保留字
关键字
保留字
2. 标识符及命名规则
2.1 标识符
凡是可以起名的地方就叫标识符
比如:类名、变量名、方法名、接口名、包名...
2.2 命名规则
① 由英文字母大小写,数字,下划线_
,$
组成
② 数字不能开头
③ 不能使用关键字和保留字,但能包含关键字和保留字
④ 严格区分大小写,长度无限制
⑤ 不能含空格
2.3 命名规范
- 包名(xxxyyyzzz):多单词组成时所有字母小写
- 类名、接口名(XxxYyyZzz):多单词组成,所有单词的首字母大写
- 变量名、方法名(xxxYyyZzz):多单词组成则第一个单词首字母小写,第二个单词开始首字母大写
- 常量名(XXX_YYY_ZZZ):所有字母都大写,多单词组成用下划线连接
2.4 注意
- 起名做到 见名知意
- java采用unicode字符集,可用汉字命名但是不推荐!
3. 变量
3.1 变量声明与定义
① 变量声明
datatype variable;
② 变量的定义
datatype variable = value;
3.2 注意
- 变量必须先声明后使用
- 不要声明不使用的变量
- 变量的作用域,其定义所在的一对
{}
内 - 变量只有在其作用域内才有效
- 同一个作用域内,不能定义重名的变量
3.3 变量的分类
1. 按照数据类型分类
- 基本数据类型
- 整型:
byte / short / int / long
- 浮点型:
float / double
- 字符型:
char
- 布尔型:
`boolean
- 整型:
- 引用数据类型
- 类(class)
- 接口(interface)
- 数组(array)
2. 变量在类中声明的位置
成员变量 VS 局部变量
3.4 整型变量
类型 | 占用存储空间 | 表数范围 |
---|---|---|
byte | 1byte=8bit | -128~127 |
short | 2个字节 | -2^15^ ~ 2^15^ -1 |
int | 4字节 | -2^31^ ~ 2^31^ -1 |
long | 8字节 | -2^63^ ~ 2^63^ -1 |
注意:
① byte范围
② 声明 long 型变量必须以 l
或者 L
结尾
③ 声明整型变量通常使用 int
3.5 浮点型
类型 | 占用存储空间 | 表数范围 |
---|---|---|
单精度 float | 4字节 | |
双精度 double | 8字节 |
注意:
① 浮点型表示带小数点的数值
② float 表示数值范围比 long 还大
③ 定义 float类型数据时,变量以 f
/F
结尾
④ 通常定义浮点型变量使用 double
3.6 字符型 char
1字符 = 2字节
① 定义char型变量,通常使用一对单引号 ''
,内部只能有一个字符
char c = ''
(编译报错)
② 表示方式:
- 单引号括起来的单个字符
- 转义字符
\n
,\t
,\\
,\"
,\'
,\r
,\b
- Unicode值表示法
3.7 布尔型 boolean
① 布尔值只有两个:true
、false
② 常用于条件判断、循环结构
3.7 自动类型转换
只讨论7种基本数据类型变量间的运算,不包含 boolean 类型。
自动类型提升
当容量小的数据类型的变量与容量大的数据类型变量做运算时,结果自动提升为容量大的数据类型(容量是指数的范围大小)
byte 、char、short --> int --> long --> float --> double
特别的,当 byte,char,short
三种类型数据之间做运算,结果为 int
类型
(包括这三种同种类型之间的运算)
java在做运算时,若操作数均在 int范围内,那么一律在 int 的空间内运算
byte b1 = 1;
byte b2 = 2;
short s1 = b1 + b2; // 编译不通过
3.8 强制类型转换
强制类型转换: 自动类型提升运算的逆运算。
① 需要使用强转符 ()
② 公式:(type)value
③ 强制类型转换可能导致精度损失
int a = (int)3.14
④ boolean
类型与8种基本数据类型均不能转换
3.9 类型转换的特殊情况
① 定义 long 型不加 L
,若其值在 int型范围内则编译通过,若不在则编译失败;定义 float 型不加 f
,编译直接编译报错。
② 整型常量的默认类型是 int 型;浮点型常量默认是double型。
3.10 String类型
① String属于引用数据类型
② 声明 String 类型变量使用一对双引号 ""
③ String 可以和 8 种基本数据类型变量做运算,且运算只能是连接运算 +
,运算结果仍是 String 类型。
④ 数字类型转字符串:String valueString = String.valueOf(value)