Java中Iterator的fast-fail分析
Java中的Iterator非常方便地为所有的数据源提供了一个统一的数据读取(删除)的接口,但是新手通常在使用的时候容易报如下错误ConcurrentModificationException,原因是在使用迭代器时候底层数据被修改,最常见于数据源不是线程安全的类,如HashMap & ArrayList等。
Git & Github Notes [3] - Branches
分支
Git 的分支,其实本质上仅仅是指向提交对象的可变指针。Git 的默认分支名字是 master。在多次提交操作之
后,你其实已经有一个指向最后那个提交对象的 master 分支。它会在每次的提交操作中自动向前移动。HEAD在 Git 中,它是一个指针,指向当前所在的本地分支(译注:将 HEAD 想象为当前分支的别名)。
新建分支
用branch命令新建一个分支,
git branch <branch_name>
切换分支
用git checkout命令切换分支,
git checkout <branch_name>
请牢记:当你切换分支的时候,Git 会重置你的工作目录,使其看起来像回到了你在那个分支上最后一次提交的样子。Git 会
自动添加、删...
Git & Github Notes [2] - Git File System
数据对象,树对象,提交对象
Git的文件系统是:铁打的对象,流水的引用。
Git中只有三种基本对象:
树对象(目录)
数据对象(文件)
提交对象(版本)
暂存blog文件对象
假设我的项目里只有三个简单文件,分别是README,test.rb和LICENSE。
$ git add README test.rb LICENSE
暂存操作会为每一个文件计算校验和(使用我们在 起步 中提到的 SHA-1 哈希算法),然后会把当前版本的文件快照保存到 Git
仓库中(Git 使用 blob 对象 来保存它们),最终将校验和加入到暂存区域等待提交。如下图所示,三个文件提交暂存区之后,.git/objects目录下就会有三个新的blob文件对象,然后这三个文件的校验和会被加入...
Setting Github SSH Key
对称加密(Symmetric-key)
1976年以前,所有的加密方法都是同一种朴素的模式:
我有一段信息: hello ronald,我把所有字母都替换成字母表上的下一个字母,变换成比如说ifmmp spobme,传递给比如说Ronald。
Ronald拿到拿到密文ifmmp spobme,把所有字母替换成字母表上的前一个字母,恢复成明文hello ronald。
问题是,我需要告诉Ronald我的加密规则。如果我这个规则被坏人知道了,我和Ronald之间的所有秘密对话都会被破解。
非对称加密
非对称加密有两把钥匙: 公钥-私钥。公钥专门用来加密,上锁。私钥用来解密。我可以把公钥给任何人。谁都可以用这个公钥来加密信息,然后传给我。只有握有私钥的我...
Git & Github Notes [1] - Basics Git Commands
Git的三个层次
这是关于Git最重要的概念,一个Git项目有 三个工作区:
工作目录(Working Directory): 针对某个版本(经常是当前版本)独立提取出来的内容,供我们使用或修改。可以感性地理解为我们平时看到的操作系统上的项目文件夹。
Git仓库(.git Directory): 整个项目所有版本的历史记录数据库。所有修改最终都要提交到这里。
暂存区域(Staging Area): 我们对工作区文件的修改不会直接提交给Git仓库,而是先保存在这个暂存区域,等待下次提交(commit)给Git仓库。暂存区域也叫”索引(index)“。
用大白话讲就是:Git仓库才是最终代码的储存点。工作目录相当于一个草稿本。我们先在草稿本上写写画画,并没有直接在Gi...
Visual Reference for How Git Commands Work
From: https://marklodato.github.io/visual-git-guide/index-zh-cn.html
基本用法
上面的四条命令在工作目录、暂存目录(也叫做索引)和仓库之间复制文件。
git add _files_ 把当前文件放入暂存区域。
git commit 给暂存区域生成快照并提交。
git reset -- _files_ 用来撤销最后一次git add _files_,你也可以用git reset 撤销所有暂存区域文件。
git checkout -- _files_ 把文件从暂存区域复制到工作目录,用来丢弃本地修改。
你可以用 git reset -p, git checkout -p, or git add...
Github Simple Guide
From: https://guides.github.com/introduction/flow/
Create a branch
When you’re working on a project, you’re going to have a bunch of different features or ideas in progress at any given time – some of which are ready to go, and others which are not. Branching exists to help you manage this workflow.
When you create a branch in your project, y...
共计 48 篇文章,6 页。