第二章 Java基本语法(上):变量与运算符
目录
1.关键字和保留字
2.标识符
3.变量
4.运算符
5.程序流程控制
2.1 关键字与保留字
2.1.1 关键字(keyword)
关键字的定义和特点:
定义:被Java语言赋予了特殊含义,用作专门用途的字符串(单词)。
特点:关键字中所有字母都为小写。
2.1.2 保留字(reserved Word)
Java保留字:现有Java版本尚未使用,但以后的版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字。
比如:goto、const等。
2.2 标识符(Identifier)
2.2.1 标识符:
Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符;
技巧:凡是自己可以起名字的地方都叫标识符,比如:类名、变量名、方法名、接口名、包名......
2.2.2 定义合法标识符规则:(强制遵守)
由26个英文字母大小写,0-9,_或¥组成;
数字不可以开头;
不可以使用关键字和保留字,但能包含关键字和保留字;
Java中严格区分大小写,长度无限制;
标识符不能包含空格。
注:如果不遵守以上规则,编译不通过。
2.2.3 Java标识符名称命名的规范:(只是建议大家遵守、或者约定俗成)
包名:多单词组成时所有字母都小写;
类名和接口名:多单词组成时,所有单词都首字母大写(大驼峰);
变量名和方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写;
常量名:所有字母都大写,多单词时每个单词用下划线连接。
注意1:在起名的时候,为了提高阅读性,要尽量有意义,“见名知意”;
注意2:Java采用Unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。
2.3 变量
>基本数据类型
>基本数据类型变量间转换
>基本数据类型与String间转换
>进制与进制间的转换
2.3.1 变量的概念:
内存中的一个存储区域;
该区域的数据可以在同一个类型范围内不断变化;
变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值。(Java是强类型的语言)
2.3.2 变量的作用:
用于在内存中保存数据;
2.3.3 使用变量时注意:
Java的每一个变量必须先声明,后使用;
使用变量名来访问这块区域的数据;
变量的作用域:其定义所在的一对{}内;
变量只有在其作用域内才有效,换句话说,出了定义域,它就失效了;
同一种作用域内,不能定义重名的变量。
2.3.4 变量的使用:
Java定义变量的格式:数据类型 变量名 = 变量值;(使用前未被定义或未被赋值,编译都会报错)
2.3.5 变量的分类-按数据类型分:
对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间。

注:还有一种分类方式:按照变量声明的位置的不同分

2.3.6 整型类型:byte、short、int、long
Java各整数类型有固定的表数范围和字段长度,不受具体OS影响,以保证Java程序的可移植性;
Java的整型常量默认为int型,声明long型常量须后加'l'或'L';如:long i1 = 232536457457L;(L只是声明,编译后L不显示)
Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long;
byte 1字节 -128~127
short 2字节
int 4字节
long 8字节
注:1byte = 8bit,bit是计算机中最小的存储单位,byte是计算机中基本存储单元。
2.3.7 浮点类型:float(单精度)、double(双精度)--------表示带小数点的数值
与整数类型类似,Java浮点类型也有固定的表数范围和字段长度,不受具体操作系统的影响;
浮点型常量有两种表示形式:
>十进制数形式:如 5.12 512.0f .512(必须有小数点);
>科学计数法形式:如 5.12e2 512E2 100E-2;
float:单精度,尾数可以精确到7位有效数字,很多情况下,精度很难满足需求;
double:双精度,精度是float的两倍,通常采用此类型。
Java的浮点型常量默认为double型,声明float型常量,须后加'f'或'F'。
单精度float 4字节
双精度double 8字节
2.3.8 char类型(1字符=2字节)
定义char型变量,通常使用一对' ',内部只能写一个字符;
表示方式:①声明一个字符;②转义字符(char c5 = '\n' 意思是声明一个换行符,\t为制表符Tab);
直接使用Unicode值来表示字符型常量:'\uXXXX'。其中,XXXX代表一个十六进制整数。如:\u000a表示\n;
char类型是可以进行运算的。因为它都对应有Unicode码。
2.3.9 乱码的情况
乱码:世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号,因此,要想打开一个文本文件,
就必须知道它的编码方式,否则错误的编码方式解读,就会出现乱码。
Unicode:一种编码,将世界上所有的符号都纳入其中,每一个符号都给予一个独一无二的编码,使用Unicode
没有乱码的问题。
Unicode的缺点:只规定了符号的二进制代码,却没有规定这个二进制代码该如何存储;无法区分Unicode和ASCII;
计算机无法区分三个字节表示一个符号还是三个符号。另外,已知英文字母只用一个字节表示就够了,如果Unicode
统一规定,每个符号用三个或四个字节表示,那么每个英文字母前都必然有两到三个字节是0,造成存储空间的极大浪费。
UTF-8:是在互联网上使用最广的一种Unicode的实现方式。

