Java学习之路——基础知识

Java学习之路——基础知识

一、标识符

1. 什么是标识符?

标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。

2. 标识符的命名规则

在 Java程序中,标识符命名存在着以下规则,若不遵守这些规则,编译器会报错:

  1. 只能以 数字、字母、_和$ 进行命名(一般而言不使用 $ 进行命名);
  2. 标识符不能以数字开头
  3. 标识符严格区分大小写
  4. 关键字不能用作标识符

3. 标识符的命名规范

好的标识符命名规范会让程序变的通俗易懂,养成好的命名习惯对于一个优秀的程序员来说必不可少。

下面这些都是标识符命名的好习惯:

  1. 标识符命名应当见名知意
  2. 标识符应当遵守驼峰命名法
  3. 类名、接口名的首字母大写,后面每个单词首字母大写
  4. 变量名、方法名首字母小写,后面每个单词首字母大写
  5. 常量名全部大写

二、关键字

1. 什么是关键字?

Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。

2. 常见关键字及其用途

关键字含义
abstract表明类或者成员方法具有抽象属性
assert断言,用来进行程序调试
boolean基本数据类型之一,声明布尔类型的关键字
break提前跳出一个块
byte基本数据类型之一,字节类型
case用在switch语句之中,表示其中的一个分支
catch用在异常处理中,用来捕捉异常
char基本数据类型之一,字符类型
class声明一个类
const保留关键字,没有具体含义
continue回到一个块的开始处
default默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现
do用在do-while循环结构中
double基本数据类型之一,双精度浮点数类型
else用在条件语句中,表明当条件不成立时的分支
enum枚举
extends表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口
final用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
finally用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float基本数据类型之一,单精度浮点数类型
for一种循环结构的引导词
goto保留关键字,没有具体含义
if条件语句的引导词
implements表明一个类实现了给定的接口
import表明要访问指定的类或包
instanceof用来测试一个对象是否是指定类型的实例对象
int基本数据类型之一,整数类型
interface接口
long基本数据类型之一,长整数类型
native用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new用来创建新实例对象
package
private一种访问控制方式:私用模式
protected一种访问控制方式:保护模式
public一种访问控制方式:共用模式
return从成员方法中返回数据
short基本数据类型之一,短整数类型
static表明具有静态属性
strictfp用来声明FP_strict(单精度或双精度浮点数)表达式遵循[IEEE 754](https://baike.baidu.com/item/IEEE 754)算术规范
super表明当前对象的父类型的引用或者父类型的构造方法
switch分支语句结构的引导词
synchronized表明一段代码需要同步执行
this指向当前实例对象的引用
throw抛出一个异常
throws声明在当前定义的成员方法中所有需要抛出的异常
transient声明不用序列化的成员域
try尝试一个可能抛出异常的程序块
void声明当前成员方法没有返回值
volatile表明两个或者多个变量必须同步地发生变化
while用在循环结构中

三、字面值

1. 什么是字面值?

字面值是指在程序中无需变量保存,可直接表示为一个具体的数字或字符串的值。

字面值大体上可以分为整型字面值、浮点字面值、字符和字符串字面值、特殊字面值。

2. 整型字面值

1
2
3
4
int a1 = 1;      // 十进制
int a2 = 0b1;    // 二进制
int a3 = 0x1;    // 十六进制
long a4 = 100L;  // 表示long型数字时,后面需要带上 "l"或者"L",一般使用"L"便于区分

3. 浮点型字面值

1
2
3
double b1 = 10.1;  // 小数
double b2 = 1.2E2; // 科学计数法表示
float b3 = 10.1F;  // 表示为float型浮点数时,需要在数字后面加 "f"或者"F"

4. 字符及字符串型字面值

1
2
char c1 = 'a';     // 字符型字面值需要用单引号包裹,并且只能为一个字符
String c2 = "abc"; // 字符串型字面值需要用双引号包裹

5. 布尔型字面值

1
2
boolean a1 = true;  // 真
boolean a2 = false; // 假

6. 特殊字面值

  1. null:是一种特殊的类型(type),可以将它赋给任何引用类型变量,表示这个变量不引用任何东西。如果一个引用类型变量为null,表示这个变量不可用。
  2. Class literal:它是由类,接口,数组或原始类型的名称或伪类型void组成的表达式,后面紧跟 “.class"。Class literal用于表示类型本身!
1
2
3
4
5
6
System.out.println(String.class);
System.out.println(Integer.class);

out:
class java.lang.String
class java.lang.Integer

7. 数值型字面值中使用下划线

JDK7 以后的版本中,可以在数值型字面值(包括整型字面值和浮点字面值)插入一个或者多个下划线。下划线只能用于分隔数字,不能分隔字符与字符,也不能分隔字符与数字。

1
2
int a1 = 123_456;
double a2 = 12_3.4_56;
Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计