Java基础语法1:https://blog.csdn.net/weixin_51349113/article/details/120388120
目录
4、变量与常量
4.1、标识符和关键字
4.1.1标识符
定义:标识符是用来标识类名、变量名、方法名、数组名、文件名的有效字符序列。
Java标识符由任意顺序的字母,下划线,美元符号和数字组成,并且第一个字符不能是数字,标识符不能是Java中的保留关键字。合格标识符如:name,user_age,$dollar;不合格标识符如:int,01name,
4.1.2关键字
Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。
关键字 | 含义 |
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 | 用在循环结构中 |
关键字一律用小写字母标识,按其用途划分为如下几组。
(1)用于数据类型。
用于数据类型的关键字有 boolean、byte、char、 double、 float、int、long、new、short、void、instanceof。
(2)用于语句。
用于语句的关键字有break、case、 catch、 continue、 default 、do、 else、 for、 if、return、switch、try、 while、 finally、 throw、this、 super。
(3)用于修饰
用于修饰的关键字有 abstract、final、native、private、 protected、public、static、synchronized、
transient、 volatile。
(4)用于方法、类、接口、包和异常。
用于方法、类、接口、包和异常的关键字有 class、 extends、 implements、interface、 package、import、throws。
还有些关键字,如 future、 generic、 operator、 outer、rest、var等都是Java保留的没有意义的关键字。
另外,Java还有3个保留字:goto、const、null。它们不是关键字,而是文字。包含Java定义的值。和关键字一样,它们也不可以作为标识符使用。
4.2、变量
程序执行过程中,其值能被改变的量称为变量,变量可以被多次赋值。
4.2.1 声明变量:
变量使用前需要先声明,定义的目的是要告诉编译器这个变量的数据类型,这样编译器才知道需要配置多少空间给它,以及它能存放什么样的数据。在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量,空间的名字就是变量名,内存空间内的值就是变量值。变量的命名必须是合法的标识符且变量名之间不可重复(局部变量可与成员变量的名字相同),在声明变量时可以不赋值,也可以赋给初值。
声明变量如下:
int x; //声明int型变量
int age = 1; //声明int型变量且赋初值
char ischar = 's'; //声明char型变量且赋初值
4.2.2变量的有效范围:
变量被定义出来后暂存在内存中,等到程序执行到某一个点,该变量就会被释放掉,这就是变量的生命周期。变量的有效范围就是指程序代码能够访问该变量的区域,若超出该区域,则在编译时会出现错误。一般,根据变量的有效范围将变量分为“成员变量”和“局部变量”。
成员变量:
在类体中所定义的变量称为成员变量,成员变量在整个类中都有效。类的成员变量又可分为两种,既静态变量和实例变量。
在成员变量的类型的前面加关键字 static,这样的成员变量称为静态变量。静态变量的有效范围可以跨类,对于静态变量,除了能在定义它的类内存取,还可以以“类名.静态变量”的方式在其他类内使用。
静态变量与实例变量声明如下:
class var{
int x; //声明 int 型实例变量 x
static int y = 520; //声明 int 型静态变量 y 并赋值
}
局部变量:
在类的方法体中定义的变量,称为局部变量。局部变量只在当前代码块中有效。
在类的方法中声明的变量,包括方法的参数,都属于局部变量。局部变量只在当前定义的方法内有效,不能用于类的其他方法中。当方法被调用时,Java 虚拟机为方法中的局部变量分配内存,当该方法的调用结束后,则会释放方法中局部变量占用的内存空间,局部变量也将会销毁。
局部变量可与成员变量的名字相同,此时成员变量将在此方法中失效。
如:
//例2.4
package package01;
public class hello_world {
static int x = 0; //在类外声明成员变量 x 并赋值为 0
public static void main(String[] args) {
int x = 520; //在类内声明局部变量 x 并赋值为 520
System.out.println(x);
}
}
例2.4的输出结果为:520 。
4.3、常量
程序执行过程中,其值不能被改变的量称为常量,常量在整个程序中只能被赋值一次。
4.3.1声明常量:
Java中声明一个常量除了要指定数据类型外,还需要通过 final 关键字进行限定,声明常量的标准语法:final 数据类型 常量名称 [ = 值 ];
声明常量如下:
final float PI = 3.1415926f; //声明 float 型常量 PI 并赋值
final boolean BOOL= true; //声明 Boolean 型常量 BOOL 并赋值
final int number; //声明 int 型常量 number
number = 520; //对常量 number 赋值
4.3.2常量的作用:
- 提高程序的可读性,常量易于理解的名称可替代含义不明确的数字或字符串。
- 利于程序的修改,在完整程序中如果要修改多次出现的常量值,只需要在一个地方改动。
- 常量不易导致程序出错,将一个值赋给程序中的一个常量,若该常量已经有一个值,则编译器会进行报错。
5、运算符
运算符是一些特殊的符号,主要用于数学函数,一些类型的赋值运算符语句和逻辑比较方面。
整理Java运算符用法及优先级如下:
优先级 | 运算符 | 名称或含义 | 使用形式 | 结合方向 | 说明 |
1 | [] | 数组下标 | 数组名[常量表达式] | 左到右 | -- |
() | 圆括号 | (表达式)/函数名(形参表) | -- | ||
. | 成员选择(对象) | 对象.成员名 | -- | ||
2 | - | 负号运算符 | -表达式 | 右到左 | 单目运算符 |
~ | 按位取反运算符 | ~表达式 | |||
++ | 自增运算符 | ++变量名/变量名++ | |||
-- | 自减运算符 | --变量名/变量名-- | |||
* | 取值运算符 | *指针变量 | |||
& | 取地址运算符 | &变量名 | |||
! | 逻辑非运算符 | !表达式 | |||
(类型) | 强制类型转换 | (数据类型)表达式 | -- | ||
3 | / | 除 | 表达式/表达式 | 左到右 | 双目运算符 |
* | 乘 | 表达式*表达式 | |||
% | 余数(取模) | 整型表达式%整型表达式 | |||
4 | + | 加 | 表达式+表达式 | 左到右 | 双目运算符 |
- | 减 | 表达式-表达式 | |||
5 | << | 左移 | 变量<<表达式 | 左到右 | 双目运算符 |
>> | 右移 | 变量>>表达式 | |||
6 | > | 大于 | 表达式>表达式 | 左到右 | 双目运算符 |
>= | 大于等于 | 表达式>=表达式 | |||
< | 小于 | 表达式<表达式 | |||
<= | 小于等于 | 表达式<=表达式 | |||
7 | == | 等于 | 表达式==表达式 | 左到右 | 双目运算符 |
!= | 不等于 | 表达式!= 表达式 | |||
8 | & | 按位与 | 表达式&表达式 | 左到右 | 双目运算符 |
9 | ^ | 按位异或 | 表达式^表达式 | 左到右 | 双目运算符 |
10 | | | 按位或 | 表达式|表达式 | 左到右 | 双目运算符 |
11 | && | 逻辑与 | 表达式&&表达式 | 左到右 | 双目运算符 |
12 | || | 逻辑或 | 表达式||表达式 | 左到右 | 双目运算符 |
13 | ? : | 条件运算符 | 表达式1? 表达式2: 表达式3 | 右到左 | 三目运算符 |
14 | = | 赋值运算符 | 变量=表达式 | 右到左 | -- |
/= | 除后赋值 | 变量/=表达式 | -- | ||
*= | 乘后赋值 | 变量*=表达式 | -- | ||
%= | 取模后赋值 | 变量%=表达式 | -- | ||
+= | 加后赋值 | 变量+=表达式 | -- | ||
-= | 减后赋值 | 变量-=表达式 | -- | ||
<<= | 左移后赋值 | 变量<<=表达式 | -- | ||
>>= | 右移后赋值 | 变量>>=表达式 | -- | ||
&= | 按位与后赋值 | 变量&=表达式 | -- | ||
^= | 按位异或后赋值 | 变量^=表达式 | -- | ||
|= | 按位或后赋值 | 变量|=表达式 | -- | ||
15 | , | 逗号运算符 | 表达式,表达式,… | 左到右 | -- |