二、Java基本语法(一)——变量
1、关键字和保留字
1.1、关键字(keyword)
- 定义: 被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
- 特点: 关键字中所有字母都为小写
- 官方地址: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
- 关键字列表:
定义 | 关键字 |
---|---|
定义数据类型 | class, interface, enum, byte, short, int, long, float, double, char, boolean, void |
定义流程控制 | if, else, switch, case, default, while, do, for, break, continue, return |
定义访问权限修饰符 | private, protected, public |
定义类,函数,变量修饰符 | abstract, final, static, synchronized |
定义类与类之间关系 | extends, implements |
定义建立实例及引用实例 | new, this, super, instanceof |
用于异常处理 | try, catch, finally, throw, throws |
用于包 | package, import |
其他修饰符 | native, strictfp, transient, volatile, assert |
定义数据类型值的字面值 | true, false, null |
1.2、保留字(reserved word)
现有Java版本尚未使用, 但以后版本可能会作为关键字使用:goto 、 const。
注意:自己命名标识符时要避免使用这些保留字。
2、标识符(Identifier)
- 标识符:
- Java 对各种变量、 方法和类等要素命名时使用的字符序列(字符串)称为标识符。
- 技巧:凡是自己可以起名字的地方都叫标识符。
比如:类名、变量名、方法名、接口名、包名…
- 定义合法标识符规则(必须不遵守,否则编译不通过):
- 由26个英文字母大小写, 0-9 , _或 $ 组成
- 数字不可以开头。
- 不可以使用关键字和保留字,但能包含关键字和保留字。
- Java中严格区分大小写,长度无限制。
- 标识符不能包含空格。
- 名称命名规范(不影响编译,但建议遵守):
- 包名:多单词组成时所有字母都小写: xxxyyyzzz
- 类名、接口名:多单词组成时,所有单词的首字母大写: XxxYyyZzz
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写: xxxYyyZzz
- 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
- 注意:
- 为了提高阅读性,要尽量有意义,“见名知意”。
- java采用unicode字符集,标识符也可以使用汉字声明,但是不建议使用。
3、变 量(variable)
3.1、变量的定义
- 变量的概念:
- 内存中的一个存储区域;
- 该区域的数据可以在同一类型范围内不断变化;
- 变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值;
- 变量的作用:
- 用于在内存中保存数据;
- 使用变量注意:
- 变量必须先声明,后使用;
- 使用变量名来访问这块区域的数据;
- 变量的作用域:其定义所在的一对{ }内;
- 变量只有在其作用域内才有效;
- 同一个作用域内,不能定义重名的变量;
- 定义变量的格式:
- 声明并赋值:<数据类型> <变量名> = <初始化值>
- 先声明再赋值:
声明变量:<数据类型> <变量名称>
变量的赋值:<变量名称> = <值>
public class Test{
public static void main(String[] args){
//声明并赋值
int mynumber = 1001;
System.out.println(mynumber);
//先声明再赋值
int mynumber2;
mynumber2 = 1002;
System.out.println(mynumber2);
//可以使用汉字声明,但不建议
//int 学号 = 1003;
//System.out.println(学号);
}
}
3.2、变量的分类
- 按数据类型:
每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间。
- 按声明的位置:
- 成员变量:在方法体外,类体内声明的变量。
- 局部变量:在方法体内部声明的变量。
- 注意:二者在初始化值方面的异同:
同: 都有生命周期
异: 局部变量除形参外,需显式初始化。