学习笔记与开发环境配置指南

6 阅读6分钟

学习笔记与开发环境配置指南

1. Maven 相关

1.1 Maven 是不是类似于前端的 node_modules?

Maven 整体更接近 npm + 构建工具,而不仅仅是“一个依赖目录”。 它主要用于构建项目依赖管理

1.2 Maven 和 Java 版本要求

  • Maven 3.8.1 和 Java 17.0.12 可以配合使用。
  • 最低要求限制:每一个 Maven 的大版本都有一个“最低 Java 版本”要求。
    • Maven 3.3.x 及以上:至少需要 JDK 7
    • Maven 3.9.x:至少需要 JDK 8
    • 未来的 Maven 4.0:将至少需要 JDK 17

1.3 Maven 的 Archetype(项目模板)有哪些?

日常开发中最常用的基本上只有以下几种:

最常用的基础模板(Top 2)

  • maven-archetype-quickstart
    • 作用:创建一个普通的、标准的 Java 应用程序(Java SE 项目)。
    • 结构:会自动帮你建好 src/main/javasrc/test/java 目录,以及一个包含基础 JUnit 测试的 App.java。打包方式默认为 jar
  • maven-archetype-webapp
    • 作用:创建一个经典的 Java Web 应用程序。
    • 结构:会自动建好 src/main/webapp/WEB-INF/web.xml 目录结构和基本的 index.jsp 文件。打包方式默认为 war

其他特定用途的官方模板

  • maven-archetype-plugin:如果你想自己写一个 Maven 插件,用这个模板。
  • maven-archetype-j2ee-simple:创建一个包含 EJB、WAR、EAR 多个模块的传统 J2EE 项目。
  • maven-archetype-site:用于生成项目文档站点(Site)的模板。

1.4 jar 包执行

java -jarjava -cp 命令有什么区别?什么时候用哪个?

  • Spring Boot 项目 / 胖包 (Fat Jar):项目依赖已经全打在一个大 jar 包里了,直接用 java -jar
  • 传统 Java 项目 / 瘦包:主程序和依赖的第三方 jar 包是分开存放的,必须用 java -cp 将它们组合起来运行。

问题:执行 java -jar target/java_maven_test2-1.0-SNAPSHOT.jar 报错 jar中没有主清单属性解决:需要在 pom.xml 中配置 maven-jar-plugin 插件指定入口类(mainClass):

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>org.example.App</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

2. Windows 命令行与网络排查

2.1 端口占用处理

  1. 查看所有正在使用的端口
    netstat -ano
    
  2. 查看特定端口占用情况(如 80 端口)
    netstat -ano | findstr "80"
    
  3. 根据 PID 查找占用端口的程序名称 拿到 PID(比如 12345)后,可以查看是哪个程序在运行:
    tasklist | findstr "12345"
    
  4. 强制结束占用端口的进程12345 替换为实际的 PID:
    taskkill /F /PID 12345
    

2.2 ping 命令详解

ping 命令用来测试电脑与目标(网站或服务器)之间网络是否连通以及连接速度(延迟)。 例如输入 ping baidu.com,主要看以下 4 个核心部分:

  1. 基础信息行正在 Ping baidu.com [39.156.66.10] 具有 32 字节的数据:
    • 含义:告诉你域名已被成功解析成了 IP 地址。如果这步失败,说明 DNS 或者是网络完全断了。默认发送的数据包大小是 32 字节。
  2. 回复详情(核心数据)来自 39.156.66.10 的回复: 字节=32 时间=15ms TTL=52
    • 时间 (Time/延迟):最重要的数据。表示数据包发过去再回来的总耗时,单位毫秒(ms)。
      • < 50ms:网络极好。
      • 50 ~ 100ms:正常水平(浏览网页无卡顿)。
      • > 100ms:延迟较高(跨国服务器常见)。
    • TTL (Time To Live/生存时间):数据包在网络中最多能经过几个路由器。也可用来大致判断目标服务器系统(通常接近 64 是 Linux,接近 128 是 Windows)。
  3. 统计结果(总结连通性)Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失)
    • 丢失 (Packet Loss/丢包率):极其重要。
      • 0% 丢失:网络非常稳定。
      • 出现丢失:网络极其不稳定,可能 Wi-Fi 信号差、宽带拥堵或目标服务器有问题。
  4. 常见异常提示
    • 请求超时 (Request timed out):数据发出去了但目标没有回应。可能对方服务器挂了、禁用了 Ping(防火墙拦截)或中途网络不通。
    • 目标主机不可达 (Destination host unreachable):找不到去往该 IP 的路。通常是本地网络配置错了。
    • 找不到主机 (Ping request could not find host):连 IP 都解析不出来,说明域名拼错或 DNS 服务器出问题。

进阶技巧:在 Windows 下可以使用 -t 参数(例如 ping baidu.com -t)持续测试网络稳定性,直到按下 Ctrl + C 强制停止。

2.3 ipconfig 命令详解

核心参数(IPv4 - 开发者最常用的部分)

  • IPv4 地址:例如 192.168.13.179
    • 含义:电脑在当前局域网(连的 Wi-Fi)中的“门牌号”。
    • 开发者用途:如果在本机跑了一个 Web 服务(比如 8080 端口),只要局域网内的手机或其他电脑连着同一个 Wi-Fi,在浏览器输入 http://192.168.13.179:8080 就能直接访问该项目。

2.4 PowerShell 相关

PowerShell 如何自动补全历史命令? 手动敲吧,还要改配置比较麻烦,建议保持 PowerShell 原始状态。


3. IDEA 配置与使用指南

3.1 代码格式化设置

默认快捷键:右键选择 Reformat CodeCtrl + Alt + L

终极解决:如何把“格式化”加到代码区的右键菜单最外层? 如果习惯用鼠标右键格式化,可以手动加到菜单里:

  1. 打开设置:File -> Settings
  2. 左侧找到 Appearance & Behavior -> Menus and Toolbars
  3. 在右侧展开 Editor Popup Menu(即代码区的右键菜单)。
  4. 选中列表里的任意一项(比如最顶部的 Cut/Copy/Paste Group)。
  5. 点击顶部的 + 号 -> 选择 Add Action...
  6. 在弹出的搜索框里输入 Reformat Code,选中它并点击 OK
  7. 最后点击 ApplyOK 保存。 回到代码里点右键,就能直接看到熟悉的格式化选项了!

3.2 关闭 IDEA 的自动保存

强烈建议在关闭自动保存的同时开启**“未保存显示星号(*)”**的提示,否则很难看出哪些文件还没有手动保存。

第一步:关闭自动保存触发条件

  1. 打开设置:File -> Settings(macOS 是 IntelliJ IDEA -> Preferences/Settings)。
  2. 左侧菜单栏找到:Appearance & Behavior -> System Settings
  3. 在右侧找到 Autosave(自动保存)区域。
  4. 取消勾选以下两项:
    • Save files if the IDE is idle for N seconds (如果 IDE 空闲 N 秒则自动保存文件)
    • Save files when switching to a different application (切换到其他应用程序时自动保存文件)

第二步:开启未保存时的星号(*)提示(强烈推荐)

  1. 在设置窗口左侧找到:Editor -> General -> Editor Tabs
  2. 在右侧找到 Appearance(外观)区域。
  3. 勾选 Mark modified (*)(标记已修改的页签)。
  4. 点击右下角的 ApplyOK 保存设置。

完成! 现在修改文件后,顶部文件名旁边会出现 * 号,需要养成手动按 Ctrl + S(macOS 为 Cmd + S)保存的习惯。