2 基本语法
目录
- 2 基本语法
- 2.1 关键字与保留字
- 2.1.1 关键字(keyword)
- 2.1.2 保留字(reserved word)
- 2.2 标识符(Identifier)
- 2.3 变量
- 2.3.1 基础
- 2.3.2 分类
- 2.3.3 整数类型 byte、short、int、long
- 2.3.4 浮点类型 float、double
- 2.3.5 字符类型 char
- 2.3.6 布尔类型 boolean
- 2.3.7 基本数据类型间的运算
- 2.3.8 字符串类型 String
- 2.1 关键字与保留字
2.1 关键字与保留字
2.1.1 关键字(keyword)
定义:被Java语言赋予了特殊含义,用作专门用途的字符串。
特点:关键字中所有字母都为小写。
2.1.2 保留字(reserved word)
定义:现有Java版本尚未使用,但以后版本可能会作为关键字使用。开发中命名标识符时要避免使用这些保留字。
2.2 标识符(Identifier)
- 定义:Java对各种变量、方法和类等要素命名时使用的字符序列成为标识符。
- 技巧:凡是自己可以起名字的地方都叫标识符。
- 规则(如果不遵守如下规则,编译不通过):
- 由26个英文字母大小写、0-9、_或$组成。
- 数字不可以开头。
- 不可以使用关键字和保留字,但能包含关键字和保留字。
- Java中严格区分大小写,长度无法限制。
- 标识符不能包含空格。
- 规范(如果不遵守如下规则,编译可以通过,建议大家遵守):
- 包名:多单词组成时所有字母都小写,如xxxyyyzzz。
- 类名、接口名:多单词组成时,所有单词的首字母大写,如XxxYyyZzz。
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写,如xxxYyyZzz。
- 常量名:所有字母都大写,多个单词时每个单词用下划线连接,如XXX_YYY_ZZZ。
- 注意:
- 在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。
- java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。
2.3 变量
2.3.1 基础
- 概念:
- 内存中的一个存储区域。
- 该区域的数据可以在同一类型范围内不断变化。
- 变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值。
- 作用:用于在内存中保存数据。
- 注意:
- Java中每个变量必须先声明,后使用。
- 使用变量名来访问这块区域的数据。
- 变量的作用域,其定义所在的一对“{}”内。
- 变量只在其作用域内有效。
- 同一个作用域内,不能定义重名的变量。
2.3.2 分类
-
按数据类型分类:对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间。
-
按变量在类中声明的位置分类:
2.3.3 整数类型 byte、short、int、long
- Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证Java程序的可移植性。
- Java的整型常量默认为int型,声明long型常量须后加“l”或“L”。
- Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long。
类型 | 占用存储空间 | 表数范围 |
---|---|---|
byte | 1字节=8位(bit) | -128~127 |
short | 2字节 | -215~215-1 |
int | 4字节 | -231~231-1 |
long | 8字节 | -263~263-1 |
2.3.4 浮点类型 float、double
- 与整数类型类似,Java浮点类型也有固定的表数范围和字段长度,不受具体OS的影响。
- 浮点型常量有两种表示形式:
- 十进制数形式,如5.12、512.0f、.512
- 科学计数法形式,如5.12e2、512E2、100E-2
- float,单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
double,双精度,精度是float的两倍。通常采用此类型。 - Java的浮点型常量默认为double型,声明float型常量,须后加“f”或“F”。
类型 | 占用存储空间 | 表数范围 |
---|---|---|
float | 4字节 | -3.403E38~3.403E38 |
double | 8字节 | -1.798E308~1.798E308 |
2.3.5 字符类型 char
- char 型数据用来表示通常意义上的“字符”,占用存储空间2字节。
- Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母或一个汉字或其他书面语的一个字符。
- 字符型变量的三种表现形式:
package basicgrammar;
public class Variable {
public static void main(String[] args) {
// 1.声明一个字符
char c1 = 'A';
c1 = '1';
c1 = '中';
// 2.使用转义字符
char c2 = '\n';
// 3.直接使用Unicode值来表示字符常量
char c3 = '\u0044';
System.out.print(c1);
System.out.print(c2);
System.out.print(c3);
}
}
- char类型是可以进行运算的。因为它都有对应的Unicode码。
2.3.6 布尔类型 boolean
- 只能取两个值,ture、false。
- 常在条件判断、循环结构中使用。
2.3.7 基本数据类型间的运算
前提:只涉及7种基本数据类型,不包含布尔类型。
-
自动类型提升
结论:byte、char、short --> int --> long --> float --> double- 当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。(注:容量大小指的是表示数的范围大小,而不是所占内存空间的大小。)
- 当byte、char、short三种类型的变量做运算时,结果为int型。
-
强制类型转换:自动类型提升运算的逆运算。
- 需要使用强转符“()”。
- 强制类型转换,可能导致精度损失。
注意:
- 整型常量,默认类型为int型。
- 浮点型常量,默认类型为double型。