变量与常量
在程序执行过程中,其值不能被改变的量称为常量,其值能被改变的量称为变量。
变量与常量的命名都必须使用合法的标识符。
1.1 标识符和关键字
1.1.1 标识符
标识符可以理解为一个名字,用来标识类名、变量名、方法名、数组名、文件名的有效字符序列。
Java语言规定标识符由任意顺序的字母、下划线( _ )、美元符号($)和数字组成,并且第一个字符不能是数字。标识符不能是Java中保留的关键字。
在Java语言标识符中的字母是区分大小写的。
1.1.2 关键字
关键字是 Java 语言中已经被赋予特定意义的一些单词,不可以把这些字作为标识符来使用。
Java关键字 | ||||
abstract | assert | boolean | break | byte |
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | thow | throws |
transient | try | void | volatile | while |
大致含义
关键字 | 含义 |
abstract | 表明类或者成员方法具有抽象属性 |
assert | 断言,用来进行程序调试 |
boolean | 基本数据类型之一,布尔类型 |
break | 提前跳出一个块 |
byte | 基本数据类型之一,字节类型 |
case | 用在switch语句之中,表示其中的一个分支 |
catch | 用在异常处理中,用来捕捉异常 |
char | 基本数据类型之一,字符类型 |
class | 声明一个类 |
const | 保留关键字,没有具体含义 |
continue | 回到一个块的开始处 |
default | 默认,例如,用在switch语句中,表明一个默认的分支 |
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算术规范[1] |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
while | 用在循环结构中 |
1.2 声明变量
变量的使用是程序设计中一个很重要的环节。定义变量是告诉编译器这个变量的数据类型,编译器才能知道需要配置多大的空间,存放什么样的数据。
在运行的过程中,空间内的值是变化的,这个内存空间称为变量。我们给这个空间取个名字,称为变量名。变量的命名必须是合法的标识符。内存空间内的值就是变量值。
对于变量的命名应遵循几条规则:
- 变量名必须是一个的标识符;
- 变量名不可以使用Java中的关键字;
- 变量名不能重复;
- 应选择有意义的单词作为变量名。
1.3 声明常量
在程序运行过程中一直不会改变的量称为常量,也被称为“ final 变量”,常量在程序中只能被赋值一次。
声明常量的标准语法: final 数据类型 常量名称 [ =值]
常量名通常使用大写字母, 但是这不是必须。使用大写字母来表示常量,是为了清楚表明正在使用的常量。
当定义的 final 变量是“成员变量时”,必须给它在定义时设定初始值,否则在编译时将发生
public class Part{ //新建类
static final double PI = 3.14; //声明 double 型常量 PI ,此时如果不对PI进行赋值,则会出现错误提示
static int age = 23; //声明 int 型变量 age 并进行赋值
public static void main(String [] args){ //主方法
final int number; //声明 int 型常量 number
number = 1235; //对常量进行赋值
age = 22; //再次对变量进行赋值
// number = 1236; //错误代码,因为 number 是常量,只能进行一次赋值
System.out.println("常量 PI 的值为:"+PI); //将 PI 的值输出
System.out.println("赋值后 number 的值为: + number); //将 number 的值输出
System.out.println("int 型变量 age 的值为:"+age) //将 age 的值输出;
}
}
结果为:
常量 PI 的值为: 3.14
赋值后 number 的值为: 1235
int 型变量 age 的值为: 22
1.4 变量的有效范围
1.4.1 成员变量
在类体中的所定义的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量分为两种:静态变量和实例变量。
class var{
int x = 45; // x 为实例变量
static int y = 90; // y 为静态变量(也称类变量)
}
如果在成员变量的类型前面加上关键字 static ,这样的成员变量称为静态变量。静态变量的有效范围可以跨类,甚至可达到整个应用程序之内。对于静态变量,除了能在定义它的类内存取,还能直接用“ 类名.静态变量”的方式在其他类中使用。
1.4.2 局部变量
在类的方法体中定义的变量(方法内部定义,“{”与“}”之间的代码中声明的变量)称为局部变量。局部变量只在当前代码块有效。
在类的方法中声明的变量,包括方法的参数,都属于局部变量。局部变量只在当前定义的方法内有效,不能用于其他类的其他方法中。局部变量的生命周期取决于方法,当方法被调用时,Java 虚拟机为方法中的局部变量分配内存空间,当该方法的调用结束后,则会释放方法中局部变量占用的内存空间,局部变量也被销毁。
局部变量可以成员变量名字相同,此时成员变量将被隐藏,即这个成员变量在此方法中暂时失效。
public class Val{ //新建类
static int times = 3; //定义成员变量 times
public static void main(Strign [] args){ //主方法
int times = 4 ; //定义局部变量 times
System.out.println("times 的值为:"+ times); //将 times 的值输出
}
}
结果为: times 的值为: 4
对于学习Java,看书,看视频,看官方文档,看API,多练,多想。
要时刻学习,更新很快,要学习新技术,好好加油,祝终成大神。