前言
有两年没有怎么使用过 Java 了,重新复习一下基础的内容,特此记录。
视频课程为B站 尚硅谷宋红康java基础视频 。
关键字和保留字
关键字
定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
特点:关键字中的所有字母都为小写
保留字
定义:现有的Java版本尚未使用,但以后版本可能会作为关键字使用。命名时注意规避。
例如:goto,const
标识符
定义
Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符。
规则
不遵守会导致编译不通过
- 由大小写字母,数字,_或$组成
- 数字不可以开头
- 不可以使用关键字和保留字,但可以包含
- 严格区分大小写,长度无限制
- 不能包含空格
命名规范
不遵守编译依然会通过,遵守规范可以增加代码的可阅读性
- 包名:多单词组成时均为小写
- 类名、接口名:多单词组成时,首字母大写
- 变量名、方法名:多单词组成时,第一个单词首字母小写,之后的单词首字母大写
- 常量名:所有字母都大写,多单词时用下划线连接
变量
基本概念
概念
- 内存中的一个存储区域
- 该区域的数据可以在同一类型范围内不断变化
- 变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值
作用
用于在内存中保存数据
使用格式
数据类型 变量名 = 变量值 ;
注意
- Java中变量必须先声明后使用
- 使用变量名来访问这块区域的数据
- 变量的作用域,其定义在一对{ }中
- 变量只在其作用域内有效
- 同一个作用域内,不能定义重名的变量
数据类型
基本数据类型
数值型
注意:定义long型变量时必须用“l”或“L”作为结尾
浮点型
浮点型变量有两种表示形式:
- 十进制数形式:如 5.12 512.0f .512 (必须有小数点)
- 科学计数法形式:如 5.12e2 512E2 100E-2
Java 的浮点型变量默认为 double 类型,声明 float 型变量,必须后加 f 或 F 。使用浮点型变量时通常使用 double 类型。
字符型
定义 char 型变量,通常使用一对 ‘ ’ ,内部只能写一个字符。
Java 中的字符都使用 Unicode 编码,所以它是可以进行运算的。
转义字符 | 说明 | 转义字符 | 说明 |
---|---|---|---|
\b | 退格符 | " | 双引号 |
\n | 换行符 | ' | 单引号 |
\r | 回车符 | \\ | 反斜线 |
\t | 制表符 |
布尔类型
boolean 类型只能取 true 或 false 。常用于条件判断和循环结构。
基本数据类型之间的运算规则
自动类型提升
当容量小的数据类型变量和容量大的数据类型变量做运算时,结果会自动提升容量。
byte -> short -> int -> float -> double ,当 char 参与运算时,它与 byte 和 short 都会提升为 int 类型,此时的规律为:byte 、 short 、char -> int -> float -> double 。
强制类型转换
通过强转符 () 进行操作,例如:int i1 = (int)d1
,但强转可能会导致精度产生损失。
当定义 long 型变量时,末尾不加 L 可能不会产生编译错误,这是因为该数据在 int 的范围之内,Java 将其作为 int 类型进行计算,而该数据超过 int 的范围时便会产生报错。
float 类型的末尾必须加 f
整型常量默认为 int 型,浮点型常量默认为 double 型。此处的常量指的是直接写的一个数值,例如:byte b2 = b1 + 1
,这样的代码会产生编译错误,1 为 int 类型。
引用数据类型(String)
声明 String 类型变量时,使用一对 “” ,可以和 8 种基本数据类型变量做运算,且只能做连接运算 ‘+’ ,运算结果仍然是 String 。
String 类型转换至其它基本数据类型时需要使用特定的方法,不可使用强转符进行转换。
进制
常见的有二进制、十进制、八进制和十六进制,表示方式如下:
进制 | 表示字符 | 表示方式 |
---|---|---|
二进制 | 0, 1 | 以 0b 或者 0B 开头表示 |
十进制 | 0-9 | |
八进制 | 0-7 | 以数字 0 开头表示 |
十六进制 | 0-9 及 A-F | 以 0x 或 0X 开头表示,A-F 不区分大小写 |
运算符
算术运算符
关于自增计算 ++ 和 -- ,举例说明:
int a1 = 10;
int b1 = ++a1;
System.out.println(a1, b1)
// 输出结果:11, 11
int a2 = 10;
int b2 = a2++;
System.out.println(a2, b2)
// 输出结果:11, 10
赋值运算符
符号:= ,当 = 两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。支持连续赋值。
拓展赋值运算符:+=,-=,*=,/=,%= 。
比较运算符
比较运算符的结果都是 boolean 型。
逻辑运算符
逻辑与 和 短路与 执行结果相同,但执行过程有区别:
- 逻辑与:当遇到一个条件为 false 时,依然去执行后续的条件;
- 短路与:当遇到一个条件为 false 时,不执行后续的条件,直接输出结果 false 。
逻辑或 和 短路或 与 与运算 相同,遇到 true 时结果相同但执行过程不同。
位运算符
位运算是直接对整数的二进制进行的运算。
运算符 | 运算 | 范例 | 解释 |
---|---|---|---|
<< | 左移 | 3 << 2 = 12 | 在一定范围内,每向左移一位,相当于该数乘以 2 |
>> | 右移 | 3 >> 1 = 1 | 在一定范围内,每向右移一位,相当于该数除以 2 |
>>> | 无符号右移 | 3 >>> 1 = 1 | |
& | 与运算 | 6 & 2 = 2 | 将两个数的二进制每一位进行与运算,最后得出结果 |
| | 或运算 | 6 | 3 = 7 | |
^ | 异或运算 | 6 ^ 3 = 5 | (相同为真,不同为假) |
~ | 取反运算 | ~6 = -7 | 包括符号位在内的所有取反 |
注意:位运算相较于整数之间直接计算效率更高。
三元运算符
格式:(条件表达式) ? 表达式 1 : 表达式 2
结果:条件表达式结果为 true 时运算结果为表达式 1 ,为 false 时运算结果为表达式 2 。
注意:
- 表达式 1 和 2 应统一为同种类型;
- 三元运算符可以嵌套使用;
- 等同于 if - else 结构。