maven

1、maven是什么?

maven是一个项目构建和jar包管理工具。

项目构建:1、创建项目结构 2、写java文件 3、编译 4、测试 5、打包 6、install安装

jar包管理:1、引入jar包依赖 2、管理依赖 (自动下载相关依赖jar包)3、jar包版本统一管理

2、安装配置maven环境

1)maven官网下载 安装包

Download Apache Maven – 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流分类有哪些?

按数据流向

  • 输入流InputStreamReader(读取数据)。

  • 输出流OutputStreamWriter(写入数据)。

按数据类型

  • 字节流:以字节为单位(8位),处理二进制数据(如图片、视频)。

    • InputStream / OutputStream(抽象基类)

    • 实现类:FileInputStreamBufferedInputStream等。

  • 字符流:以字符为单位(16位),处理文本数据(如TXT文件)。

    • Reader / Writer(抽象基类)

    • 实现类:FileReaderBufferedReader等。

按功能

  • 节点流:直接操作数据源(如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接口,支持迭代操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值