关键字
Java 关键字是编程语言里事先定义的,有特殊意义的单词,Java 中所有的关键字都是小写 的英语单词。 Java 的关键字对 Java 的编译器有特殊的意义,它们用来表示一种数据类型,或者表示程序 的结构等,关键字不能用作标识符。常见的关键字有哪些呢?请看以下表格:
总结一下关键字:
- 定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
- 特点:关键字中所有字母都为小写
我们可以进入官方地址: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html 查看每个关键字的具体用法。
标识符
标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、方法、语句块等命名,以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。在编程语言中,标识符就是程序员自己规定的代表一定含义的单词(java 源程序当中凡是程序员自己有权利修改的名字),比如类名,属性名,变量名等。如以下代码所示:
//其中,Student 是一个类名,表示学生类 public class Student { //age 是一个属性名表示学生的年龄属性 int age; //setAge是一个方法名,a 表示一个变量名 public void setAge(int a) { age = a; } }
上面的代码中的Student 丶age 丶setAge丶a 这些都是标识符。简而言之:凡是自己可以起名字的地方都叫标识符。
标识符都可以标识什么?
在 java 源程序当中,标识符可以用来标识:
- 类名,例如:Student 学生类、User 用户类、Product 商品类、Order 订单类等。
- 接口名,例如:Runable 可运行的、Comparable 可比较的等。
- 变量名,例如:name 名字、age 年龄、birth 生日、length 长度等。
- 方法名,例如:login 登录、logout 登出、eat 吃、drink 喝等。
- 常量名,例如:LOGIN_SUCCESS、ACCESS_TOKEN 等。
除了标识以上之外,还可以标识其他的,这里就不再一一列举,大家主要先把以上的了解一下。总之标识符就是起名字。
定义合法标识符规则:如果不遵守如下的规则,编译不通过!需要大家严格遵守
- 由26个英文字母大小写,0-9 ,_或 $ 组成
- 数字不可以开头。
- 不可以使用关键字和保留字,但能包含关键字和保留字。
- Java中严格区分大小写,长度无限制。
- 标识符不能包含空格。
Java中的名称命名规范:如果不遵守如下的规范,编译可以通过!建议大家遵守
- 包名:多单词组成时所有字母都小写:xxxyyyzzz
- 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个 单词首字母大写:xxxYyyZzz
- 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
- 在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。
- java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。
常量
- Java程序中固定不变的数据就是常量
常量的分类
代码举例
/* 常量:在程序运行期间,固定不变的量。 常量的分类: 1. 字符串常量:凡是用双引号引起来的部分,叫做字符串常量。例如:"abc"、"Hello"、"123" 2. 整数常量:直接写上的数字,没有小数点。例如:100、200、0、-250 3. 浮点数常量:直接写上的数字,有小数点。例如:2.5、-3.14、0.0 4. 字符常量:凡是用单引号引起来的单个字符,就做字符常量。例如:'A'、'b'、'9'、'中' 5. 布尔常量:只有量中取值。true、false。 6. 空常量:null。代表没有任何数据。 */ public class Demo01Const { public static void main(String[] args) { // 字符串常量 System.out.println("ABC"); System.out.println(""); // 字符串两个双引号中间的内容为空 System.out.println("XYZ"); // 整数常量 System.out.println(30); System.out.println(-500); // 浮点数常量(小数) System.out.println(3.14); System.out.println(-2.5); // 字符常量 System.out.println('A'); System.out.println('6'); // System.out.println(''); // 两个单引号中间必须有且仅有一个字符,没有不行。 // System.out.println('AB'); // 两个单引号中间必须有且仅有一个字符,有两个不行。 // 布尔常量 System.out.println(true); System.out.println(false); // 空常量。空常量不能直接用来打印输出。 // System.out.println(null); } }
变量概述
变量是内存当中存储数据最基本的单元,将数据(字面量)放到内存当中,给这块内存空间起一个名字,这就是变量。所以变量就是内存当中的一块空间,这块空间有名字、有类型、有值,这也是变量必须具备的三要素。变量在内存中的抽象图形可以参考下图:
在上图当中每一个抽象的椭圆就代表一个变量,其中 a、c、pi、sex 是 4 个变量的名字(变量名只要是合法的标识符即可),13、‟好‟、3.14、true 是 4 个变量中分别存储的数据(字面量),int、char、double、boolean 是 4 个变量分别对应的数据类型(int、char、double、boolean等都是 java 的关键字,声明变量时用来指定变量的数据类型)。
- 数据类型在任何一门编程语言当中都很重要,因为程序在运行的过程中会通过不同的数据类型给数据分配不同大小的空间。有的数据类型占用的空间较小,但有的数据类型占用的空间就会很大。这也是符合现实的,在现实生活中有些数据较大,有些数据则较小。
- 变量要求“变量的数据类型”和变量中存储的“数据(字面量)”必须类型是一致的,换句话说,冰箱是用来存放小食品的,也就是说冰箱只能存放小食品,大象不能往冰箱里放,原因是放不下,空间不合适。例如:int 类型就只能存下 4 个字节大小的整数,再长一点儿放不下,比如 long 类型的整数占有 8 个字节,这样的数据肯定是无法放到 int 类型的变量当中的。
- 所谓变量:可变化的量。它的意思是变量中存储的数据不是一成不变的,是可以被改变的,假设变量 i 中之前存储的数据是 10,我们可以将 10 换成 100,变量就是这个意思。
- 大家需要掌握一个变量是有三要素组成的,分别是:数据类型、变量名、存储的值。其中存储的值就是字面量。
Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。总结一下变量的特点:
- 变量的存储位置是在内存中的一个存储区域
- 该区域的数据可以在同一类型范围内不断变化
- 变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值
- 变量的作用: 用于在内存中保存数据
定义变量
方式一:声明变量和变量的赋值分开进行
声明变量语法:
- 数据类型 变量名称;
变量赋值语法:
- 变量名称 = 值
/* 等号右边的值其实就是数据,我们之前所学的字面量就可以当做“值”。 其中的等号“=”是一种运算符,它被称为赋值运算符,赋值运算符右边的表达式优先级较高, 所以等号右边先执行,将执行结果赋给左边的变量。 */ //声明int类型的变量,名称是age int age; //给变量名称age 赋值为18; age = 18;
方式二:声明和赋值变量同时进行
- 数据类型 变量名 = 数据值;
// 数据类型 变量名 = 数据值; int a = 100;
代码举例
/* 什么是变量? 变量其实就是内存当中存储数据的最基本的单元。 变量就是一个存储数据的盒子。 在java语言当中任何数据都是有数据类型的,其中整数型是:int 没有为什么,java中规定的,整数型就是:int 当然,在java中除了数据类型int之外,还有其它的类型,例如带小数的:double等。。。 数据类型有什么用呢? 记住:不同的数据类型,在内存中分配的空间大小不同。 也就是说,Java虚拟机到底给这个数据分配多大的空间,主要还是看这个变量的数据类型。 根据不同的类型,分配不同大小的空间。 对于int这种整数类型,JVM会自动给int分配4个字节大小的空间。 1个字节=8个比特位 1个比特位就是一个1或0. 注意:比特位是二进制位。 int是占用多少个二进制位?1个int占有32个二进制位(bit位) int i = 1; 实际上在内存中是这样表示的: 00000000 00000000 00000000 00000001 int i = 2; 00000000 00000000 00000000 00000010 二进制位就是:满2进1位(0 1 10 11 100 101....) 十进制位就是:满10进1位(1 2 3 4 5 6 7 8 9 10) 对于一个变量来说,包括三要素: 变量的数据类型 变量的名字 变量中保存的值 类型+名字+值 类型决定空间的大小。 起个名字是为了以后方便访问。(以后在程序中访问这个数据是通过名称来访问的。) 值是变量保存的数据。 变量名属于标识符吗? 变量名命名规范中是怎么说的? 首字母小写,后面每个单词首字母大写,遵循驼峰命名方式,见名知意。 变量怎么声明/定义,语法格式是什么? 数据类型 变量名; 例如: int age; 在java语言中有一个规定,变量必须先声明,再赋值才能访问。(没有值相当于这个空间没有开辟。) 在java语言中怎么给一个变量赋值呢,语法格式是什么? 记住:使用一个运算符,叫做“=”,这个运算符被称为赋值运算符。 赋值运算符“=”的运算特点是:等号右边先执行,执行完之后赋值给左边的变量。 变量可以声明的时候赋值吗?可以的。 变量:程序运行期间,内容可以发生改变的量。 创建一个变量并且使用的格式: 数据类型 变量名称; // 创建了一个变量 变量名称 = 数据值; // 赋值,将右边的数据值,赋值交给左边的变量 一步到位的格式: 数据类型 变量名称 = 数据值; // 在创建一个变量的同时,立刻放入指定的数据值 */ public class VarTest02 { /** * 这是一个程序的入口 * * @param: args是main方法的参数 */ public static void main(String[] args) { // 定义一个int类型的变量,起名age,该变量用来存储人的年龄。 int age; // 变量声明之后,没有手动赋值,可以直接访问吗? // 编译报错:错误: 可能尚未初始化变量age //System.out.println(age); // 给变量赋值 age = 45; System.out.println(age); // 这是访问变量。 System.out.println("age"); // 这是访问字符串。 // 变量:可以变化的量。 // 重新赋值 age = 80; System.out.println(age); // 再次重新赋值 age = 90; System.out.println(age); // 体重80kg int weight = 80; System.out.println(weight); //a,b没有赋值,c赋值100.不能使用a,b变量 int a, b, c = 100; boolean var1 = false; // 将一个变量的数据内容,赋值交给另一个变量 // 右侧的变量名称var1已经存在,里面装的是false布尔值 // 将右侧变量里面的false值,向左交给var2变量进行存储 boolean var2 = var1; System.out.println(var2); // false } }
使用变量的注意事项:
- 方法体当中的代码遵循自上而下的顺序依次逐行执行。
- Java中每个变量必须先声明赋值,才能使用
- 使用变量名来访问这块区域的数据
- 变量的作用域:其定义所在的一对括号内,变量只有在其作用域内才有效
- 变量可以重新赋值,但在同一个域当中,不能重复声明。(和类型没有关系)
- 可以通过一个语句来创建多个变量,但是一般情况不推荐这么写。
- 变量右侧的数据值不能超过左侧类型的范围。
- java中有一个很重要的原则:就近原则。哪个离我近,就访问哪个。
代码举例
/* 使用变量的时候,有一些注意事项: 1. 如果创建多个变量,那么变量之间的名称不可以重复。 2. 对于float和long类型来说,字母后缀F和L不要丢掉。 3. 右侧的数据值不能超过左侧类型的范围。 4. 没有进行赋值的变量,不能直接使用;一定要赋值之后,才能使用。 5. 变量使用不能超过作用域的范围。 【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。 6. 可以通过一个语句来创建多个变量,但是一般情况不推荐这么写。 */ public class Demo03VariableNotice { public static void main(String[] args) { int num1 = 10; // 创建了一个新的变量,名叫num1 // int num1 = 20; // 又创建了另一个新的变量,名字也叫num1,错误! int num2 = 20; int num3; num3 = 30; int num4; // 定义了一个变量,但是没有进行赋值 // System.out.println(num4); // 直接使用打印输出就是错误的! // System.out.println(num5); // 在创建变量之前,不能使用这个变量 int num5 = 500; System.out.println(num5); // 500 { int num6 = 60; System.out.println(num6); // 60 } // int num6; // System.out.println(num6); // 已经超出了大括号的范围,超出了作用域,变量不能再使用了 // 同时创建了三个全都是int类型的变量 int a, b, c; // 各自分别赋值 a = 10; b = 20; c = 30; System.out.println(a); // 10 System.out.println(b); // 20 System.out.println(c); // 30 // 同时创建三个int变量,并且同时各自赋值 int x = 100, y = 200, z = 300; System.out.println(x); // 100 System.out.println(y); // 200 System.out.println(z); // 300 } }