关键字:
定义:被Java赋予了特殊含义,用做专门用途的字符串(单词)。
特点:关键字中所有字母都为小写。
| 类别 | 关键字 | 说明 |
|---|---|---|
| 访问控制 | private | 私有的 |
| protected | 受保护的 | |
| public | 公共的 | |
| default | 默认 | |
| 类、方法和变量修饰符 | abstract | 声明抽象 |
| class | 类 | |
| extends | 扩充,继承 | |
| final | 最终值,不可改变的 | |
| implements | 实现(接口) | |
| interface | 接口 | |
| native | 本地,原生方法(非 Java 实现) | |
| new | 新,创建 | |
| static | 静态 | |
| strictfp | 严格,精准 | |
| synchronized | 线程,同步 | |
| transient | 短暂 | |
| volatile | 易失 | |
| 程序控制语句 | break | 跳出循环 |
| case | 定义一个值以供 switch 选择 | |
| continue | 继续 | |
| default | 默认 | |
| do | 运行 | |
| else | 否则 | |
| for | 循环 | |
| if | 如果 | |
| instanceof | 实例 | |
| return | 返回 | |
| switch | 根据值选择执行 | |
| while | 循环 | |
| 错误处理 | assert | 断言表达式是否为真 |
| catch | 捕捉异常 | |
| finally | 有没有异常都执行 | |
| throw | 抛出一个异常对象 | |
| throws | 声明一个异常可能被抛出 | |
| try | 捕获异常 | |
| 包相关 | import | 引入 |
| package | 包 | |
| 基本类型 | boolean | 布尔型 |
| byte | 字节型 | |
| char | 字符型 | |
| double | 双精度浮点 | |
| float | 单精度浮点 | |
| int | 整型 | |
| long | 长整型 | |
| short | 短整型 | |
| 变量引用 | super | 父类,超类 |
| this | 本类 | |
| void | 无返回值 |
注:Java 的 null 不是关键字,类似于 true 和 false,它是一个字面常量,不允许作为标识符使用、但可以包含。
保留字:
概述:现有Java版本尚未使用,但以后版本可能会作为关键字使用。
| 保留关键字 | goto | 是关键字,但不能使用 |
| const | 是关键字,但不能使用 |
标识符:
概述:Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符(凡是自己可以起名字的地方都叫标识符)、在起名字时,为了提高阅读性,要尽量有意义,“见名知意”、java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。
定义合法标识符的规则:
由26个英文字母大小写,0-9 ,_或 $ 组成
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格。
注:定义标识符规则必须严格遵守,否则编译不通过!
定义合法标识符的规范:
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写(大驼峰):XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写(小驼峰):xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
注:Java命名规范不遵守也可编译运行,但如果在遵守易于对代码的理解。
变量:
定义:
内存中的一个存储区域、该区域的数据可以在同一类型范围内不断变化
变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值
作用:
用于在内存中保存数据
使用变量时的注意:
Java中每个变量必须先声明,后使用
使用变量名来访问这块区域的数据
变量的作用域:其定义所在的一对{ }内
变量只有在其作用域内才有效
同一个作用域内,不能定义重名的变量;(但成员变量和局部变量可以同名,调用时用的是成员变量,但不建议这样。)
变量的声明格式:
只声明:
语法:数据类型 变量名;
如:int age;
只赋值:
语法:变量名 = 值;
如:age = 12;
声明且赋值:
语法:数据类型 变量名 = 值;或 数据类型 变量名 = 值 ,数据类型 变量名 = 值 ;
如:int age = 12; int age,num=12; int age=12,num=12;
变量的分类:
按数据类型分:Java是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。
◆ 实例变量:
实例变量声明在一个类中,但在方法、构造方法和语句块之外。
当一个对象被实例化之后,每个实例变量的值就跟着确定,且每实例一个对象,他们的变量值都是独立的。
实例变量在对象创建的时候创建,在对象被销毁的时候销毁
实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息
实例变量可以声明在使用前或者使用后
访问修饰符可以修饰实例变量
实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见
实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定
实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName
◆ 类变量:
类变量也叫静态变量,在类中以 static 关键字声明,但必须在方外
无论一个类创建了多少个对象,类只拥有类变量的一份拷贝
静态变量除了被声明为常量外很少使用,静态变量是指声明为 public/private,final 和 static 类型的变量。静态变量初始化后不可改变
静态变量储存在静态存储区。经常被声明为常量,很少单独使用 static 声明变量
静态变量在第一次被访问时创建,在程序结束时销毁
与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为 public 类型
默认值和实例变量相似。数值型变量默认值是 0,布尔型默认值是 false,引用类型默认值是 null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化
静态变量可以通过:ClassName.VariableName的方式访问或者实例.VariableName访问
类变量被声明为 public static final 类型时,类变量名称一般建议使用大写字母。如果静态变量不是 public 和 final 类型,其命名方式与实例变量以及局部变量的命名方式一致
◆ 局部变量:
局部变量声明在方法、构造方法或者语句块中
局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁
访问修饰符不能用于局部变量
局部变量只在声明它的方法、构造方法或者语句块中可见
局部变量是在栈上分配的
局部变量没有默认值,所以局部变量被声明后,必须经过初始化(除了形参外),才可以使用
数据类型:
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
bit(位): 计算机中的最小存储单位。byte(字节):计算机中基本存储单元、一字节等于八位。
整数类型:
整数类型常量的默认值是int;
byte:
- byte 数据类型是8位、有符号的,以二进制补码表示的整数;
- 最小值是 -128(-2^7);
- 最大值是 127(2^7-1);
- 默认值是 0;
- byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
- 例子:byte a = 100,byte b = -50。
- 此类型的表述值范围小,注意使用时超出表数值范围
short:
- short 数据类型是 16 位、有符号的以二进制补码表示的整数
- 最小值是 -32768(-2^15);
- 最大值是 32767(2^15 - 1);
- Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
- 默认值是 0;
- 例子:short s = 1000,short r = -20000。
int:
- int 数据类型是32位、有符号的以二进制补码表示的整数;
- 最小值是 -2,147,483,648(-2^31);
- 最大值是 2,147,483,647(2^31 - 1);
- 一般地整型变量默认为 int 类型;
- 默认值是 0 ;
- 例子:int a = 100000, int b = -200000。
long:
- long 数据类型是 64 位、有符号的以二进制补码表示的整数;
- 最小值是 -9,223,372,036,854,775,808(-2^63);
- 最大值是 9,223,372,036,854,775,807(2^63 -1);
- 这种类型主要使用在需要比较大整数的系统上;
- 默认值是 0L;
- 此类型的必须带l或L,
- 例子: long a = 100000L,Long b = -200000L。
"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
浮点型:
浮点型常量的默认值是double,所以给double赋值的不用带d,但如果是float的需要带f或F否则就是double转float,这种的大转小需要强制类型转换。
float:
- float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
- float 在储存大型浮点数组的时候可节省内存空间;
- 默认值是 0.0f;
- 浮点数不能用来表示精确的值,如货币;
- 例子:float f1 = 234.5f。
double:
- double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;
- 浮点数的默认类型为 double 类型;
- double类型同样不能表示精确的值,如货币;
- 默认值是 0.0d;
-
例子:
double d1 = 7D ; double d2 = 7.; double d3 = 8.0; double d4 = 8.D; double d5 = 12.9867;
7 是一个 int 字面量,而 7D,7. 和 8.0 是 double 字面量。
boolean:
- boolean数据类型表示一位的信息;
- 只有两个取值:true (0)和 false(1);
- 这种类型只作为一种标志来记录 true/false 情况;
- 默认值是 false;
- 例子:boolean one = true。
char:
- char 类型是一个单一的 16 位 Unicode 字符;
- 最小值是 u0000(十进制等效值为 0);
- 最大值是 uffff(即为 65535);
- char 数据类型可以储存任何字符,但只能存一个字符,可存中、英、数字、符号、转义字符等;
- char类型的值用单引号''包裹
- char类型是可以进行运算的。因为它都对应有Unicode码
- 默认值是 'u0000'
- 例子:char letter = 'A';。
Java语言支持一些特殊的转义字符序列。
| 符号 | 字符含义 |
|---|---|
| n | 换行 (0x0a) |
| r | 回车 (0x0d) |
| f | 换页符(0x0c) |
| b | 退格 (0x08) |