2.3.10 布尔类型(Boolean)
①只能取两个值中之一;
②常在条件判断、循环结构中使用;
2.3.11 基本数据类型之间的运算规则(不含boolean)
1.自动类型提升
当容量小的数据类型变量和容量大的数据类型变量做运算时,结果自动提升为容量大的数据类型;
说明:此时的容量大指的是,表示数的范围的大和小,比如:float容量要大于long的容量。
byte、char、short --> int --> long --> float --> double
注:当byte、char和 short三种类型的变量做运算时,至少需要用int类型变量接收。
2.强制类型转换
定义:自动类型提升运算的逆运算
强制转换方式:类型符 变量2 = (类型符)变量1
例:double d1 = 12.3;
int i1 = (int)d1; //将double类型变量强制转换为int类型。(截断操作,可能会导致损失精度)
补充:
①long l = 123123;//定义long类型变量后面不加L声明,不会报错,因为编译系统默认把不加L的123123看成int型,
再把int型123123赋值给long型变量l;但如果不是123123,而是一个超出int范围的数,就会报错;
②float不行,后面必须要加F。
2.3.12 字符串类型:String
①String不是基本数据类型,属于引用数据类型;
②使用方式与基本数据类型一致,例如:String str = "abcd";
③一个字符串可以串接另外一个字符串,也可以直接串接其他类型的数据。例如:
str = str + "xyz";//连接运算
int n = 100;
str = str + n;
注:定义字符串时可以空,但定义char型变量不可以空。
④String可以和八种基本数据类型做运算,且运算只能是连接运算;运算的结果仍然是String类型;
2.3.13 关于进制
2.4 运算符
定义:运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
主要有:算术运算符、赋值运算符、比较运算符(关系运算符)、逻辑运算符、位运算符(开发中用的不多)、三元运算符。
2.4.1 算术运算符

注:① %取余(取模)运算,结果符号与被模数的符号相同;
② (前)++:先自增1,再运算。(后)++:先运算,再自增1;
③ 自增运算不会改变本身变量的数据类型(方便,开发中常用);
2.4.2 赋值运算符
= += -= *= /= %=
(1)赋值符号:=
int i2 = 10;
int j2 = 10;
等价于:int i2,j2; //连续赋值
i2 = j2 = 10;
也可以这样:int i3 =10, j3 = 20;
(2)+= -=
int num1 = 10;
num1 += 2; //等价于 num1 = num1 +2;
注意:num1 += 2不改变变量的数据类型,但num1 = num1 +2(变量类型不是int时)会改变数据类型!
小练习1:有几种方法实现变量+2的操作(前提:int num = 10)?
方式一:num = num +2;(不推荐,因为可能改变变量数据类型)
方式二:num += 2;(推荐,因为不改变变量数据类型)
小练习2:有几种方法实现变量+1的操作(前提:int num = 10)?
方式一:num = num +2;
方式二:num += 2;
方式三:num ++;(推荐)

浙公网安备 33010602011771号