Java

0.基础内容

1.程序

计算机在执行某些操作或解决某些问题时,而编写的一系列有序指令的集合

2.java历史

  • 1995年发布第一版
  • java 8、java 11、java 16为长期支持版

3.技术平台

  • Java SE(Java Standard Edition) : 标准版,桌面级应用的Java平台,提供完成的Java核心API
  • Java EE(Java Enterprise Edition) : 企业版,开发企业环境下的应用程序,主要针对web应用开发
  • Java ME(Java Micro Edition) : 小型版,开发移动端应用程序

4.Java特点

  1. 面向对象OOP
  2. 健壮性:强类型机制、异常处理机制、垃圾回收机制等
  3. 跨平台性:Java编译后的字节码文件可以在多个操作系统(安装JVM)下运行
  4. 解释型语言:编译后的字节码文件不能够被计算机直接执行,需要解释器来执行

编译型语言:C、C++

解释型语言:Java、PHP、JS…

5.Java运行机制

javaee入门文档 javaee基础_java

6.JDK、JRE、JVM

javaee入门文档 javaee基础_开发语言_02

  • JDK(Java Development Kit):Java开发工具包。
  • JDK = JRE + Java开发工具集(java.exe/javac.exe/javadoc.exe…)
  • JRE(Java Runtime Environment):Java运行环境。
  • JRE = JVM + Java SE核心类库
  • JVM(Java Vritual Machine):Java虚拟机。
  • 一个虚拟的中间平台,只负责将编译后的字节码文件转换成当前计算机能理解并执行的指令
  • 包括Java解释器、垃圾回收…

7.配置Java环境变量

  • 为什么要配置环境变量?
  • 在控制台中执行指令会在当前文件夹中寻找可执行文件,若没有则会到环境变量中找可执行文件
  • 为了让java.exe和javac.exe等可以在控制台中执行
  • 如何配置环境变量

8.java注释

  • 单行注释
  • 多行注释
  • 文档注释
//-xx -yy 为文档注释的标签 author、vertion...
javadoc -d 文件夹名 -xx -yy Test.java

9.文件路径

  • 相对路径:用的多
  • 绝对路径

10.开发细节

  1. 所有的编码格式要保持一致,避免出现乱码的情况,一般是由UTF-8编码
  2. 一个源文件只能有一个public类,其他类数量不限,文件名必须和public类名保持一致
  3. main方法可以写在任何类中,运行哪个类,入口就是哪个类的main方法
  4. 一个类编译为一个.class文件

11.Java代码规范

  1. 类和方法的注释要以javadoc的方式来写
  2. 保持代码的风格整齐统一
  3. 源文件使用UTF-8编码
  4. 行款不超80
  5. 推荐使用行尾风格

12.Java API文档

Java API

  • 包1
  • 接口
  • 字段
  • 构造器、构造方法
  • 成员方法
  • 异常
  • 包2

13.常用的DOS命令

# 查询目录下的文件
dir
# 切换盘符
cd /D c:
# 切换路径
cd 绝对路径/相对路径
# 切换到上级目录
cd ..
# 切换到根目录
cd \
# 查看目录树
tree 路径
# 清屏
cls
# 创建目录
md
# 删除目录
rd
# 拷贝文件
copy
# 删除文件
del
# 输入内容到文件
echo 
# 移动文件(剪切文件)
move

1.变量

内存中数据存储空间的表示

注意事项:

  1. 变量表示内存中的一个存储区域
  2. 该区域有自己的名称(变量名)和类型(数据类型)
  3. 变量必须先声明,后使用
  4. 该区域的值可以载同一类型范围内不断变化
  5. 在同一个作用域内变量名不能够相同
  6. 变量三要素:变量名、数据类型、变量值

加号使用注意事项:

  1. 两侧都是数值型,则执行加法操作
  2. 两侧有一侧为字符串,则执行拼接操作

