第二章 基本数据与运算
2.1 关键字
关键字是指在高级编程语言中被赋予特殊意义的一些单词,关键字一般都是小写。好比一些汉语中的专有名词,不能乱用。
- 用于定义数据类型的关键字:byte、int、long、short、float、double、char、class、boolean、interface、void
- 用于定义数据类型值的关键字:true、false、null
- 用于定义流程控制语句的关键字:if、else、switch、case、default、while、do、for、break、continue、return
- 用于定义访问权限修饰符的关键字:public、protected、private
- 用于定义继承关系的关键字:extends、implements
- 用于定义实例对象的关键字:new、this、super、instanceof
- 用于定义函数类型的关键字:static、final、abstract、synchronized
- 用于处理异常的关键字:try、catch、finally、throw、throws
- 用于包的关键字:package、import
- 其他的修饰关键字:native、assert、volatile、transient
2.2 标识符
标识符是指我们在程序中对变量、函数、类、常量、接口等所定义的名称,也就是说这些名称都是我们自定义的,标识符必须满足以下组成规则:
- 标识符可以由数字、字母、下划线、美元符等组成
- 标识符不可以数字开头,可以但不推荐是用下划线或美元符开头
- 标识符不能是关键字
- 标识符也不能是Java内置类的名称
- 标识符可以为任意长度,但必须是一个连续的词
- 标识符严格区分大小写
标识符是为那些抽象的数据进行自定义起名的,为了方便程序的阅读和理解,起名尽量要有含义,不要通篇都是a、b、c、d、e……。在特殊情况下可以使用j、k、m、n、i 之类的
标识符命名规范:
- 大驼峰式:主要针对类名、接口名,所有单词的首字母大写
- 小驼峰式:主要针对于变量名、函数名,除第一个单词外,其余单词的首字母大写
- 常量规范:所有单词字母大写,单词间用下划线分隔
- 包名规范:所有单词字母小写,但此语单词之间用句号分隔
.
2.3 注释
注释是用于注解和说明程序的一些程序中的内置文本信息,但这些内置文本不属于代码范畴。所以在对含有注释的源代码进行编译时,所生成的字节码中不含有注释。
注释有三种:
单行注释://注释内容,直到换行为止
多行注释:/*注释内容 内部可换行*/
文档注释:/** 注释内容 内部可换行*/
文档注释可以被编译器识别并生成相应的程序说明书
2.4 常量与进制
常量是指在程序运行过程中直接出现的一些数据
常量有哪些:
- 整数常量
- 小数常量
- 字符常量:由一个字母、数字、符号、被单引号标识的数据
- 字符串常量:由多个字母、数字、符号、被双引号标识的数据
- 布尔类型常量
- null常量
机器只能识别二进制
二进制 | 十进制 |
---|---|
0 | 0 |
1 | 1 |
10 | 2 |
11 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | 10 |
1011 | 11 |
2.5 变量
指在程序运行过程中值可以变化的量
- 变量的本质就是在内存中程序所处的进程中的一个临时的存储区域
- 该区域的存储值是有限制的
- 该区域的变化必须是同类型或向下兼容的
- 该区域有其自身的物理内存地址——指针
该区域中存储值的限制跟数据的变化类型有关,由数据类型
决定
该区域的空间分配和物理内存地址由计算机底层决定
2.6 数据类型
在Java中,数据类型主要分为两大类:
**基本数据类型:**在变量的空间中存储数据
-
整型
-
byte 1字节,2^8 = 256 ,-128~127,即 - 2^7 ~ 2^7 - 1
-
short 2字节,2^16 =65536,-32768 ~32767 即 -2 ^ 15 ~2 ^15 - 1
-
int 4字节,2^32, -2 ^ 31 ~ 2 ^31 - 1
-
long 8字节,2^64, -2 ^63 ~ 2 ^ 63 - 1
-
-
实型(浮点型)
- float 4字节
- double 8字节
-
字符型(char) 4字节
-
布尔型(boolean)不确定
在常量中,整数常量默认为int类型,小数常量默认为double类型
布尔类型如果是单一变量的话在JVM中true被认为是1,false被认为是0
如果是布尔类型数组的话,true和false在JVM中被认为是byte类型。1字节
**引用数据类型:**数据是在堆内存中存储,变量仅仅存放的是数据在堆内存中的地址
- 字符串
- 数组
- 对象
在Java中,存储在堆内存中的数据统称为对象
2.7 运算符
- 算数运算符
算术运算符 | 含义 | 备注 |
---|---|---|
+ | 加法 | 将符号连接的两个数据相加 |
- | 减法 | 将符号连接的两个数据相减 |
* | 乘法 | 将运算符连接的两个数据相乘 |
/ | 除法 | 将运算符连接的两个数据相除 |
% | 取余 | a%b表示求出a/b整除后的余数 |
a ++ | 后置自增 | a自身加一,使用原来的值 |
++ a | 前置自增 | a自身加一,使用加了之后的值 |
a – | 后置自减 | a自身减一,使用原来的值 |
– a | 前置自减 | a自身减一,使用加了之后的值 |
- 赋值运算符
赋值运算符 | 含义 | 备注 |
---|---|---|
+= | 加法赋值 | a += 3相当于a = a + 3 |
-= | 减法赋值 | a -= 3相当于a = a - 3 |
*= | 乘法赋值 | a *= 3相当于a = a * 3 |
/= | 除法赋值 | |
%= | 取余赋值 | |
= | 赋值 | 将符号右边的值赋给左边 |
- 比较运算符
- 大于
>
- 小于
<
- 等于
==
- 大于等于
>=
- 小于等于
<=
- 不等于
!=
- 大于
- 逻辑运算符
- 单与
&
- 单或
|
- 异或
^
- 非
!
- 双与
&&
- 双或
||
- 单与
&&
左边为假时右边不执行
||
左边为真时右边不执行
- 位运算符
- 按位与
&
- 按位或
|
- 按位异或
^
- 左移
<<
- 右移
>>
- 按位与
- 三目运算符
数据类型 变量名 = 布尔表达式 ? 值1 : 值2;
int number = 10 % 2 == 0 ? 5 : 13; //当布尔表达式为真时,number = 5,否则number = 13
补充:变量的交换问题
方法一:定义第三个变量,用于交换时存储
方法二:使用算术运算符进行加减交换
#####2.8 常见错误
-
未声明变量:在运算过程中未声明变量就使用该变量
-
整型溢出: 数据超出该整型数据类型的取值范围
-
取整错误:
-
一个是小数的问题,小数是一个近似值,可能取值偏小或偏大
-
一个是整数的问题,无限循环小数 0.3333333 * 3 = 0.9999999,数学上是1
-
-
超出预期的除法问题
- 除号(/)左右两边是整数,结果为整数
- 除号(/)左右两边为小数,结果为小数
-
额外冗余的输入对象:每个类中定义一个Scanner输入对象即可