一线互联网大厂Java核心面试题库
正逢面试跳槽季,给大家整理了大厂问到的一些面试真题,由于文章长度限制,只给大家展示了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等已整理上传,感兴趣的朋友可以看看支持一波!
-
在生产环境中发现一个 bug,从 master 上分离出一个热修复分支 hotfix/bug1,并在上面进行修复、测试并在预发布环境中验证,当都验证通过之后将分支重新合并回 develop 及 master,并在 master 上打一个热修复 tag v0.1.1,最后删除 hotfix/bug1;
1
2
3
4
5
6
7
8
9
10
git checkout -b hotfix/bug1 master
…
…修复bug…ing…
…
git checkout develop
git merge --no-ff hotfix/bug1
git checkout master
git merge --no-ff hotfix/bug1
git tag v0.1.1
git branch -d hotfix/bug1
-
在 feature/f2 分支上的功能 f2 已经开发并测试完成,然后将 feature/f2 合并回 develop,并删除 feature/f2,此时已经存在新功能 f1 的预发布分支 release/0.2,所以需要等待其发布完成之后才能创建预发布分支 release/0.3;
1
2
3
git checkout develop
git merge --no-ff feature/f2
git branch -d feature/f2
-
预发布分支 release/0.2 在预发布环境中完全测试通过,随时可以部署到生产环境。但在部署到生产环境之前,需要将分支合并回 develop 及 master,并在 release/0.2 上打一个正式发布版本的 tag v0.2,最后删除 release/0.2;
1
2
3
4
5
6
git checkout develop
git merge --no-ff release/0.2
git checkout master
git merge --no-ff release/0.2
git tag v0.2
git branch -d release/0.2
-
当前已经不存在 release/* 预发布分支,所以可以开始功能 f2 的预发布上线。创建预发布分支 release/0.3,并部署预发布环境测试;
1
git checkout -b release/0.3 develop
-
分支 release/0.3 测试通过,将 release/0.3 合并回 develop 及 master,然后在 master 上打一个正式发布版本的 tag v0.3,最后删除 release/0.3;
Git Flow
上述过程中未使用到 git flow,均是以约定的规范流程进行,大家可以尝试使用 git flow 来管理分支。
|
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#初始化 git flow
设置 feature、release、hotfix、tag 的前缀名
git flow init
#开始一个新功能 f1 的开发,以 develop 为基准创建 feature/f1
git flow feature start f1
#…
#…f1 功能开发中…
#…
#新功能 f1 开发完成
合并回 develop
删除 feature/f1 分支
git flow feature finish f1
#开始新功能 f1 的预发布验证,版本定为 0.2
git flow release start 0.2
#新功能 f1 预发布验证通过
合并到 master 分支
在 release 上打 tag v0.2
将 tag v0.2 合并到 develop 分支
删除 release/0.2 分支
git flow release finish 0.2
惊喜
最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)
57569)]
[外链图片转存中…(img-uQm0wogm-1715264957570)]