环境和工具准备

  • 下载、安装 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。

  • 比较运算符

==

检查如果两个操作数的值是否相等,如果相等则条件为真。

!=

检查如果两个操作数的值是否相等,如果值不相等则条件为真。

>

检查左操作数的值是否大于右操作数的值,如果是那么条件为真。

<

检查左操作数的值是否小于右操作数的值,如果是那么条件为真。

>=

检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。

<=

检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。