Java入门第一季-复习
1.变量和常量
1.1 Java中的关键字
Java 中关键字是一些具有特殊含义的保留字,它们在 Java 语言中有着特殊的用途,不能作为标识符或变量名等其他用途。下面是 Java 中的关键字列表:
abstract | assert | boolean | break | byte |
---|---|---|---|---|
case | catch | char | class | const* |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto* | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | short | static | strictfp | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
1.2 Java中的标识符
标识符是用来表示类、变量、方法和常量等命名的符号。Java 的标识符需要遵循以下规则:
- 标识符只能由字母、数字、下划线和美元符号组成,不能使用其他特殊字符。
- 标识符不能以数字开头,只能以字母、下划线或美元符号开头。
- 标识符不能是 Java 的关键字和保留字,如 if、else、for 等。
- 标识符的长度没有限制,但建议不要超过 15 个字符,以便提高代码的可读性。
- Java 中建议使用驼峰命名法来命名标识符,即首字母小写,后面的每个单词首字母大写,例如:firstName、lastName、getUserName()
1.3 变量的定义
1.变量的使用是程序设计中一个重要的环节,声明变量就是告诉编译器这个变量的数据类型。
2.在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量。
3.在声明变量时可以是没有赋值,也可以是直接赋初值。
4.整数类型变量:用于存储整数数值,既没有小数部分的值。整数类型分为4种不同的类型:字节型(byte)、短整型(short)、整形(int)、长整型(long)。占用空间指的是不同类型的变量分别占用的内存大小。取值范围是变量储存的值不能超出的范围。详细如下表。
类型名 | 占用空间 | 取值范围 |
---|---|---|
byte | 8位(1个字节) | -128~127 |
short | 16位(2个字节) | -32768~32767 |
int | 32位(4个字节) | -2147483648~2147483647 |
long | 64位(8个字节) | -922372036854775808~922372036854775807 |
5.浮点数类型的变量:用于存储小数数值。浮点数类型分为两种:单精度浮点数(float)、双精度浮点数(double),double型所表示的浮点数比floa型更精确。详细如下表。
类型名 | 占用空间 | 取值范围 |
---|---|---|
float | 32位(4个字节) | 1.4E-45~3.4028235E38 |
double | 64位(8个字节) | 4.9E-324~1.7976931348623157E308 |
在取值范围中,E表示以10为底的指数,E后面的“+”和“-”号代表正指数和负指数
6.字符类型变量:用于存储单一字符,在Java中用char表示。char的字符变量占用2个字节。赋值时,要使用英文半角格式的单引号 ’ ’ 把字符括起来,如’a’。
7.布尔类型变量:用来存储布尔值,在Java中用Boolean表示,布尔变量只有两个值,即ture和false。具体如下示例:
boolean flag = flase; //声明一个boolean类型的变量,初始值为false
flag = ture; //改变flag变量的值为ture
1.4 变量的数据转换
变量类型之间的转换可以分为自动类型转换和强制类型转换两种。
1.自动类型转换:如果两种数据类型兼容,Java 会自动将一种数据类型转换成另一种数据类型。兼容的数据类型包括:byte、short、char、int、long、float、double。自动类型转换遵循以下规则:
-
数据类型范围小的可以自动转换成数据类型范围大的。
-
整型可以自动转换成浮点型。
-
char 类型可以自动转换成 int 类型。
2.强制类型转换:如果需要将一个数据类型强制转换成另一个数据类型,可以使用强制类型转换运算符
(type)
进行转换。强制类型转换可能会导致精度丢失或溢出,需要注意使用。强制类型转换遵循以下规则: -
强制类型转换需要在需要转换的数据类型前加上括号,并在括号中指定要转换的数据类型。
-
数据类型范围大的需要强制转换成数据类型范围小的。
需要注意,在进行类型转换时,可能会导致精度丢失或溢出,需要仔细考虑转换的必要性和安全性。
1.5 变量的作用域
-
变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用区域。
-
在程序中,变量一定会被定义在某一对大括号中,该大括号所包含的代码区域便是这个变量的作用区域
2.常用的运算符
2.1 赋值运算符
Java 的赋值运算符用于将一个值赋给一个变量,其中包括基本数据类型和引用类型。Java 中的赋值运算符包括以下几种:
-
=:简单的赋值运算符,将右侧的值赋给左侧的变量。
-
+=:加等于运算符,相当于 a = a + b。
-
-=:减等于运算符,相当于 a = a - b。
-
*=:乘等于运算符,相当于 a = a * b。
-
/=:除等于运算符,相当于 a = a / b。
-
%=:取模等于运算符,相当于 a = a % b。
2.2 算数运算符
Java 的算术运算符用于进行数学运算,包括加、减、乘、除和取模(求余数)运算,下面是 Java 中的算术运算符:
-
+:加法运算符,用于将两个值相加。
-
-:减法运算符,用于将两个值相减。
-
*:乘法运算符,用于将两个值相乘。
-
/:除法运算符,用于将两个值相除。
-
%:取模(求余数)运算符,用于计算两个值相除后的余数。
2.3 自增与自减运算符
Java 中自增(++)和自减(–)运算符是一元运算符,用于将一个数增加 1 或减少 1。它们可以分为前缀和后缀两种形式:
-
前缀自增/自减:++i 或 --i,先将变量加/减 1,然后返回变量的值。
-
后缀自增/自减:i++ 或 i–,先返回变量的值,然后再将变量加/减 1。
2.4 比较运算符
Java 中的比较运算符用于比较两个值的大小关系,并返回一个布尔值(true 或 false)。下面是 Java 中的比较运算符:
-
==:等于运算符,用于比较两个值是否相等。
-
!=:不等于运算符,用于比较两个值是否不相等。
-
>:大于运算符,用于比较左侧的值是否大于右侧的值。
-
<:小于运算符,用于比较左侧的值是否小于右侧的值。
-
>=:大于等于运算符,用于比较左侧的值是否大于等于右侧的值。
-
<=:小于等于运算符,用于比较左侧的值是否小于等于右侧的值。
2.5 逻辑运算符
Java 中逻辑运算符是用于将多个条件表达式组合成一个更复杂的条件表达式,并返回一个布尔值(true 或 false)。下面是 Java 中的逻辑运算符:
-
&&:与运算符,用于将两个条件表达式连接起来,当且仅当两个表达式都为 true 时返回 true。
-
||:或运算符,用于将两个条件表达式连接起来,当任意一个表达式为 true 时返回 true。
-
!:非运算符,用于取反一个条件表达式的结果,如果原来的表达式结果为 true,则取反后的结果为 false;反之亦然。
2.6 位运算符
Java 中位运算符是用于对二进制数据进行位运算。下面是 Java 中的位运算符:
-
&:按位与运算符,对两个数的二进制进行按位与操作,得到的结果是一个新的二进制数。当两个对应的二进制位都为 1 时,结果为 1;否则为 0。
-
|:按位或运算符,对两个数的二进制进行按位或操作,得到的结果是一个新的二进制数。当两个对应的二进制位都为 0 时,结果为 0;否则为 1。
-
^:按位异或运算符,对两个数的二进制进行按位异或操作,得到的结果是一个新的二进制数。当两个对应的二进制位相同时,结果为 0;否则为 1。
-
~:按位取反运算符,对一个数的二进制进行按位取反操作,得到的结果是一个新的二进制数。对于一个 n 位二进制数,其取反结果为 n 个 1 减去这个数的二进制表示。
-
<<:左移运算符,将一个数的二进制表示向左移动指定的位数,得到的结果是一个新的二进制数。在左移过程中,高位溢出舍弃,低位补 0。
-
>>:右移运算符,将一个数的二进制表示向右移动指定的位数,得到的结果是一个新的二进制数。在右移过程中,低位溢出舍弃,高位根据符号位补齐。如果这个数是正数,那么高位补 0;如果这个数是负数,那么高位补 1。
-
>>>:无符号右移运算符,将一个数的二进制表示向右移动指定的位数,得到的结果是一个新的二进制数。在右移过程中,低位溢出舍弃,高位补 0。
需要注意,位运算符只能用于整数类型的数据。对于浮点类型和布尔类型的数据,不能使用位运算符。此外,在进行位运算操作时,需要考虑数据的二进制补码形式和符号位等因素。
2.7 运算符优先级
Java 中的运算符优先级如下(从高到低):
-
一元运算符: ++, --, +, -, !, ~
-
乘性运算符: *, /, %
-
加性运算符: +, -
-
移位运算符: <<, >>, >>>
-
比较运算符: <, <=, >, >=
-
相等运算符: ==, !=
-
按位与运算符: &
-
按位异或运算符: ^
-
按位或运算符: |
-
逻辑与运算符: &&
-
逻辑或运算符: ||
-
条件运算符: ? :
-
赋值运算符: =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>=
3.流程控制语句
3.1Java条件语句之if
可根据不同的条件执行不同的语句,用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。
使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的“布尔表达式”。如果该表达式返回结果为true,则执行其后语句;如果为false,则不执行if条件之后的语句。
if(条件){
条件成立时执行的代码
}
3.2Java条件语句之if…else
if…else语句是条件语句中最常用的一种形式,它会针对某种条件有选择地做出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”。
if后面“()”内的表达式的值必须是Boolean型的。如果表达式的值为true,则执行紧跟if语句的复合语句;如果表达式的值为false,则执行else后面的复合语句。
同if条件语句一样,如果if…else语句的语句序列只有一条语句,则可以省略该语句序列外面的“{}”。有时为了编程需要,else或if后面的“{}”中可以没有语句。
if(条件的布尔表达式){
代码块1
}else{
代码块2
}
3.3Java条件语句之多重if
多重if语句,在条件1不满足的情况下,才会进行条件2的判断;当前面的条件均不成立时,才会执行else块内的代码。例如,如果考试成绩大于90分,则奖励一个IPHONE 5S,如果成绩介于70至90分之间,则奖励一个红米,否则罚做500个俯卧撑。
if(条件1){
代码块1
}else if(条件2){
代码块2
}else{
代码块3
}
3.4Java条件语句之嵌套if
嵌套if语句,只有当外层if的条件成立时,才会判断内层if的条件。
if(条件1){
if(条件2){
代码块1
}else{
代码块2
}
}else{
代码块3
}
3.5 Java循环跳转语句之break
在Java中,我们可以使用break语句退出指定的循环,直接执行循环后面的代码。
3.6 Java循环跳转语句之continue
continue的作用是跳过循环体中剩余的语句执行下一次循环。