环境和工具准备
- 下载、安装 JDK,配置 Java 开发环境(请面向百度配置)
- 下载、配置Maven(推荐使用,也可使用传统jar包形式,不联网就没用了)
- 下载、安装 IntelliJ IDEA(软件收费,免费可以考虑vscode,eclipse(推荐),硬刚记事本也行)
JDK(Java Development Kit) 是必须要先安装的,否则 Java 程序就没法编译和执行,JDK!JDK!JDK重要的事情说三遍,别整个jre(Java Runtime Environment),版本至少为1.8。
Maven 也是需要提前安装和配置的,前期不是必须的,后面进阶的话,需要一些练手项目,它们通常都需要 Maven 来加载第三方类库。部分老项目没有使用maven管理,也需要了解如何使用jar包。
IDE:
1、IntelliJ Idea, 用就完了,idea天下第一;
2、Eclipse, 用习惯了idea就回不去eclipse了,且用且珍惜;
3、Visual Studio Code,最强文本编辑器,喜欢自己折腾的话这个也很不错,运行java需要安装相关插件。
Java 基础入门
1)基本数据类型
- 8 种基本数据类型(boolean、char、byte、short、int、long、float、double)
| 取值范围 | 所占字节 | 类型 | 包装类 |
byte | -128~127 | 1 | 整数型 | Byte |
short | -32768~32767 | 2 | 整数型 | Short |
int | -231~231-1 | 4 | 整数型 | Integer |
long | -263~263-1 | 8 | 整数型 | Long |
float | 3.402823e+38 ~ 1.401298e-45 | 4 | 浮点型 | Float |
double | 1.797693e+308~ 4.9000000e-324 | 8 | 浮点型 | Double |
boolean | true和false | 1 | 布尔型 | Boolean |
char | \u0000~\uFFFF | 2 | 字符型 | Character |
- 为什么不能使用“==”比较浮点数
浮点数在运算过程中存在精度问题,所以通过“==”运算符来比较浮点数是不可靠的,可采取Math.abs(f1-12)<THRESHOLD的方式来比较浮点数,THRESHOLD是误差范围,也可以使用BigDecimal来进行比较。
- 基本类型和包装类型的区别
1、包装类是对象,拥有方法和字段,对象的调用都是通过引用对象的地址;基本类型不是
2、包装类型是引用的传递;基本类型是值的传递
3、声明方式不同:
基本数据类型不需要new关键字;
包装类型需要new在堆内存中进行new来分配内存空间。
4、存储位置不同:
基本数据类型直接将值保存在值栈中;
包装类型是把对象放在堆中,然后通过对象的引用来调用他们。
5、初始值不同:
int的初始值为 0 、 boolean的初始值为false;
包装类型的初始值为null。
6、使用方式不同:
基本数据类型直接赋值使用就好;
包装类型一般是在传参或者作为对象属性时使用。
- 自动拆箱与装箱
Java提供了自动拆箱与装箱机制,在使用包装类作为参数时,允许传入基本类型进行装箱操作,反之会执行拆箱操作;
当使用==进行比较时,不同类型需要对包装类进行拆箱,同类型会自动拆箱或装箱。
- Integer 的缓存机制
1、i >= 128 || i < -128 =====> new Integer(i)
2、i < 128 && i >= -128 =====> SMALL_VALUES[i + 128]
SMALL_VALUES本来已经被创建好,也就是说在i >= 128 || i < -128是会创建不同的对象,在i < 128 && i >= -128会根据i的值返回已经创建好的指定的对象。
2)操作符
- 算术运算符
+ | 加法 - 相加运算符两侧的值 |
- | 减法 - 左操作数减去右操作数 |
* | 乘法 - 相乘操作符两侧的值 |
/ | 除法 - 左操作数除以右操作数 |
% | 取余 - 左操作数除以右操作数的余数 |
++ | 自增: 操作数的值增加1 |
-- | 自减: 操作数的值减少1 |
- 逻辑运算符
&& | 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 |
| | | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 |
! | 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 |
- 比较运算符
== | 检查如果两个操作数的值是否相等,如果相等则条件为真。 |
!= | 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 |
< | 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 |