主頁

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...

阅读更多