Java 03 – Java的关键字、标识符、常量和变量
目录
1 关键字
关键字是被Java语言赋予了特殊含义的单词, 有这些特点:
(1) 组成关键字的字母全部小写;
(2) 关键字已经被Java内部定义了, 可以直接使用;
(3) 常用的代码编辑器会对关键字作特殊的颜色标记, 非常直观.
- 关键字举例
功能描述 | 关键字 |
---|---|
定义数据类型 | class、interface、byte、short、int、long、float、double、char、boolean、void |
定义数据类型的值 | true、false、null |
定义流程控制 | if、else、switch、case、default、break、while、do、for、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 |
2 标识符
Java中, 标识符用来给包、类、方法、变量等起名字.
注意: 这里 “识” 读作 ‘zhí’, 发二声.
2.1 组成规则
由字符、下划线_、美元符$组成.
这里的字符采用的是unicode
字符集, 所以包括英文大小写字母(Java中严格区分大小写)、数字字符、中文字符等等字符;
由于编码的问题, 强烈要求: 不要使用汉字字符, 否则可能出现一系列莫名其妙的字符识别问题.
标识符的组成, 不能是:
a. 不能以数字开头;
b. 不能是Java中的关键字.
2.2 命名原则
标识符的命名要做到见名知意, 让代码做到自解释 —— 这是优秀代码的一个前提.
(1) 包名(其实就是文件夹, 用于对类文件进行分类管理):
最好是域名反过来写, 要求所有的字母小写, 多级包用英文状态下的句号
.
隔开.比如:
com.google.map
,com.healchow.test
……
(2) 类名或接口名:
如果是一个单词: 首字母要大写;
如果是多个单词: 每个单词首字母大写 —— 这是大驼峰命名法.
比如:
Fruit
,HelloWorld
……
(3) 变量名或方法名:
如果是一个单词: 全部小写;
如果是多个单词: 从第二个单词首字母大写 —— 这是小驼峰命名法.
比如:
age
,show()
,maxAge
,getAge()
……
(4) 常量名:
如果是一个单词: 所有字母大写;
如果是多个单词: 所有的字母都大写, 用下划线连接每个单词.
比如:
HOST
,MIN_INTEGER
, ……
2.3 示例代码
/**
* 这是关于标识符的测试类
* 标识符: 就是给包、类、方法、变量起名字的符号
*
* @author Heal Chow
* @date 2019/02/22 23:46
*/
public class Identifier {
public static void main(String[] args) {
// 定义变量
int a = 10;
// 正确
int b2 = 20;
// 下面这个错误: 不能以数字开头
// int 2b = 30;
// 下面这个错误: 不能是Java中的关键字
// int public = 40;
}
}
3 常量述
在程序执行的过程中, 值不会发生变化的量, 就称为常量.
3.1 常量的分类
常量类型 | 表现形式 |
---|---|
字符串常量 | 用双引号括起来的内容, 如HelloWorld |
整数常量 | 所有整数, 如 12 , -23 |
小数常量 | 所有小数, 如 12.34 |
字符常量 | 用单引号括起来的内容, 如 'a' , 'A' , '0' , '学' |
布尔常量 | 较为特殊, 只有 true 和 false |
空常量 | 只有一个, null |
3.2 示例代码
/**
* 这是关于常量的测试类
* 常量: 在程序执行的过程中, 值不可以发生改变的量
*
* @author Heal Chow
* @date 2019/02/22 00:48
*/
public class Constant {
public static void main(String[] args) {
// 字符串常量
System.out.println("HelloWorld");
// 整数常量
System.out.println(12);
System.out.println(-23);
// 小数常量
System.out.println(12.34);
// 字符常量
System.out.println('a');
System.out.println('0');
// 布尔常量
System.out.println(true);
System.out.println(false);
}
}
4 变量
与常量相反, 变量时在程序执行的过程中, 在某个范围内它的值会发生变化, 这样的量称为变量, 就是可变的量.
从本质上讲, 变量其实是内存中的一小块区域:
区域要有名称: 变量名;
区域要有限定: 通过数据类型限定区域的大小;
区域内必须有内容: 赋予初始化值.
4.1 变量的定义
(1) 变量定义格式
数据类型 变量名 = 初始化值;
关于数据类型, 请参见下一篇博客. 这里先讲基本数据类型变量的定义方法.
学习初期, 不要纠结于求大求全, 慢慢都会学到的.
(2) 基本数据类型变量的定义方式:
基本数据类型有: byte, short, int, long, float, double, char, boolean
4.2 变量的使用细节
(1) Java中的默认数据类型:
整数默认是
int
类型;定义
long
类型的数据时, 要在数据后面加L
, 大小写均可, 但我要求大写, 因为小写字母l
与数字1
非常容易混淆, 在这方面完全没必要产生bug隐患;
Java中, 浮点数默认是 double
类型, 定义float类型的数据时, 要在数据后面加F(大小写均可, 仍然推荐大写).
(2) Java中, 变量要先赋值, 再使用:
如果变量没有被赋值, 就不能直接使用.
(3) 变量的作用范围:
变量只在它所属的范围内有效 —— 变量的所属范围, 就是它所在的大括号中的范围.
另外, Java与C相同, 可以在一行定义多个变量, 但是不建议这样写, 因为降低了代码的可读性.
4.2 示例代码
/**
* 这是关于变量的测试类
* 变量: 在程序执行的过程中, 在某个范围内值会发生变化的量
*
* @author Heal Chow
* @date 2019/02/22 23:50
*/
public class Variable {
public static void main(String[] args) {
// 定义byte类型的变量
byte b = 10;
System.out.println(b);
// 定义short类型的变量
short s = 100;
System.out.println(s);
// 定义int类型的变量, 只要在使用变量之前完成赋值, 即可使用
int i;
i = 10000;
System.out.println(i);
// 同时定义多个变量, 并为它们赋值
int ia = 10, ib = 20, ic = 30;
// 定义long类型的变量
long l = 1000000000000000L;
System.out.println(l);
// 定义float类型的变量
float f = 12.34F;
System.out.println(f);
// 定义double类型的变量
double d = 12.34;
System.out.println(d);
// 定义char类型的变量
char c = 'a';
System.out.println(c);
// 定义boolean类型的变量
boolean bb = false;
System.out.println(bb);
{
int in = 100;
System.out.println(in);
}
// System.out.println(in); // 这里变量in已经不存在了
}
}
说明: 示例代码可在 我的GitHub上 查看并下载.
(全文完)
(感谢阅读, 转载请注明作者和出处 瘦风的南墙 , 请勿用于任何商业用途)