1.Java数据类型

  • 基本数据类型(8种)
  • 数值型
  • 整形
  • byte 1个字节
  • short 2个字节
  • int 4个字节
  • long 8个字节
  • 浮点型
  • float 4个字节
  • double 8个字节
  • 字符型 char 2个字节
  • 布尔型 boolean 1个字节
  • 引用数据类型
  • 数组
  • 类(string)
  • 接口

2.整型

类型

占用空间(字节)

范围

byte

1

-128 - 127(-2^7 - 2^7-1)

short

2

-32768 - 32767(-2^15 - 2^15-1)

int

4

-2^31 - 2^31-1

long

8

-2^63 - 2^63-1

注意事项:

  • 有固定的范围和占用空间,不受操作系统限制
  • 默认为int类型,long类型在后面要加上l或L
  • 比特(bit)是计算机中最小存储单位,字节(byte)是计算机中基本存储单元。1byte = 8bit

3.浮点类型

类型

占用空间(字节)

范围

float

4

-3.403E38 - 3.403E38

double

8

-1.798E308 - 1.798E308

注意事项:

  • 浮点数在计算机中存储形式:浮点数 = 符号位 + 指数为 + 位数位
  • 有固定的范围和占用空间,不受操作系统限制
  • 默认为double类型,float类型在后面要加上f或F
  • 浮点数的尾数位可能丢失,造成精度损失,所以小数都是近似值
  • 浮点数的比较相等:一般用两个浮点数的差值的绝对值小于某一精度的数来确定
  • 5.12E2 = 512

4.字符类型

表示单个字符,可以存放汉字、字母(ASCII)、转义字符

字符串的本质

  • 存入:‘a’ -> 97 -> 0110 0001 -> 存储
  • 取出:0110 0001 -> 97 -> ‘a’ ->显示
  • 字符和码值的对应关系通过字符编码表决定(Unicode)

注意事项:

  • 使用单引号(字符串使用双引号)
  • 本质是一个整数,在输出时是Unicode编码对应的字符
  • 可以直接给char赋值一个整数,然后输出,按照对应的Unicode编码字符输出
  • 可以进行运算,相当于一个整数

编码表:

  1. ASCII:1个字节表示,一共128个字符(只能表示字母和符号)
  2. Unicode:2个字节表示,兼容ASCII(固定大小浪费空间)
  3. GBK:字母1个字节,汉字2个字节
  4. UTF-8:字母1个字节,汉字3个字节(Unicode编码的改进)
  5. GB2312
  6. Big5:繁体中文

5.布尔类型

1个字节

逻辑运算中使用

不能够用0或非0的数来表示真假

6.自动类型转换

在进行赋值或运算时,精度小的类型会自动向精度高的类型进行转换

转换流程:

  • byte -> short -> int -> long -> float -> double
  • char -> int -> long -> float -> double

注意事项:

  • 有多种数据类型混合计算时,先把所有数据类型转换为精度最高的数据类型再进行计算
  • 把精度高的数据类型赋值给精度低的数据类型可能会报错或溢出
  • (byte、short)和char之间不能够进行转换
  • byte、short、char三者之间可以计算,但会先转成int。(byte + byte = int)
  • boolean不参与转换

7.强制类型转换

可能会损失精度或者溢出

注意事项:

  • 从精度高到精度低,使用强制类型转换
  • 一般使用小括号来提升优先级

8.基本数据类型与String的相互转换

  • 基本数据类型转为字符串类型
  • 拼接"":123 + “”
  • 字符串类型转为基本数据类型(使用包装类)
int num1 = Integer.parseInt("123");
  • 字符串转字符(提取字符串的首字母)
char c1 = "avc".charAt(0);

注意事项:

  • 确定字符串可以转为一个有效的基本数据类型
  • 如果格式不正确,可能汇报类型转换异常

9.Java转义字符

// 制表符
\t
// 换行符,光标移动到行首的第一个字符  
\n
// 回车
\r
// 反斜杠
\\
// 单引号
\'
// 双引号
\"