day 21-22 面试题:ButterKnife面试题,git面试题

1. 为什么要用ButterKnife
2. ButterKnife原理

1. 为什么要用ButterKnife

  1. 使用注解代替findViewById和事件绑定,简化代码,节省开发时间
  2. 能够方便的处理Adapter中的ViewHolder绑定的问题
  3. 使用过程中不会影响app的运行效率和性能(编译时注解)
  4. 代码更清晰,可读性更强

2. ButterKnife原理

实现原理

ButterKnife的原理就是利用注解和注解处理器针对每个Activity生成一个相对应的类,将原本需要手动编写的findViewById的view绑定代码和点击事件监听及资源id的绑定逻辑,利用注解处理器自动生成代码。

ButterKnife的实现步骤:

  1. 定义注解
  2. 编写注解处理器(Java项目)
    1. 扫描所有的ButterKnife注解
    2. 根据文件将注解分开
    3. 生成辅助类文件,调用findViewById方法,绑定View
  3. 在app中使用注解,并绑定当前的Activity即可使用

3. git

此文非git的面试题,主要写一下TortoiseGit的操作。具体的Git分支管理策略普通开发人员用不到,此处不表。

git基本命令

3.1 集中式vs分布式
  1. 集中式版本控制系统

    版本库是集中存放在中央服务器的,干活的时候都是用的自己的电脑,所以要先从中央服务器获取最新版本,然后干活,代码写完之后再将相应代码提交到中央服务器。必须联网才能够clone和push。

  2. 分布式版本控制系统

    个人电脑也可以有一个完整的版本库,每个人在各自的电脑上编写代码,提交到本地的版本库,然后同步到服务器,其他用户也是一样,在本地工作,不断给服务器交换最新修改。

3.2 TortoiseGit的安装

命令行之前写过一次,本次不写,只写图形化的一些操作。

  1. 首先准备两个安装包,git的安装程序和TortoiseGit的安装程序
    install.png

  2. 先安装git的安装程序,一路下一步即可,安装完成后,所有程序中能看到Git文件夹,右键能看到Git_bash_here的菜单
    Git_bash.png

  3. 安装TortoiseGit,一路下一步即可,安装完成后,右键能看到如下的菜单
    TortoiseGit.png

  4. TortoiseGit设置用户名和邮箱

    右键->TortoiseGit->Settings->Git,右侧就能看到User Info,填写下用户名和邮箱即可。
    Settings.png

3.3 TortoiseGit的使用

Git和SVN功能类似,clone,push,pull等功能基本没有区别,Git的强大之处主要在于分支的操作
开发者在本地建立自己的分支,编写提交代码,在未push到远端时都不会影响项目代码,而本地也可以维护一个分支,有自己的提交记录,开发完成后再合并到主分支,push到远端即可

  1. Git clone

    右键->TortoiseGit->Git clone,填入服务器地址即可拉取远端代码

    clone.png

  2. 新建分支(本地)

    右键->TortoiseGit->Create Branch

    CreateBranch.png

    输入新分支名字,确定即可创建新的分支

    CreateBranch1.png

  3. 本地开发,提交到本地

    右键->Git Commit(后会跟当前分支名)

  4. 切换分支

    右键->TortoiseGit->Switch/Checkout

    SwitchBranch.png

    选中本地的主分支,然后确定即可切换到主分支

    SwitchBranch1.png

  5. 合并分支

    右键->TortoiseGit->Merge

    merge.png

    选择需要合并到主分支上的分支名称,确定

    merge1.png

  6. push

    将本地合并完的内容push到远端对应的分支

    右键->TortoiseGit->push

push.png

push上去之后,showLog即可看到对应的日志,从分支的提交记录能看到先提交到NewBranch然后和Master合并的

push1.png

  1. show Log

    右键->TortoiseGit->show Log,这样就能看到当前分支的提交记录

  2. 删除分支
    前半部分和切换分支一样

    右键->TortoiseGit->Switch/Checkout

    分支名字后面,点击打开分支引用,在分支上右键,即可重命名和删除分支

deleteBranch.png

  1. 更新版本库

    从安全的角度说,提倡Fetch然后Merge

    pull(拉取):从远程拉取最新代码并合并到本地库

    Fetch(获取):从远程拉取最新代码到本地,并不会Merge

  2. 比较文件差异

    选中文件,右键TortoiseGit->diff,可以看到当前这个文件本次修改了哪些内容。

  3. Git冲突解决

    冲突是避免不了的

    做到以下几步能避免大部分Git冲突

    1. 明确的代码提交规范
    2. 及时获取新版本代码
    3. 修改后及时提交

    Git冲突:

    1. 两个人同时修改同一个文件名,其中一个人提交后,另一个获取后再使用(商定好文件名)
    2. 内容冲突,拉取逻辑后,解决冲突后再提交
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值