Git & Linux 速查表

📋 Git & Linux 速查表 --- Java 后端向


一、Git 操作速查

🔥 最高频(日常必用)

命令 说明
git status 查看工作区状态(最常用,肌肉记忆)
git add . 添加所有改动到暂存区
git add <file> 添加指定文件到暂存区
git commit -m "type: 描述" 提交到本地仓库(推荐语义化 message)
git push 推送到远程仓库
git pull 拉取并合并远程更新(fetch + merge)
git log --oneline -10 查看最近 10 条提交历史
git diff 查看未暂存的改动
git diff --staged 查看已暂存的改动
git diff HEAD~1 对比与上一次提交的差异

🌿 分支管理(核心工作流)

命令 说明
git branch 查看本地分支列表
git branch -a 查看所有分支(含远程跟踪分支)
git branch -vv 查看分支及其关联的远程分支 ✅ 推荐
git switch -c feat/xxx 创建并切换到功能分支(Git 2.23+ 新语法)
git switch main 切换到已有分支(新语法,替代 checkout)
git merge main 将 main 分支合并到当前分支
git rebase origin/main 将当前分支变基到最新 main(保持历史线性)
git branch -d feat/xxx 删除已合并的分支(安全删除)
git branch -D feat/xxx 强制删除分支(未合并也可删)⚠️ 危险
git push origin feat/xxx 推送指定分支到远程
git push origin --delete feat/xxx 删除远程分支 ✅ 新增
git push -u origin feat/xxx 推送并建立上游跟踪关系(首次推送用)

↩️ 撤销与回退(救火必备)

