注释
注释:就是对代码的解释和说明。其目的是让人们能够更加轻松地了解代码。为代码添加注释,是十分必须要的,它不影响程序的编译和运行。 Java中的注释分为三种: 单行注释 、多行注释 和文档注释
单行注释:单行注释的格式是使用//,从//开始至本行结尾的文字将作为注释文字。
多行注释:多行注释的格式是使用/* 和 */将一段较长的注释括起来。
?文档注释:以/** 开头,以*/ 结束
关键字
被Java语言赋予了特殊含义,用做专门用途的字符串(单词)我们称之为关键字
- 特点:关键字中所有字母都为小写
- 官方地址:?https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
常见的关键字有哪些呢?请看以下表格:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
对于关键字不 需要去死记硬背,随着后面内容的学习,每一天的积累,不断的敲代码,慢慢的就掌握了。?
标识符
标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含 义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句 块等命名,以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。 在编程语言中,标识符就是程序员自己规定的代表一定含义的单词(java 源程序当中凡是 程序员自己有权利修改的名字),比如类名,属性名,变量名等。如以下代码所示:
public class Demo {
int age;
public void setAge(int a) {
age = a;
}
}
其中,Demo?是一个类名,表示学生类;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中严格区分大小写,长度无限制。
- 标识符不能包含空格。
标识符命名规范(如果不遵守如下的规范,编译可以通过!建议大家遵守)
- 包名:多单词组成时所有字母都小写:xxxyyyzzz
- 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个 单词首字母大写:xxxYyyZzz
- 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
- 在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。
- java采用unicode字符集,因此标识符也可以使用汉字声明,但是强烈不建议使用。
字面量
字面量就是数据/数值,例如:1234,true,”abc”,?中?,3.14。在现实生活中每天都会接 触到数据,例如:你今天的体重是 86Kg,你今天花了 500 元,买了个西瓜重量是 8.6Kg,外 面明明是晴天,你却说狂风暴雨,你说的是假话(false),你明明喜欢她,却嘴上说不喜欢, 撒谎(false)。 软件其实就是为了解决现实生活当中的问题,解决生活当中的问题其实就是处理生活当中 的数据,一门编程语言首先要能够表示数据才可以处理数据,所以 Java 程序通过字面量来表 示数据。 在编程语言中数据一般会被分门别类,所以每个数据都是有数据类型的,不同的数据类型会分配不同大小的内存空间去存储它。数据被分为:整数型、浮点型、字符型、布尔型、字符串型等。
- 整数型(数字):1、2、100、-2
- 浮点型(数字,带小数):1.0、2.0、3.14
- 字符型(文字,单个字符):?a?、?中?
- 布尔型(真假):true、false
- 字符串型(文字,多个字符):”你好呀童鞋,!”
需要注意的是,java 中规定字符型字面量必须采用半角的单引号括起来,而字符串型字面 量必须使用半角双引号括起来。这是一个语法规定,不然编译器就报错了。
常量
常量的分类:
- 自定义常量:通过final关键字定义(后面在面向对象部分讲解)
- 字面值常量,如下图所示:
?代码示例
/*
常量:在程序运行期间,固定不变的量。
常量的分类:
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中的变量包含变量类型、变量名和存储的值三要素。
变量的作用
- 用于在内存中保存数,通过变量名,我们可以实现数据和内存的复用。
声明变量
变量的赋值
声明和赋值变量同时进行
代码示例
/*
变量:程序运行期间,内容可以发生改变的量。
创建一个变量并且使用的格式:
数据类型 变量名称; // 创建了一个变量
变量名称 = 数据值; // 赋值,将右边的数据值,赋值交给左边的变量
一步到位的格式:
数据类型 变量名称 = 数据值; // 在创建一个变量的同时,立刻放入指定的数据值
*/
public class Demo02Variable {
public static void main(String[] args) {
// 创建一个变量
// 格式:数据类型 变量名称;
int num1;
// 向变量当中存入一个数据
// 格式:变量名称 = 数据值;
num1 = 10;
// 当打印输出变量名称的时候,显示出来的是变量的内容
System.out.println(num1); // 10
// 改变变量当中本来的数字,变成新的数字
num1 = 20;
System.out.println(num1); // 20
// 使用一步到位的格式来定义变量
// 格式:数据类型 变量名称 = 数据值;
int num2 = 25;
System.out.println(num2); // 25
num2 = 35;
System.out.println(num2); // 35
byte num3 = 30; // 注意:右侧数值的范围不能超过左侧数据类型的取值范围
System.out.println(num3); // 30
// byte num4 = 400; // 右侧数据超出了byte数据最大范围,错误!
short num5 = 50;
System.out.println(num5); // 50
long num6 = 3000000000L;
System.out.println(num6); // 3000000000
float num7 = 2.5F;
System.out.println(num7); // 2.5
double num8 = 1.2;
System.out.println(num8); // 1.2
char zifu1 = 'A';
System.out.println(zifu1); // A
zifu1 = '中';
System.out.println(zifu1); // 中
boolean var1 = true;
System.out.println(var1); // true
var1 = false;
System.out.println(var1); // false
// 将一个变量的数据内容,赋值交给另一个变量
// 右侧的变量名称var1已经存在,里面装的是false布尔值
// 将右侧变量里面的false值,向左交给var2变量进行存储
boolean var2 = var1;
System.out.println(var2); // false
}
}
使用变量注意事项
- Java中每个变量必须先声明,后使用。如果没有声明,会报“找不到符号”错误
- 在使用之前必须初始化,如果没有初始化,会报“未初始化”错误。变量的声明只是单纯的声明,不会在内存中开辟空间。变量的赋值才会开辟空间。
- 使用变量名来访问这块区域的数据
- 变量的作用域:从定义变量的一行开始,一直到直接所属的大括号结束为止。变量只有在其作用域内才有效。如果超过作用域,也会报“找不到符号”错误 。
- 同一个作用域内,不能定义重名的变量
- 可以通过一个语句来创建多个变量,但是一般情况不推荐这么写。
- 变量右侧的数据值不能超过左侧类型的范围。
- 变量只要第一次声明的时候需要指明数据类型,再次使用这个变量的时候,前面不能再次出现数据类型,否则相当于重新声明一个新的变量。违反了同一个作用域内,不能定义重名的变量。会报错
代码示例
/*
使用变量的时候,有一些注意事项:
1. 如果创建多个变量,那么变量之间的名称不可以重复。
2. 对于float和long类型来说,字母后缀F和L不要丢掉。
3. 如果使用byte或者short类型的变量,那么右侧的数据值不能超过左侧类型的范围。
4. 没有进行赋值的变量,不能直接使用;一定要赋值之后,才能使用。
5. 变量使用不能超过作用域的范围。
【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
6. 可以通过一个语句来创建多个变量,但是一般情况不推荐这么写。
*/
public class VariableNotice {
public static void main(String[] args) {
//变量的定义
int myAge = 12;
//变量的使用
System.out.println(myAge);//12
//编译错误:使用myNumber之前并未定义过myNumber
//System.out.println(myNumber);
//变量的声明
int myNumber;
//编译错误:使用myNumber之前并未赋值过myNumber
//System.out.println(myNumber);
//变量的赋值
myNumber = 1001;
// myNumber = 13242353454646457; 右侧超出了int数据范围,错误!
{
int age = 60;
System.out.println(age); // 60
}
// System.out.println(age); // 已经超出了大括号的范围,超出了作用域,变量不能再使用了
//不可以在同一个作用域内定义同名的变量
//int myAge = 22;
// 同时创建了三个全都是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
/*
int a, b, c = 400; 声明了三个 int 类型的变量,分别起名 a、b、c,
其中 c 变量赋值400,而 a 和 b 是没有赋值的
*/
}
}
变量按数据类型分
对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分 配了不同大小的内存空间。? ? ? ? ? ? ? ? ? ??
?变量按声明的位置分
- 在方法体外,类体内声明的变量称为成员变量。
- 在方法体内部声明的变量称为局部变量。例如:?方法内/代码块内/多条件分支或者循环内声明的变量都是局部变量,其作用范围仅能在当前方法内/代码块内/多条件分支或者循环内生效。?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
|