开篇介绍

个人背景:

不说太多废话,但起码要让你先对我有一个基本的了解。本人毕业于浙江某二本院校,算是科班出身,毕业后就进了一家外包公司做开发,当然不是阿里的外包,具体什么公司就不透露了,在外包一呆就呆了整整2年多,直到现在才从外包离开,如今拿到阿里的offer准备入职了。

阐述原因:

在外包公司的两年里,作为一名菜鸡,确实非常合格,技术没什么长进,眼见也没有提升,没规划没未来,让人实在焦虑,之所以开始改变自己也是家庭发生了变故,才让自己开始思考人生。身边很多人感叹过,能从外包逆袭,算是传奇,所以今天想要分享一下个人的经历,希望能够鼓励到一些与我有相似经历的同行。

注意:这次面试过程比较长,内容繁多,在文章中我基本上简述了,文章里的面试题完整版和我个人的总结方法经验(面试学习和刷题笔记),都整理有PDF完整版,如有需要可以看文末

Git是什么

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

什么是版本控制?

百度百科定义是酱紫的~

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

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

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

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

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

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

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

什么是Git?

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

Git的相关理论基础

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

Git的四大工作区域

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

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

Git的工作流程

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

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

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

Git文件的四种状态

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

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

一张图解释Git的工作原理

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

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

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

Kafka实战笔记

关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图,如果你需要完整的pdf版本,戳这里即可免费领取。

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

  • Kafka的集群
  • 第一个Kafka程序

afka的生产者

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

  • Kafka实战之削峰填谷

  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

[外链图片转存中…(img-FB5DBns0-1624605925880)]

  • Kafka实战之削峰填谷

[外链图片转存中…(img-zU9edY6o-1624605925881)]

今年最新整理的《高频Java面试题集合》,聪明人已经收藏了!相关推荐

  1. 最新1000道高频Java面试题,包含25个技术栈等面试攻略(多线程、JVM、高并发、spring、微服务、kafka,redis、分布式)从底层原理到架构

    每个技术人都有个大厂梦,我觉得这很正常,并不是饭后的谈资而是每个技术人的追求.像阿里.腾讯.美团.字节跳动.京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司/小公司,如果说能够在这样的公司锻 ...

  2. 2019年互联网高频Java面试题指南!互联网升职加薪方案!

    <2019年互联网高频Java面试题指南!互联网升职加薪方案!> 2019年我们只聊面试!让你能够随时准备升职加薪!少刷点抖音头条,少喝点鸡汤毒药,少研究些成功学,这些给不了你什么,你也得 ...

  3. 【2021最新】大佬花了半个月整理出来的Java后端学习路线,果断收藏了!

    要成为一个符合 BAT.TMD 大厂要求的后端技术工程师,到底需要学哪些技术?后端技术学习路线是怎样的? 学习路线 话不多说,直接上刚画完的后端技术学习路线思维导图框架: ​ 图中的每一个节点都可以点 ...

  4. 三年java经验面试总结,整理了一些java面试题供参考

    三年java经验面试总结,整理了一些java面试题供参考 此内容偏中高级,适合有三年或以上经验者. 1. java中wait和sleep有什么区别?多线程条件下如何保证数据安全? 答:最大区别是等待时 ...

  5. java面试题:集合_Java:选择正确的集合

    java面试题:集合 这是在您的应用程序中选择Set , List或Map的正确实现的快速指南. 最好的通用或"主要"实现可能是ArrayList,LinkedHashMap和Li ...

  6. 精心整理170道Python面试题,建议先收藏(二)

    简介: 精心整理170道Python面试题,建议先收藏(二) 51. 字符串格式化方式 使用 % 操作符 print("This is for %s" % "Python ...

  7. 1000道最新高频Java面试题,覆盖25个技术栈(多线程、JVM、高并发、spring、微服务、kafka,redis、分布式)从底层原理到架构!

    每个技术人都有个大厂梦,我觉得这很正常,并不是饭后的谈资而是每个技术人的追求.像阿里.腾讯.美团.字节跳动.京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司/小公司,如果说能够在这样的公司锻 ...

  8. 1000道最新大厂高频Java面试题,覆盖25个技术栈(多线程、JVM、高并发、spring、微服务、kafka,redis、分布式)从底层原理到架构

    每个技术人都有个大厂梦,我觉得这很正常,并不是饭后的谈资而是每个技术人的追求.像阿里.腾讯.美团.字节跳动.京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司/小公司,如果说能够在这样的公司锻 ...

  9. 2020最新Java面试题大全,赶紧收藏吧!

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一.Java 基础 1. JDK 和 J ...

最新文章

  1. WSHPSRS-匹克选择列表生成器-SRS(R12.2.3)
  2. 浅谈List保存的数据是引用数据类型的地址
  3. 成功解决FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `ar
  4. 李洪强iOS经典面试题36-简单介绍 ARC 以及 ARC 实现的原理
  5. 隐藏文件或文件夹属性无法修改解决方案
  6. 谷歌浏览器一进百度空间就崩溃的临时解决方法
  7. mysql upsert语法_mysql – SQL标准UPSERT调用
  8. Padavan完整编译教程
  9. 如何使用BitBar将几乎所有信息添加到Mac的菜单栏中
  10. java sniffer_用Java来实现的Sniffer
  11. 人工神经元模型及常见激活函数
  12. 三国志战略版:先锋斥候广州行
  13. 第十二届蓝桥杯大赛软件赛省赛 Python 大学 A 组 部分试题与解析
  14. kindle 4.1.1越狱换中文字体
  15. LaTeX 表格和图片在文中引用时编号显示问题
  16. matlab自动写word报告,matlab自动写入word
  17. 国内互联网公司梯队划分,阿里,腾讯,华为第一挡,网友坐不住了!
  18. 草根SEO如何做好企业网站的优化
  19. bzoj2144 [2011集训队出题] 跳跳棋 倍增 lca
  20. 大数据时代的数据特点与大数据时代处理数据理念的改变

热门文章

  1. TENSORFLOW PROCESS FINISHED WITH EXIT CODE -1073741819 (0XC0000005)
  2. TensorBoard logging requires TensorBoard version 1.15 or above
  3. CVPR‘21 | Involution:超越convolution和self-attention的神经网络新算子
  4. python傅里叶变换例子
  5. c++ opencv 基本操作
  6. 对光照、阴影和反光具有鲁棒性的变化检测算法及实现
  7. Corrupt JPEG data: 2 extraneous bytes before marker 0x
  8. 对于随机森林的通俗理解
  9. android自定义尺子收集demo
  10. oracle localhost连接