(1)读音:biao zhi fu
(2)什么是标识符?
(摘自百度百科)
简单来说,标识符就是一个名字
(3)标识符命名的规则:
- 组成部分(4个可以):数字、字母(尽量用英文,虽然汉子、日文、俄语都可以)、下划线_、美元符号 $
- 2个不可以:第一,不能以数字开头(例如1num不可以,但是num1可以);第二,不能采用Java中的关键字命名(Java 的关键字有其特殊的用途用于编译,否则编译器无法编译Java文件了)
- 命名的长度没有限制,但是尽量不要太长,而且最好养成习惯,不要胡乱命名,尽量见名知义,这样可读性也高,利于变成效率的提高
- Java大小写敏感(例如,int num; 和int NUM ;中的num和NUM 完全是两个变量)
- 有时遵循驼峰命名,有时不需要驼峰命名
比如:类名:首字母大写,遵循驼峰命名(例如,HelloMyCode)
变量名、方法名:首字母小写,遵循驼峰命名(例如,makeChoices)
包名:全部小写(例如,com.bones.test)
关键字被赋予特殊用途,不能用来作为标识符
Java中的关键字都是小写
下面的关键字了解就可以,不用故意去记住,因为真正敲代码的人不可能不知道下面的关键字,用多了就记住了
不过我个人有时候会有一些误区,比如误以为Java中的true这些是关键字,后来一查居然不是,这些只是Java的常用字面量
官网有提供Java关键字的罗列:
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
下面是分类的罗列:
3.常量(1)常量:程序运行过程中不会变化的量。
(2)分类:
变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。 比如,int a=3; 表示a变量的空间大小为4个字节。变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储空间。
(1)变量的声明
public class testVar{
public static void main(String[] args){
//定义一个int类型的变量:
int age ;
}
}
上面的代码编译成功:
在JavaSE_Code 文件下产生了对应的字节码文件:
现在利用反编译工具将字节码代码还原为源代码:
(将上面的TestVal.class文件拖至反编译工具中)
(关于反我的反编译工具,请见我的博客https://blog.csdn.net/qq_51550750/article/details/121536690)
反编译结果:
其实这就说明:一个变量只是定义但是没有赋值,就相当于什么都没做。
还要注意一点:如果变量只是定义而没有赋值,那么使用这个变量就会报错,例如:
(2)变量的赋值
public class TestVar{
public static void main(String[] args){
//定义一个int类型的变量:
int age;
//将age赋值为10这个字面常量
age = 10;
}
}
再次编译产生字节码文件,然后反编译:
编译:
反编译结果:
发现两句活合成了一句话(定义和赋值合成了一句话),而且变量的名字改变了,这说明其实其实变量名对于编译这个过程无关紧要
那么变量的赋值可不可以重复呢?
例如:
public class TestVar{
public static void main(String[] args){
//定义一个int类型的变量:
int age;
//将age赋值为10这个字面常量
age = 10;
age = 20;
age = 9;
age = 9;
}
}
说明一个变量可以重复赋值,但是要注意一个问题:同一个变量不可以重复定义:
例如下面的代码会报错:
public class TestVar{
public static void main(String[] args){
//定义一个int类型的变量:
int age;
//将age赋值为10这个字面常量
age = 10;
age = 20;
age = 9;
age = 9;
int a = 0;
int a ;
}
}
(3)变量的使用
变量的使用很简单:
public class TestVar{
public static void main(String[] args){
//定义一个int类型的变量:
int age;
//将age赋值为10这个字面常量
age = 10;
age = 20;
age = 9;
age = 9;
int a = 0;
//int a ;
System.out.println(age);
System.out.println(a+10);
}
}
编译和执行:
(4)变量的内存
简单来画就是:
下面举一个简单的例子说明底层的变量赋值的过程:
public class TestVal02{
public static void main(String[] args){
int x = 1, y = 2;
int z = x + y;
}
}
通过javap.exe命令来反汇编:(但是要先产生字节码文件)
看字节码指令或许就可以看出个大概了吧。。。
5.基本数据类型----整型


