一. jdk(Java开发工具包): 用来编译 和 运行 Java 程序
1. - bin : 存放Java相关的 可执行命令
- javac : 用来编译 Java 源代码
- java : 用来运行 Java 字节码文件的指令
- javadoc : 用来生成 java 文档的命令
- jshell : 用来在控制台编写Java代码的命令
- conf : 配置,存放 JDK相关的配置文件
- lib : JDK以来的库文件
2. 配置 环境变量 环境变量不是必须要配置的、但为了使用Java方便、建议开发者在电脑中进行配置,以方便操作系统能快速找到Java**
- JAVA_HOME : 配置 JDK 的安装目录,该配置Java特有的,该环境不是必须的,但为了保证和后期学习(tomcat, maven...)的内容进行良好的对接,建议配上
- D:Program FilesJavajdk-17
- Path : 是操作系统自带的环境变量,主要的作用是用来在命令提示符下 快速查找 计算机中指令(命令)的位置
- D:Program FilesJavajdk-17bin
- %JAVA_HOME%bin (推荐的写法)
- CLASSPATH : 该配置Java特有的, 用来标识 字节码(java编译后生成的class) 文件所在的位置
- . 点 代表 当前目录
计算机 -> 右键属性 -> 高级系统设置 -> 环境变量
环境变量分为 2种,
>>> 用户环境变量: 只对当前登录的账户生效、其他账户默认不识别
>>> 系统环境变量: 对所有账户都生效
3.验证 Java 是否 安装成功
- java -version
- javac -version
二.Java变量
1.变量的声明(定义):计算机用来存储数据的容器、且该容器中存储的时候会在某种情况下被程序所改变,那么这个所谓的容器就可以称为 变量
> 语法: 类型 变量名
- 类型 :数据类型,java识别的数据格式
- 变量名: 是 Java中的标识符,符合标识符的命名规范,采用小驼峰命名法
- 声明是一个语句、必须以 `;` 结尾
int a ; // 声明一个 存储 int 类型的 变量 a
2.变量赋值
> Java中使用 `=` 作为 赋值运算符
> 赋值运算的优先级 非常低
> 赋值运算的读法 是 从 右向左读
> 赋值运算 是一个语句、必须以 ; 结尾
```
a = 10 ; // 将 10 赋值给 a 变量
```
3. 声明并赋值
> 语法: 类型 变量 = 值 ;
```
int a = 10 ; // 将 10 赋值给 int 数据类型的变量 a
```
4. 声明多个相同类型的变量
> 语法: 类型 变量 , 变量2, ... ;
```
int a = 10 , b , c =100 ; // 声明了 3个变量,且 a = 10 , b未赋值, c = 100
```
**局部变量: 定义在方法中的变量**
**局部变量 必须赋初值之后、才能使用(除赋值以外的其他动作)**
**局部变量 不允许重复定义**
三.Java 数据类型
1基本数据类型
> Java中内置了8种基本数据类型、分别表示 整数、小数、字符、和 布尔 类型
> byte
> short
> int
> long
> float
> double
> char
> boolean
## 整数类型
> byte
> short
> int
> long
4种数据类型、可以理解为四种不同大小的容器,用来存储不同的数据
计算机本质上 只识别 0 和 1的二进制数据、但是二进制表示形式比较复杂,二进制的单位是 bit
byte 在计算机中 只能存储 1个字节b的数据, 1b = 8bit
short 在计算中 只能存储 2个字节的数据 , 16bit (32767) ------ -32768
int 在计算机中, 只能存储 4个字节的数据, 32bit (2^31 -1 ) -2^31
long在计算机中,只能存储8字节的数据, 64bit (2^63 -1) -2^63
2.二进制
(1).> 由 0 和 1 组成的数字
> 二进制的最高位 代表 符号位、 0 代表 正数、 1 代表 负数
> byte 占用 1个字节 8bit, 那么 他的最大值 是 0111 1111 (127) ,他的最小值 1000 0000 (-128)
(2)二进制转十进制的方法
正数: 0101 1100 ===> 0 * 2^0 + 0*2^1 + 1 * 2^2 + 1* 2^3 + 1 * 2^4 + 0 * 2^5 + 1 * 2^6 = 0 + 0 + 4 + 8 + 16 + 0 + 64 = 92
负数: 1010 1100
如果 一个二进制 代表 负数、那么要计算他的十进制,必须 先获取 该二进制 对应的补码,在根据补码计算对应的 10进制
负数的 补码 = 负数的 原码 取反 + 1
1010 1100 ===> 0101 0011 + 1 ===> 0101 0100 ==> 0 + 0 + 4 + 0 + 16 + 0 + 64 + 0 ===> -84
(3)十进制转二进制
35 ====> 100011
|类型|占用空间|最大值|最小值|
|----|----|----|----|
|byte|1|2^7-1|-2^7|
|short|2|2^15-1|-2^15|
|int|4|2^31-1|-2^31|
|long|8|2^63-1|-2^63|
3.小数类型
- float
- double
float 占用4个字节 , 单精度
double 占用8个字节 , 双精度
小数的字面量默认类型是 double , 如果要表示 float 类型,需要在 字面量后 添加 F,如果要强制表示double, 可以在尾部添加 D(通常不需要添加)
> 小数 在计算机中进行数据存储的时候,可能会产生精度损失, 所以在 Java中,小数在做运算的时候,得到的结果有可能和数学中得到的结果不一致
3.5 ===> 0011.1
3.25 ===> 0011.01
4.字符类型
- 在java中, 字符由 单引号 进行定义
- 占用 2个字节,字符的编号是从0开始的,所以 他的两个字节的最高位 不代表符号位
- char的最大数字表示是 65535 (2^16 -1)
5.字符的表示形式
- 单引号 中定义一个 单字符
- 用一个数字 (0-65535) 表示
- 用 u unicode编码方式表示
字符集编码