命令 说明 风险
git restore <file> 撤销指定文件的未暂存改动(保留磁盘文件) 🟢 安全
git restore . 撤销所有未暂存改动 🟢 安全
git restore --staged <file> 取消暂存(改动保留在工作区) 🟢 安全
git reset --soft HEAD~1 撤销最近一次提交 → 回到暂存区 🟡 中等
git reset --mixed HEAD~1 撤销提交 + 取消暂存(默认行为) 🟡 中等
git reset --hard HEAD~1 彻体撤销提交+暂存+工作区改动(不可逆 🔴 危险
git push -f origin main 强制覆盖远程分支历史(协作用户会受影响) 🔴 危险
git revert <hash> 生成新提交 来撤销指定提交的内容(协作安全)✅ 推荐 🟢 安全

⚠️ 不可逆命令警示git reset --hardgit push -f 是 Git 中仅有的两个真正不可逆操作。执行前三思!团队仓库中优先使用 git revert 替代 reset。

💡 救命稻草:reflog --- 即使 git reset --hard 了也不必绝望 → git reflog 可查看 HEAD 所有移动记录 → 找到目标 hash → git reset --hard <hash> 即可恢复。

📦 远程仓库与协作

命令 说明
git remote -v 查看远程仓库地址(fetch + push)
git remote add origin URL 关联远程仓库,命名为 origin
git remote set-url origin URL 修改远程地址(HTTPS ↔ SSH 切换场景)
git fetch origin 拉取远程信息到本地远程跟踪分支(不自动合并
git clone <URL> 克隆远程仓库到本地
git clone --depth 1 <URL> 浅克隆(只取最近一次提交,大仓库加速)
git pull --rebase 拉取时使用 rebase 而非 merge(避免多余 merge 提交)✅ 推荐

🚀 进阶操作

命令 说明 典型场景
git stash 暂存当前所有改动(含暂存区和工作区) 临时切分支修 bug
git stash push -m "描述" 带消息暂存(多个 stash 时便于识别) 区分不同暂存
git stash pop 恢复最近的 stash 并删除该条记录 改完 bug 回来继续
git stash list 查看所有 stash 记录 有多个 stash 时定位
git stash drop stash@{n} 丢弃指定的 stash 清理无用暂存
git cherry-pick <hash> 将指定提交移植到当前分支 跨分支复用某次修复 ⚠️ 可能产生冲突,需手动解决后 git cherry-pick --continue
git tag v1.0.0 创建轻量标签 版本发布标记
git tag -a v1.0.0 -m "release" 创建 annotated 标签(含作者、日期、备注)✅ 生产推荐 正式发版
git tag -l "v*" 列出所有匹配标签 查看已有版本
git push origin --tags 推送所有标签到远程 发版后同步
git reflog 查看 HEAD 所有移动记录 误操作恢复神器
git bisect start 二分查找引入 bug 的提交 回归问题定位

⚙️ 基础配置(新环境必设)

命令 说明
git config --global user.name "名字" 设置全局用户名(首次使用必须配置
git config --global user.email "邮箱" 设置全局邮箱(需与 Git 平台账号一致)
git config --global init.defaultBranch main 设置默认分支名
git config --global core.editor "code --wait" 设置默认编辑器为 VS Code(rebase 冲突时用到)
git config --list 列出当前所有配置(可排查配置问题)
git config --global core.autocrlf input Linux/Mac 上关闭自动换行转换(跨平台协作关键)

🔑 SSH 密钥配置(免密推送刚需)

bash 复制代码
# 1. 生成密钥对(一路回车即可)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 2. 查看公钥并复制
cat ~/.ssh/id_ed25519.pub

# 3. 将公钥添加到 GitHub/Gitee → Settings → SSH Keys

# 4. 测试连接
ssh -T git@github.com      # GitHub
ssh -T gitee.com            # Gitee

# 5. 如果端口非默认 22,在 ~/.ssh/config 中配置:
# Host github.com
#   HostName github.com
#   User git
#   IdentityFile ~/.ssh/id_ed25519
#   Port 443

📝 .gitignore 规范(Java 项目必备)

gitignore 复制代码
# === 编译输出 ===
target/
*.class
*.jar
*.war
*.log

# === IDE ===
.idea/
*.iml
.vscode/

# === 环境与密钥(绝对不能提交!)===
.env
*.local
application-*.yml          # 含敏感信息的 profile 文件

# === OS ===
.DS_Store
Thumbs.db

# === 依赖缓存 ===
.mvn/
.gradle/
node_modules/

🔒 安全红线.envapplication-prod.yml*.keycredentials 等含敏感信息的文件严禁提交 到 Git 仓库。一旦泄露必须立即轮换密钥!建议配合 pre-commit hookgit-secrets 工具扫描。

📌 典型场景速查

🆕 第一次推送新项目

bash 复制代码
git init
git add .
git commit -m "init: 项目初始化"
git branch -M main                          # 确保主分支名为 main
git remote add origin https://github.com/user/repo.git
git push -u origin main                     # -u 建立上游跟踪,以后直接 git push

🔄 日常开发流程(Git Flow 简化版)

复制代码
① git pull origin main              →  拉取最新代码
② git switch -c feat/xxx            →  基于 latest main 创建功能分支
③ 开发 & 小步提交(语义化 message)& 本地自测通过
④ git pull origin main && git rebase origin/main   → 合入最新代码,保持线性历史
⑤ git push origin feat/xxx          →  推送分支
⑥ 在 Gitee / GitLab 创建 Merge Request → Code Review → Maintainer 合并

🔥 误操作紧急恢复

bash 复制代码
# 场景:刚执行了 git reset --hard HEAD~1,发现丢代码了
Step 1: git reflog                              # 找到丢失提交的 hash,比如 abc1234
Step 2: git reset --hard abc1234               # 恢复到该位置,代码回来

# 场景:push -f 到远程后后悔了(需要队友协助)
Step 1: 让队友 git fetch origin
Step 2: 队友 git reflog 查看被覆盖前的 origin/main 位置
Step 3: 队友 git push -f origin THAT_HASH:main  # 强制恢复

🔀 合并冲突处理流程

bash 复制代码
Step 1: git merge feature/xxx                  # 或 rebase 时遇到冲突
Step 2: 打开冲突文件,找到 <<<<<<< ======= >>>>>>> 标记区域
Step 3: 手动选择保留哪些代码,删除冲突标记
Step 4: git add <conflict-file>                # 标记为已解决
Step 5: git commit                               # merge 场景:完成合并提交
     # 或 git rebase --continue                 # rebase 场景:继续变基
# 放弃合并:git merge --abort  /  git rebase --abort

👥 团队协作核心原则

✅ Do ❌ Don't
主干保护(main/dev 设为受保护分支) 禁止直接 push 到 main
所有变更走 MR/PR + Code Review 禁止在公共分支使用 reset --hard
提交前先 rebase 最新代码 禁止提交 .env / 密码 / 证书
语义化 commit message 禁止提交大二进制文件(图片/jar)
push 前先 status / diff 检查 禁止 copy 别人的代码不署名

📝 Commit Message 语义化规范(Conventional Commits)

类型 说明 示例
feat 新功能 feat: 用户登录接口
fix Bug 修复 fix: 修复 Token 过期时间计算错误
docs 文档变更 docs: 更新 API 接口文档
style 格式调整(不影响逻辑) style: 统一代码缩进为 2 空格
refactor 重构(非新功能非修 bug) refactor: 抽取 UserService 公共方法
perf 性能优化 perf: 用户查询 SQL 加索引
test 测试相关 test: 补充登录模块单元测试
chore 构建/工具/依赖变更 chore: 升级 Spring Boot 至 3.2

二、Linux 命令速查(Java 后端向)

🔥🔥🔥 最高频 --- 日志排查(每天必用)

命令 说明 场景
tail -f app.log 实时跟踪日志输出 排障第一命令
tail -f -n 100 app.log 读最后 100 行再开始实时跟踪 应用刚启动时立即跟
tail -F app.log 跟踪日志(支持文件轮转/重命名 )✅ 推荐 logrotate 自动切割场景
grep "ERROR" app.log 搜索关键字行 快速定位报错
grep -i "exception" app.log 忽略大小写搜索 Exception 大小写不一致
grep -C 5 "ERROR" app.log 匹配行前后各显示 5 行上下文 最常用组合 看完整错误栈
grep -A 20 "Exception" app.log 匹配行后显示 20 行 看完整异常堆栈
grep -r "keyword" ./src 递归搜索目录下所有文件内容 全项目搜代码
less catalina.out 分页浏览大文件(q 退出,/ 搜索) 日志过大的唯一选择
head -50 app.log 查看文件前 50 行 检查启动是否成功
wc -l app.log 统计文件总行数 快速判断日志量级

💡 组合技grep "ERROR" app.log | grep "UserService" | tail -20 --- 管道串联,逐步缩小范围,比肉眼翻快 10 倍。

🔥🔥 高频 --- 进程与服务(部署必用)

命令 说明
`ps aux grep java`
jps -l 列出 Java 进程及主类/JAR 全路径(JDK 自带,更直观)✅ 推荐
jstack <PID> 打印线程堆栈(死锁/CPU 飙高排查核心工具)
jmap -histo <PID> 查看 JVM 堆对象统计(内存泄漏排查)
jinfo -flags <PID> 查看 JVM 启动参数
kill <PID> 发送 SIGTERM 正常终止进程(进程可优雅关闭)
kill -9 <PID> 发送 SIGKILL 强制杀进程 ⚠️ 慎用 信号 9 不可被捕获,数据库连接池等资源无法正常释放,可能导致数据不一致
kill -15 <PID> 等同 kill/SIGTERM,显式指定信号号(更明确)✅ 生产推荐
nohup java -jar app.jar > app.log 2>&1 & 后台启动应用 + 输出重定向(生产标准姿势
echo $! 获取上一个后台进程的 PID
disown -h %1 让后台进程脱离当前终端(防止断连后被杀)

🔥🔥 高频 --- 端口与网络

命令 说明
`ss -tlnp grep 8080`
`ss -tlnp grep java`
lsof -i :8080 查看端口占用(另一种方式,信息更详细)
netstat -tlnp 列出所有监听端口(兼容老系统)
curl http://localhost:8080/actuator/health 测试 Spring Boot 健康检查接口 ✅ 高频
curl -s -o /dev/null -w "%{http_code}" URL 只看 HTTP 状态码(脚本中常用)
curl -X POST -H "Content-Type: application/json" -d '{"k":"v"}' url 发送 JSON 格式 POST 请求
ping -c 4 baidu.com 测试网络连通性(限制 4 次,不会一直跑)
telnet ip port 测试 TCP 端口连通性

🔥 高频 --- 文件与目录操作

命令 说明
ls -lah 列出详情 + 隐藏文件 + 人性化大小(默认习惯加 lah
cd - 回到上一个工作目录(来回跳转超方便)✅ 推荐
pwd 显示当前绝对路径
cat application.yml 查看小文件内容(配置文件首选)
mkdir -p a/b/c 递归创建多层目录
cp -r src dest 递归复制整个目录
mv old new 移动或重命名
rm -rf dir 强制递归删除 ⚠️ 不可逆
touch file 创建空文件 / 更新时间戳
find /opt -name "*.jar" 按名称查找文件
find /opt -name "*.jar" -mtime +30 查找 30 天前修改过的 jar 包
find /var/log -name "*.log" -size +100M 查找大于 100MB 的日志文件
ln -s /path/to/target linkname 创建软链接(部署常用:指向最新 jar)

⚠️ rm 安全习惯 :执行 rm -rf 前 → ① 先用 ls 确认目标路径正确 → ② 优先用 trash 命令移到回收站(如有)→ ③ 绝对不在通配符不确定时使用 rm -rf *

📊 系统资源监控

命令 说明 关键指标
free -h 内存使用情况(人性化单位) 关注 available 列,接近 0 有 OOM 风险
df -h 磁盘分区空间 Use% 超过 85% 就要警惕
du -sh * 当前目录下各子目录大小 定位哪个目录占空间最大
`du -sh /var/log/* sort -rh head -10`
uptime 系统负载(1min / 5min / 15min均值) 超过 CPU 核数 × 2 说明压力大
top(按 1 切每核) 实时资源占用(按 CPU 排序) P CPU排 / M 内存排
htop top 增强版(需安装:yum install htop 可视化更强,支持树形进程
iostat -x 1 磁盘 I/O 实时监控 %util 接近 100% = 磁盘瓶颈
sar -u 1 10 CPU 使用率历史采样(每秒采 10 次) 性能分析报告素材

👤 权限与用户

命令 说明
chmod +x script.sh 添加执行权限(实际最常用写法
chmod 755 dir/ rwxr-xr-x(所有人可读执行,所有者可写)
chown user:group file 修改文件所有者和所属组
chown -R user:group dir/ 递归修改目录归属(部署后常用)
whoami 查看当前用户名
id 查看当前用户 UID/GID 及所属组(更完整)
sudo su - 切换到 root 用户(- 同时加载 root 环境变量)

📦 软件与环境

命令 说明
java -version 检查 JDK 版本
which java / whereis java 查看 Java 可执行文件路径
echo $JAVA_HOME 查看 JAVA_HOME 环境变量
`echo $PATH tr ':' '\n'
alternatives --config java 切换系统默认 JDK 版本(CentOS/RHEL)
yum install xxx / apt install xxx 安装软件包
`yum list installed grep java`
tar -xzvf archive.tar.gz -C /opt/ 解压 tar.gz 到指定目录(JDK/Tomcat 部署常用)
unzip file.zip -d target/ 解压 zip 到指定目录
source /etc/profile 刷新全局环境变量
export VAR=value 设置临时环境变量(当前终端有效)

🌐 远程连接与文件传输

命令 说明
ssh user@192.168.1.100 SSH 远程登录服务器
ssh -i key.pem user@host 使用 PEM 密钥文件登录(AWS/阿里云常用)
ssh -p 2222 user@host 指定端口登录
scp file.txt user@host:/opt/ 上传文件到服务器
scp -r dir/ user@host:/opt/ 上传整个目录
scp user@host:/opt/file ./ 从服务器下载文件
rsync -avz ./src user@host:/opt/ 增量同步(比 scp 快,支持断点续传 )✅ 大量文件推荐
wget https://example.com/file.jar 下载文件(支持断点续传 -c

⚙️ Systemd 服务管理(生产部署主流)

命令 说明
systemctl start myapp 启动服务
systemctl stop myapp 停止服务
systemctl restart myapp 重启服务
systemctl status myapp 查看服务状态(含 PID、内存、近期日志)✅ 最常用
journalctl -u myapp -f 实时跟踪服务日志(替代 tail + nohup 方案)✅ 生产推荐
journalctl -u myapp --since "2026-01-01 10:00" 查看指定时间段的服务日志
journalctl -u myapp -n 100 查看最近 100 条日志
systemctl enable myapp 设置开机自启 ✅ 重要
systemctl disable myapp 取消开机自启
systemctl list-units --type=service --state=running 列出所有运行中的系统服务

💡 推荐:Spring Boot 应用注册为 Systemd 服务

ini 复制代码
# /etc/systemd/system/myapp.service
[Unit]
Description=My Spring Boot App
After=network.target

[Service]
Type=simple
User=deploy
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/java -jar /opt/myapp/app.jar --spring.profiles.active=prod
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

之后 systemctl daemon-reload && systemctl enable --now myapp 即可一键托管。

🐳 Docker 基础(容器化部署)

命令 说明
docker ps 查看运行中的容器
docker ps -a 查看所有容器(含已停止)
docker images 查看本地镜像列表
`docker exec -it <name id> bash`
docker logs -f <name> 实时跟踪容器日志
docker logs --tail 200 <name> 查看最近 200 行日志
docker logs --since 10m <name> 查看最近 10 分钟的日志
docker stop <name> / docker start <name> 停止 / 启动容器
docker restart <name> 重启容器
docker rm <name> / docker rmi <image> 删除容器 / 删除镜像
docker build -t myapp:1.0 . 从 Dockerfile 构建镜像
docker run -d -p 8080:8080 --name myapp myapp:1.0 后台运行容器(端口映射 + 命名)
docker-compose up -d Compose 编译启动(后台运行)
docker-compose down 停止并删除容器和网络
docker system df 查看 Docker 磁盘占用总览 ✅ 清理前必看
docker system prune -a 清理无用镜像/容器/网络 ⚠️ 会删停止的容器和未用镜像
`docker inspect <name id>`

⏰ Crontab 定时任务

复制代码
字段含义:  *    *    *    *    *
           分   时   日   月   周
表达式 含义
0 2 * * * 每天凌晨 2 点执行(备份/清理常用
*/30 * * * * 每 30 分钟执行一次
0 9-18 * * 1-5 工作日 9:00~18:00 每整点执行
0 0 * * 0 每周日午夜执行
bash 复制代码
# 编辑当前用户的 crontab
crontab -e

# 查看已配置的定时任务
crontab -l

# 示例:每天凌晨 2 点清理 30 天前的日志
0 2 * * * find /var/log/app -name "*.log" -mtime +30 -delete >> /var/log/cleanup.log 2>&1

# 示例:每小时重启一次健康检查失败的应用
0 * * * * if ! curl -sf http://localhost:8080/actuator/health > /dev/null; then systemctl restart myapp; fi

🔧 文本处理(偶尔用到但极省时间)

命令 说明 实战场景
sed -i 's/old/new/g' file 全局替换文件文本 批量改配置(IP/端口/环境名)
sed -i '/^#/d' file 删除所有以 # 开头的行 清理注释行
awk '{print $1}' access.log 提取第 1列 分析 IP / 提取 URL 路径
`awk '{print $1}' access.log sort uniq -c
`sort file uniq` 排序去重
echo $? 上一条命令退出码 0=成功,非0=失败 ✅ 脚本判断基础
`history grep git` 搜索历史命令
ctrl+r 反向搜索历史命令(交互式) 快速召回长命令
clear / ctrl+l 清屏 整洁强迫症福音
tee output.log 同时输出到屏幕和文件 边看边存日志
xargs -I {} curl {} < urls.txt 将输入转为命令参数 批量请求/批量操作

三、🔥 线上故障 5 分钟定位(实战案例链路)

🚨 场景一:生产报警 ------ 接口响应超时 / 报 500

排查原则:由外到内,由浅到深

复制代码
① 确认报警真实性(收到告警 → 先验证是否误报)
   ↓ curl -s -o /dev/null -w "%{http_code} %{time_total}s\n" http://localhost:8080/actuator/health
② 快速看日志 --- 定位错误类型
   ↓ tail -F -n 100 /var/log/app/error.log | grep -i -E "ERROR|Exception|timeout"
③ 查系统资源 --- 判断瓶颈在哪层
   ↓ free -h  →  uptime  →  df -h  →  docker stats --no-stream
④ 定位进程状态
   ↓ ps aux | grep java | sort -k4 -rn | head -5
   ↓ jstack <PID> > jstack.txt
   ↓ jstack <PID> | grep -A 5 "RUNABLE" | head-50
⑤ 排查外部依赖
   ↓ ss -tlnp | grep 3306/6379  →  telnet mysql-host 3306
⑥ 决策:恢复还是重启?
   ├ 能快速定位根因     → 修配置/扩容/清理磁盘/重启外部依赖 → 验证恢复
   ├ 无法快速定位但影响大 → 先重启恢复服务 systemctl restart myapp(保留现场事后分析)
   └ 完全无法恢复        → 切流备用节点 / 回滚版本 / 发升级通告

重点关注错误信号

日志关键词 可能原因
OutOfMemoryError 堆内存溢出 → 见 OOM 排查链路
Connection refused 目标服务挂了(MySQL/Redis/MQ)
timeout / Read timed out 网络慢 / 数据库慢查询 / 连接池耗尽
Too many open files 文件句柄泄漏或 ulimit 不够
StackOverflowError 无限递归调用

🔴 场景二:OOM(内存溢出)排查链路

复制代码
症状:应用频繁 Full GC → 响应越来越慢 → 最终 java.lang.OutOfMemoryError: Java heap space

① 开启 Heap Dump(下次复现前配置好!)
   JVM 参数加:-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/dumps/

② 复现问题后分析 .hprof 文件
   工具:Eclipse MAT / VisualVM → Leak Suspects 报告 → 大对象持有者

③ 常见 OOM 根因 Top 3
   ├ 1. 内存泄漏:静态集合/ThreadLocal/未关闭连接池不断累积对象
   ├ 2. 堆设太小:-Xmx 给的不够(生产一般 ≥ 2G)
   └ 3. 数据量突增:一次查询返回过多数据 / 大报表导出

🟣 场景三:CPU 飙高 100% 排查链路

复制代码
① 定位进程
   top (按 P 排序) 或 htop → 找到 CPU 最高的 Java 进程 PID

② 定位线程
   top -H -p <PID>  →  找到 CPU 最高的线程 ID(十进制)
   printf "%x" <TID>  →  转十六进制

③ 导出栈并匹配
   jstack <PID> > jstack.txt
   grep <hex_tid> jstack.txt -A 10  →  找到罪魁祸首线程正在干嘛

④ 常见原因
   死循环 / 死锁 / 正则回溯(ReDoS) / 无限递归

💡 排查核心原则先恢复服务,后分析根因。 业务连续性第一,现场数据保留好后先重启止血(systemctl restart myapp),事后慢慢分析 dump 和日志。


四、附录

Exit Code 速查

含义
0 成功
1 通用错误
2 命令用法错误(误用参数)
126 命令无执行权限
127 命令找不到
128+N 收到信号 N 导致终止(如 137 = 被 kill -9 杀掉
255 退出码超出标准范围

Spring Boot 生产部署 Checklist

复制代码
① 环境隔离    profile 区分 dev/test/prod,.env 不入库
② JVM 参数    -Xms/-Xmx 一致避免动态扩缩,+UseG1GC,开启 HeapDumpOnOOM
③ 日志规范    统一 logback 配置,按天滚动 + 压缩 + 异步输出
④ 进程管理    注册为 systemd 服务,enable 开机自启
⑤ 健康检查    暴露 /actuator/health,对接监控系统 Prometheus/Grafana
⑥ 优雅停机    server.shutdown=graceful + spring.lifecycle.timeout-per-shutdown-phase=30s
⑦ 反向代理    Nginx 前置做 SSL 终结 + 负载均衡 + 静态资源缓存

相关推荐
handler0115 小时前
【Linux】五种IO模型详解
linux·运维·服务器·c语言·网络·笔记·php
AI周红伟16 小时前
中国第一大DRAM,长鑫科技,迈向算力第二巨头
大数据·人工智能·科技·elasticsearch·搜索引擎
better_liang1 天前
每日Java面试场景题知识点之-消息队列MQ核心场景与实战
java·面试·kafka·消息队列·rabbitmq·rocketmq·mq
小江的记录本1 天前
【JVM虚拟机】垃圾回收GC:四种引用类型:强引用、软引用、弱引用、虚引用(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
小马爱打代码1 天前
Spring源码 第四篇:Spring 5 源码深度拆解:AOP 全流程核心原理
java·后端·spring
better_liang1 天前
每日Java面试场景题知识点之-SpringBoot启动流程
java·面试·springboot·源码解析·启动流程
RyFit1 天前
Java + AI 实战:Spring AI 从入门到企业级落地
java·人工智能·spring
wljy11 天前
二、进制状态转换
linux·运维·服务器·c语言·c++
week@eight1 天前
Linux - Doris
linux·运维·数据库·mysql