1、maven是什么?
maven是一个项目构建和jar包管理工具。
项目构建:1、创建项目结构 2、写java文件 3、编译 4、测试 5、打包 6、install安装
jar包管理:1、引入jar包依赖 2、管理依赖 (自动下载相关依赖jar包)3、jar包版本统一管理
2、安装配置maven环境
1)maven官网下载 安装包
解压缩到非中文目录
2)配置maven 环境变量
重新打开cmd窗口
3)修改maven远程仓库 为 阿里云仓库
conf/settings.xml文件
<mirror>
<id>central</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
4)测试mvn
mvn -v
3、maven的三个仓库
4、创建maven项目
提前为以后的maven项目,指定mavenhome路径。
使用maven指令完成项目的构建过程:
1、clean 清理 target目录
2、compile 编译 生成class文件(在target目录下)
3、test测试 运行测试类
4、package打包 将项目打成jar包或者war包
5、install 安装 将jar包放到本地仓库中
5、pom.xml文件配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 组织名 公司域名倒写 -->
<groupId>com.hl</groupId>
<!-- 项目名|模块名-->
<artifactId>maven01</artifactId>
<!-- 版本号 -->
<version>1.0-SNAPSHOT</version>
<!--项目打包方式-->
<!--
jar: javase 或者 springboot项目
war: ssm = spring+springmvc+mybatis 外置tomcat
pom:父项目 ,里面包含很多子模块,父项目中只声明依赖 父项目为pom
-->
<packaging>jar</packaging>
<name>maven01</name>
<url>http://maven.apache.org</url>
<!-- 项目属性配置 -->
<properties>
<!--特定含义的,预定义标签-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--自定义标签-->
<mysql.version>5.1.49</mysql.version>
</properties>
<!-- 声明项目依赖的所有jar包-->
<dependencies>
<!--项目坐标依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!--mysql依赖-->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.36</version>
<scope>provided</scope>
</dependency>
<!--文件上传下载 commons-fileupload自动关联下载依赖的jar包 commons-io -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.5</version>
</dependency>
<!--同一个组织的产品,尽量使用同一个版本号-->
<!--spring-webmvc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.39</version>
<!--排除依赖-->
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--spring-web-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.39</version>
<!--排除依赖 不指定版本号-->
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
6、junit 单元测试
<!--项目坐标依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
7、scope作用域范围
<!--项目坐标依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<!--作用域范围
test:测试包中有效
provided: lombok servlet-api(tomcat包含) 只在编译、测试、开发阶段会用到,最终打包时不需要打进去,运行时不使用。
compile:默认 所有地方都可以使用 最常用的
system:本地jar包引入,使用是系统路径 c:/11/11.jar (一般不用)
runtime: 开发,编译不需要,打包,运行 需要的 比如mysql
-->
<scope>test</scope>
8、lombok
1)下载jar包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.36</version>
<scope>provided</scope>
</dependency>
2)启用lombok插件(idea2024自动启用)
3、使用插件
package com.hl;
import lombok.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
//@Getter
//@Setter
//@EqualsAndHashCode
//@ToString
//@NoArgsConstructor 无参构造
@Data //@Data综合注解 等价于 以上的累加
@AllArgsConstructor //有参构造
public class User {
private Integer id;
private String name;
public static void main(String[] args) {
User user = new User(1,"abc");
System.out.println(user.getName());
System.out.println(user.toString());
}
}
maven 重点题
1、maven的作用
maven是一个项目构建和jar包管理工具。
项目构建:1、创建项目结构 2、写java文件 3、编译 4、测试 5、打包 6、install安装
jar包管理:1、引入jar包依赖 2、管理依赖 (自动下载相关依赖jar包)3、jar包版本统一管理
2、maven 如何排除依赖
<!--排除依赖-->
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</exclusion>
</exclusions>
<!--排除依赖 不指定版本号-->
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
3、maven scope作用域有哪些?
<!--项目坐标依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<!--作用域范围
test:测试包中有效
provided: lombok servlet-api(tomcat包含) 只在编译、测试、开发阶段会用到,最终打包时不需要打进去,运行时不使用。
compile:默认 所有地方都可以使用 最常用的
system:本地jar包引入,使用是系统路径 c:/11/11.jar (一般不用)
runtime: 开发,编译不需要,打包,运行 需要的 比如mysql
-->
<scope>test</scope>
4、javaSE 常见的IO流分类有哪些?
按数据流向:
-
输入流:
InputStream
、Reader
(读取数据)。 -
输出流:
OutputStream
、Writer
(写入数据)。
按数据类型:
-
字节流:以字节为单位(8位),处理二进制数据(如图片、视频)。
-
InputStream
/OutputStream
(抽象基类) -
实现类:
FileInputStream
、BufferedInputStream
等。
-
-
字符流:以字符为单位(16位),处理文本数据(如TXT文件)。
-
Reader
/Writer
(抽象基类) -
实现类:
FileReader
、BufferedReader
等。
-
按功能:
-
节点流:直接操作数据源(如
FileReader
)。 -
处理流:对节点流封装(如
BufferedReader
提升性能)。
5、javaSE 集合框架 有哪些?区别和联系?
主要接口及实现类
接口 | 有序 | 唯一性 | 实现类 | 特点 |
---|---|---|---|---|
List | 是 | 允许重复 | ArrayList | 数组实现,随机访问快。 |
LinkedList | 链表实现,插入删除快。 | |||
Set | 否 | 元素唯一 | HashSet | 基于HashMap,无序。 |
LinkedHashSet | 保持插入顺序。 | |||
TreeSet | 基于红黑树,自然排序。 | |||
Map | 键无序 | 键唯一 | HashMap | 键值对,允许null键/值。 |
LinkedHashMap | 保持插入顺序。 | |||
TreeMap | 键按自然顺序排序。 | |||
Queue | 是 | 允许重复 | LinkedList | 双端队列。 |
PriorityQueue | 优先级队列。 |
区别与联系
-
List vs Set:
-
List有序可重复;Set无序唯一。
-
-
ArrayList vs LinkedList:
-
ArrayList基于数组,查询快;LinkedList基于链表,增删快。
-
-
HashSet vs TreeSet:
-
HashSet通过哈希表实现;TreeSet通过红黑树实现有序。
-
-
HashMap vs HashTable:
-
HashMap线程不安全,允许null;HashTable线程安全,不允许null。
-
联系:所有集合均来自java.util
包,实现了Iterable
接口,支持迭代操作。