标识符
【1】标识符:读音 biao zhi fu
【2】什么是标识符?
包,类,变量,方法.....等等,只要是起名字的地方,那个名字就是标识符
【3】标识符定义规则:
1.四个可以(组成部分):数字,字母,下划线_,美元符号$
注意:字母概念比较宽泛,指的是英文字母,汉字,日语,俄语......
但是我们一般起名字尽量使用英文字母
2.两个不可以:不可以以数字开头,不可以使用java中的关键字
3.见名知意:增加可读性
4.大小写敏感: int a ; int A;
5.遵照驼峰命名:
类名:首字母大写,其余遵循驼峰命名
方法名,变量名:首字母小写,其余遵循驼峰命名
包名:全部小写,不遵循驼峰命名
6.长度无限制,但是不建议太长 asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasfd
关键字
关键字:被JAVA语言赋予了特殊含义,用作专门用途的单词
特点:JAVA中所有关键字都为小写
官网:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
变量和常量
举例:
丽丽的年龄:去年17岁,今年18岁,明年19岁
年龄:17--》18---》19 --》值不断变化
年龄---》变量
常量: 17 , 18 , 19 ----》 常量中的字面常量
字面常量
常量分为两种:
常量通常指的是一个固定的值,例如:1、2、3、’a’、’b’、true、false、”helloWorld”等。
在Java语言中,主要是利用关键字final来定义一个常量。 常量一旦被初始化后不能再更改其值。
为了更好的区分和表述,一般将1、2、3、’a’、’b’、true、false、”helloWorld”等称为字面常量,而使用final修饰的PI等称为符号常量(字符常量)。
字面常量的类型:
注意:逻辑常量就两个值,一个是true,一个是false
变量
变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。 比如,int a=3; 表示a变量的空间大小为4个字节。变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储空间。
【1】变量声明格式:
type varName [=value][,varName[=value]...]; //[ ]中的内容为可选项,即可有可无
数据类型 变量名 [=初始值] [,变量名 [=初始值]…];
案例:
int age = 19 , age2 = 90 ;
int age,age2;
【2】变量的声明:
(1)如果你只定义一个变量,没有给变量进行赋值的话,那么其实这个变量相当于没有定义:
(2)变量如果没有进行赋值的话,那么使用的时候会出错,告诉你:尚未初始化变量:
【3】变量的赋值:
我们自己定义的时候直接就可以用一句话定义:
int age = 10;
变量的值可以更改:
- public class TestVar01{
- public static void main(String[] args){
- //变量的声明(定义变量)(以年龄为案例讲解)
- //java是一个强类型的语言,只要声明变量就必须定义类型:定义整数类型
- int age ; //定义一个整数类型的变量,变量名字为age
- //对变量进行赋值操作:
- age = 10; //变量名字为age,具体的值为10
- age = 12;
- age = 20;
- age = age + 4;
- age = 9;
- age = 9;
- System.out.println(age);
- }
- }
变量不可以重复定义:
【4】变量的使用:
- public class TestVar01{
- public static void main(String[] args){
- //变量的声明(定义变量)(以年龄为案例讲解)
- //java是一个强类型的语言,只要声明变量就必须定义类型:定义整数类型
- int age ; //定义一个整数类型的变量,变量名字为age
- //对变量进行赋值操作:
- age = 10; //变量名字为age,具体的值为10
- age = 12;
- age = 20;
- age = age + 4;
- age = 9;
- age = 9;
- System.out.println(age);
- System.out.println(age-2);
- System.out.println(age+10);
- int num = age + 66;
- System.out.println(num);
- }
- }
扩展:
- public class TestVar02{
- public static void main(String[] args){
- int a = 10;
- int b = 20;
- int c = a + b ;
- }
- }
现在对上述代码进行“反编译过程”“反汇编过程”
【5】变量的内存:
【6】习题:
- public class TestVar03{
- public static void main(String[] args){
- int num1 = 10;
- int num2 = 20;
- num1 = num2;
- num2 = num2 + 10;
- num1 = num2 - 10;
- num2 = num1;
- System.out.println("num1="+num1);
- System.out.println("num2="+num2);
- }
- }
内存分析:
结果:
【7】变量的作用域:
作用域指的就是作用范围,变量在什么范围中有效
作用范围就是离它最近的{}
备注:一会我们写的代码,不要去运行,会出错
- /*
- 局部变量:定义在方法中
- 成员变量:定义在类中,方法外
- */
- public class TestVar04{
- int b = 20;
- public static void main(String[] args){
- System.out.println(a);//no
- int a = 10;
- System.out.println(a);//yes
- System.out.println(b);//yes
- {
- int c = 40;
- System.out.println(c);//yes
- int a = 50;//属于变量的重复定义
- }
- System.out.println(c);//no
- }
- public void eat(){
- System.out.println(b);//yes
- System.out.println(a);//no
- int a = 30;//不是变量的重复定义
- System.out.println(a);//yes
- }
- }