符号和关键字
Java 中,定义了一些特殊的符号、关键词,用来作为基础语法,它们各自有着不同的作用,但又非常的重要,只有记住这些关键词、特殊符号,才能写出没有语法错误的代码;
标识符
分号(;)
Java 代码的分隔并不是通过换行来实现,而是通过
;
号,只不过为了代码的美观以及可读性,往往;号之后紧跟着就是换行;javaString name = "一行Java"; Integer age = 18; // 这样写也是没有问题的,通过;号隔开了两个变量,只是不够美观 String name = "一行Java";Integer age = 18;
字符串类型的变量,如果过长,需要换行,只需要在结束的地方加上;即可
java// 换行通过 + 号拼接是允许的 String name = "一行"+ "Java";
但同一个字符串,不允许直接换行,比如下面的代码,就是错误的语法:
java// 这是错误的换行,无法编译、运行 String name = "一行 Java";
同时,变量名也是不允许换行的
java// 错误的变量定义,变量名是不允许换行的 String na me = "一行Java";
花括号
{}
表示代码块,代码块内所有的代码,在逻辑上是一个整体,比如类的定义,方法的定义、逻辑判断、for循环等,都必须通过{}指定一个代码块;而且 {} 必须成对出现;
javapublic class clz { // 这里属于类的代码块 public void method() { // 这里属于方法的代码块 int a = 1; if(a + 1 > 0) { // 这是符合逻辑判断的代码块 }else { // 这是不符合逻辑的代码块 } } }
方括号
[]
用于指定访问数组的下标(索引),通常紧跟在数组变量名之后
javaString[] arr = new String[]{"a","b","c"}; System.out.println(arr[1]);
以上代码,就会输出数组
arr
下标为1的值,也就是:b圆括号
()
圆括号的功能,相比于前面两种括号,功能就会丰富很多,比如:
方法定义、方法的调用
可以见上面的示例代码,不过多演示了
指定特定区域的作为一个逻辑单元
java// 其中将(a>100 || a<10)使用()包裹,就是将其视为了一个整体 // a大于100或者小于10,且b大于50,这个if条件才满足 if((a>100 || a<10) && b > 50){ } // 如果不用括号,判断逻辑就发生比较大的变化 // a 大于100就满足条件了 // 或者a小于10 且 b大于10 满足条件 if(a>100 || a<10 && b > 50){ }
强制类型转换
javadouble m = 1; int n = (int) m;
等等...
空格符、制表符
Java 语言使用空格符(space)分隔一条语句的不同部分;制表符(tab)、换行和空格的功能差不多;同时,可以使用空格符、制表符来缩减代码,以达到格式化代码、美化代码的功能;
圆点
.
用于类或者对象,引用其成员变量、成员方法的符号;
转义符
Java语言支持一些特殊的转义字符序列。
符号 | 字符含义 |
---|---|
\n | 换行 (0x0a) |
\r | 回车 (0x0d) |
\f | 换页符(0x0c) |
\b | 退格 (0x08) |
\0 | 空字符 (0x0) |
\s | 空格 (0x20) |
\t | 制表符 |
" | 双引号 |
' | 单引号 |
\ | 反斜杠 |
\ddd | 八进制字符 (ddd) |
\uxxxx | 16进制Unicode字符 (xxxx) |
关键字
关键字 | 含义 |
---|---|
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算术规范 |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
while | 用在循环结构中 |