今年Java面试必问的这些技术面,完整版开放免费下载!

怼烎@ 2021-07-20 13:20 386阅读 0赞

前言

这几年在Java工程师招聘时,会看到很多人的简历都写着使用了Spring Cloud做微服务实现,使用Docker做自动化部署,并且也会把这些做为自己的亮点。而比较有趣的这其中以小公司出来的人为绝大多数,大的公司出来的人简历上倒是很少提这些东西。

对于我自己来说,从15年就开始关注这一块,看过马丁.福勒最开始的关于微服务的论文、也看过不少对微服务的论证的英文文章和书,也研究过Spring Cloud、Sofa等开源实现以及Service mesh。考虑到我们公司研发团队人力不足、基础设施不完善,当初是没有推行微服务的。但随着看到上述的那种简历越来越多,有时候我也会疑问:难道真的不用微服务就落后了吗?公司的同事如果不掌握这些就真的没有竞争力了吗。而随着最近公司业务的逐步提升,研发人员越来越多,借着在梳理公司的微服务落地计划时,也梳理了一下微服务的相关知识点,也是本文的主要内容。

Git是什么

在回忆Git是什么的话,我们先来复习这几个概念哈~

什么是版本控制?

百度百科定义是酱紫的~

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

那些年,我们的毕业论文,其实就是版本变更的真实写照…脑洞一下,版本控制就是这些论文变更的管理~

5b4ac59497bc1468f341045f71d8b1ba.png

什么是集中化的版本控制系统?

那么,集中化的版本控制系统又是什么呢,说白了,就是有一个集中管理的中央服务器,保存着所有文件的修改历史版本,而协同开发者通过客户端连接到这台服务器,从服务器上同步更新或上传自己的修改。

4f18549613ffd7062b1f677ab012d8ef.png

什么是分布式版本控制系统?

分布式版本控制系统,就是远程仓库同步所有版本信息到本地的每个用户。嘻嘻,这里分三点阐述吧:

  • 用户在本地就可以查看所有的历史版本信息,但是偶尔要从远程更新一下,因为可能别的用户有文件修改提交到远程哦。
  • 用户即使离线也可以本地提交,push推送到远程服务器才需要联网。
  • 每个用户都保存了历史版本,所以只要有一个用户设备没问题,就可以恢复数据啦~
    e1319be5885c0c65da7aa0e3dbc7e7a6.png

什么是Git?

Git是免费、开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

b67100753d56f322cd215457ae3ebaec.png

Git的相关理论基础

  • Git的四大工作区域
  • Git的工作流程
  • Git文件的四种状态
  • 一张图解释Git的工作原理

Git的四大工作区域

先复习Git的几个工作区域哈:

ecfe014b453c9083b9a4a5f18374c362.png

  • Workspace:你电脑本地看到的文件和目录,在Git的版本控制下,构成了工作区。
  • Index/Stage:暂存区,一般存放在 .git目录下,即.git/index,它又叫待提交更新区,用于临时存放你未提交的改动。比如,你执行git add,这些改动就添加到这个区域啦。
  • Repository:本地仓库,你执行git clone 地址,就是把远程仓库克隆到本地仓库。它是一个存放在本地的版本库,其中HEAD指向最新放入仓库的版本。当你执行git commit,文件改动就到本地仓库来了~
  • Remote:远程仓库,就是类似github,码云等网站所提供的仓库,可以理解为远程数据交换的仓库~

Git的工作流程

上一小节介绍完Git的四大工作区域,这一小节呢,介绍Git的工作流程咯,把git的操作命令和几个工作区域结合起来,个人觉得更容易理解一些吧,哈哈,看图:

06f45f243237f598d28512859d840699.png

git 的正向工作流程一般就这样:

  • 从远程仓库拉取文件代码回来;
  • 在工作目录,增删改查文件;
  • 把改动的文件放入暂存区;
  • 将暂存区的文件提交本地仓库;
  • 将本地仓库的文件推送到远程仓库;

Git文件的四种状态

根据一个文件是否已加入版本控制,可以把文件状态分为:Tracked(已跟踪)和Untracked(未跟踪),而tracked(已跟踪)又包括三种工作状态:Unmodified,Modified,Staged

73d3414f9c8a0c2e63c2a4212f5866f0.png

  • Untracked: 文件还没有加入到git库,还没参与版本控制,即未跟踪状态。这时候的文件,通过git add 状态,可以变为Staged状态
  • Unmodified:文件已经加入git库, 但是呢,还没修改, 就是说版本库中的文件快照内容与文件夹中还完全一致。 Unmodified的文件如果被修改, 就会变为Modified. 如果使用git remove移出版本库, 则成为Untracked文件。
  • Modified:文件被修改了,就进入modified状态啦,文件这个状态通过stage命令可以进入staged状态
  • staged:暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodified状态.

一张图解释Git的工作原理

d08de80d9e1c7a5855b6fae777db8b62.png

日常开发中,Git的基本常用命令

  • git clone
  • git checkout -b dev
  • git add
  • git commit
  • git log
  • git diff
  • git status
  • git pull/git fetch
  • git push

这个图只是模拟一下git基本命令使用的大概流程哈~
06ddaaa02dfce7ad36e05fd165fc8021.png

最后

提供一下免费的Java架构学习资料给大家,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。

需要的朋友可以戳这里免费领取

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
cmN1R2dB)**

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,386人围观)

还没有评论,来说两句吧...

相关阅读