标识符和关键字
标识符
用来标识类名,变量名,方法名,数组名,文件名,文件名的有效字符序列。
组成:任意顺序字母,下划线(_),美元符号($)和数字组成
注意:第一个字符不能是数字
不能是java关键字
标识符中的字母是严格区分大小写
合法标识符:
name u_ag $asf
非法标识符:
4er String Use kk
关键字
关键字 | 说明 | 关键字 | 说明 |
abstract | 表明类或者成员方法具有抽象属性 | class | 用于声明类 |
assert | 断言,用来调试程序 | const | 保留关键字,没有具体含义 |
boolean | 布尔类型 | continue | 回到一个块的开始处 |
break | 跳出语句,提前跳出一块代码 | default | 默认,如在switch语句中表示默认分支 |
byte | 字节类型 | do | do...while循环结构使用的关键字 |
case | 用在switch语句之中,表示其中的一个分支 | double | 双精度浮点类型 |
catch | 用在异常处理中,用来捕捉异常 | else | 用在条件语句,表示当条件不成立时的分支 |
char | 字符类型 | enum | 用于声明枚举 |
extends | 用于创建继承关系 | public | 公有权限修饰符 |
final | 用于声明不可改变的最终属性,如常量 | return | 返回方法结果 |
finally | 声明异常处理语句中始终会被执行的代码块 | short | 短整数类型 |
float | 单精度浮点类型 | static | 静态修饰符 |
for | for循环语句关键字 | strictfp | 用于声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE754算数标准 |
goto | 保留关键字,没有具体含义 | super | 父类对象 |
if | 条件判断语句的关键字 | switch | 分支结构语句关键字 |
implements | 用于创建类与接口的实现关系 | synchronized | 线程同步关键字 |
import | 导入语句 | this | 本类对象 |
instanceof | 判断两个类的继承关系 | throw | 抛出异常 |
int | 整数类型 | throws | 方法将一场处理抛向外部方法 |
interface | 用于声明接口 | transient | 声明不用序列化的成员域 |
long | 长整数类型 | try | 尝试监控可能抛出异常的代码块 |
native | 用于声明一个方法是与计算机相关的语言 (如C/C++/FORTRAN语言)实现的 | var | 声明局部变量 |
new | 用于创建新实例对象 | void | 表明方法无返回值 |
package | 包语句 | volatle | 表明两个或多个变量同时发生 |
private | 私有权限修饰符 | while | while循环语句关键字 |
protected | 受保护权限修饰符 |
声明变量
系统的内存大略分为三个区
- 系统(OS)
- 程序(program)
- 数据区(data)
当程序执行时,程序代码会加载道内存的程序区中,数据暂时被存储再数据区中。假设两个变量被定义在方法体中,则程序被加载道程序区中。当程序执行此行程代码时,会在数据区配置空间给出这两个变量
规则
- 变量名必须是一个有效的标识符
- 变量名不可以使用java中的关键字
- 变量名不能重复
- 应选择有意义的单词作为变量名
注意:可以使用汉字,如:“int班级 = 1”
使用var生命局部变量
var 变量名称 = 值
例:
public class varr {
public static void main(String[] argg){
var str = "我来问道无余说,云在青天水在瓶";
System.out.println(str);
}
}
var不能使用声明成员变量
var声明的局部变量不能作为返回值
声明常量
声明常量不但要指定数据类型还需要通过final关键字限定:
final 数据类型 常量名称 【= 值】
例:
public class varr {
public static void main(String[] argg){
final double str = 3.3333D;
System.out.println(str);
}
}
注意:
当变量被final关键字修饰时,该变量就变成了常量
必须定义时就设定他的初始值,否则会产生编译错误
public class varr {
static final double str = 3.14;
static int age = 23;
public static void main(String[] argg){
final int number;
number =1234;
age = 22;
number = 123;
System.out.println("常量str的值:"+str);
System.out.println("赋值后number的值:"+number);
System.out.println("int型变量age的值:"+age);
}
}
变量的有效范围
成员变量
在类体中声明的变量,在整个类中有效,叫成员变量
分为:静态变量和实例变
public class varr {
double str = 3.14; //实例变量
static int age = 23; //静态变量
注意:静态变量的有效范围可以跨类,甚至可到达整个应用程序内。静态变量除了能在声明它的类内存取,还能直接以“类名静态变量”的方式在其他类内使用。
局部变量
在类的方法体中声明的变量(方法内部定义,在“{”与“}”之间的代码中声明的变量)称为局部变量。局部变量只在当前代码块中有效,也就是只能在“{”与“)”之间的代码中使用它。
在类的方法中声明的变量,包括方法的参数,都属于局部变量。局部变量只在当前定义的方法内有效,不能用于类的其他方法中。局部变量的生命周期取决于方法,当方法被调用时,Java 虚拟机会为方法中的局部变量分配内存空间,当该方法的调用结束后,则会释放方法中局部变量占用的内存空间,局部变量也将会被销毁。
局部变量可与成员变量的名字相同,此时成员变量将被隐藏,即这个成员变量在此方法中暂时失效
public class varr {
static int age = 23; //静态变量
public static void main(String[] argg){
int times= 4;
System.out.println("time的值为:"+times); //局部变量
}
}
案例
比较字符和整数
public class varr {
public static void main(String[] argg){
char i = 'g';
int a = 12;
System.out.println(a == i);
}
}