软件构造复习2

本文主要复习了软件构造中的版本控制概念,重点介绍了Git的工作原理和特性。内容涉及软件配置管理、版本库、版本号管理、版本控制工具的分类及优缺点。详细阐述了Git的结构,如服务器、本地仓库、工作区和暂存区,并对比了Git与传统VCS的区别。此外,还讨论了数据类型的区别、静态与动态类型检测,以及不可变数据类型的实现和优缺点。
摘要由CSDN通过智能技术生成

软件构造知识点复习2

1. 软件配置管理:追踪和控制软件的变化
包含代码,数据,文档,程序等等。
2. 有一个版本库,所有版本存在版本库中,随时拿出使用,软件库中的版本都是稳定的
3. 版本号,从前到后,变化逐渐变小x.x.x.x

4. 版本控制工具
·回退
·比较版本差异
·备份版本
·在多个开发者之间共享和协作
·便于审计
·合并
最大优点:可以创建分支,分支相互独立
5. 涉及概念
·仓库:SCM中的CMDB(配置管理控制库)
·工作拷贝:在开发者本地机器上的一份项目拷贝
·文件:一个独立配置项
·版本:在某个特定时间点所有文件的共同状态
·HEAD:程序员正在其上工作的版本
6. 版本控制工具分类(VCS)

  1. 本地式的版本控制工具
    版本库在本地端,更新也在本机,当前开发者使用。
  2. 集中式的版本控制工具
    有一个服务器,存储所有版本。
  3. 分布式的版本控制工具
    版本存在不同机器上
    服务器出问题还可以从其他机器恢复。
    如何保持版本一致性:在commit时判断是否有其他人更改,如果有,先fetch才能再更改提交。

7.Git(分布式)
<1>分为
·服务器(远程版本库)
·本地端的仓库(远程版本库的一个拷贝)
·工作区(程序从版本库中拷贝出进行更改的地方)
·暂存区(已更改为提交的文件)(非真实存在,机器上不存在这个文件夹)
利用标识符,一位为0代表不位于,1位于
<2>Git以对象形式存放不同版本。通过指针实现版本回溯。
Git的commit对象有两种方式产生
·commit命令创建新版本 只有一个父节点
·分支的合并 有两个父节点
<3>commit对象中包含的内容
·文件根节点的记录
·文件的作者
·提交者
·父节点
<4> 与之前commit中未发生变化的文件在新版本终不会重复存储
8. 传统VCS和git对比
传统VCS版本中存储的是变化dert
很难创造分支,获取当前版本要从最初一点点叠加
Git中存储的是文件。
很容易获取当前版本中文件,但是较难获取变化
9.基本数据类型 和 对象数据类型区别
·只有值没有ID 既有ID,也有值
·在栈中分配内存 在堆中分配内存(两个对象值一样也要分开,存储区域不同)
·Immutable 一些mutable,一些immutable
10. 静态类型检测
关于类型的检查,赋值是不是与变量类型匹配(值在不在对应集合之内),在编译阶段就报错。
·语法错误
·类名/函数名错误
·参数数目错误
·参数类型错误
·返回值类型错误
10. 动态类型检测
在程序运行阶段检测,针对某一个值是否出错(eg除数为0)
·非法参数值
·非法返回值
·越界
·空指针
11. 动态类型检测强于静态。
12. 改变一个变量,该变量指向另一个存储空间
·改变变量的值,在当前存储空间写入新值
13. immutable不变数据类型
一旦被创建,其值不能被改变。
如果要改变这个变量的值,就要新建存储空间,新的内容写到新的存储空间,再将变量指向新的存储空间。
Eg.String
14. 如果要创建immutable类
类中不包括改变任何属性的方法
属性不能为public
不能直接return属性
15. immutable更安全(多个引用时mutable一个改变都会被改变),但多次修改会产生大量临时拷贝,需要垃圾回收,而mutable可以减少拷贝提高效率,且多个模块共享数据。
16. 防御式拷贝
return new xxx()
问题:浪费内存
17. snapshot diagram
·基本类型的值:箭头加值
·对象类型的值:箭头加圈
对象的属性和对象一起放在堆里
18.对一个对象的引用存在栈中,不会存基本数据类型的引用名
·immutable对象:双线椭圆
·mutable对象:单线椭圆
19.不可改变的引用用双线箭头(Final限制引用不可改变,引用不可变,但值可以改变)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值