Skip to content

Commit

Permalink
Merge pull request #10 from china-kook/master
Browse files Browse the repository at this point in the history
更改了自己代码仓库结构
  • Loading branch information
haolipeng authored Feb 27, 2017
2 parents 214df3e + 6306e80 commit ccc6ceb
Show file tree
Hide file tree
Showing 42 changed files with 79 additions and 35 deletions.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 2017编程提高社群

2017编程提高社群代码仓库所在地
1 change: 0 additions & 1 deletion group01/group01.md

This file was deleted.

1 change: 0 additions & 1 deletion group02/group02.md

This file was deleted.

1 change: 0 additions & 1 deletion group03/group03.md

This file was deleted.

1 change: 0 additions & 1 deletion group04/group04.md

This file was deleted.

1 change: 0 additions & 1 deletion group05/group05.md

This file was deleted.

1 change: 0 additions & 1 deletion group06/group06.md

This file was deleted.

1 change: 0 additions & 1 deletion group07/group07.md

This file was deleted.

1 change: 0 additions & 1 deletion group08/group08.md

This file was deleted.

1 change: 0 additions & 1 deletion group09/group09.md

This file was deleted.

1 change: 0 additions & 1 deletion group10/group10.md

This file was deleted.

1 change: 0 additions & 1 deletion group11/group11.md

This file was deleted.

1 change: 0 additions & 1 deletion group12/group12.md

This file was deleted.

1 change: 0 additions & 1 deletion group13/group13.md

This file was deleted.

1 change: 0 additions & 1 deletion group14/group14.md

This file was deleted.

1 change: 0 additions & 1 deletion group15/group15.md

This file was deleted.

1 change: 0 additions & 1 deletion group16/group16.md

This file was deleted.

1 change: 0 additions & 1 deletion group17/group17.md

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
## CPU,内存,硬盘,指令以及它们之间的关系(2017.2.25)

原文:[CPU,内存,硬盘,指令以及它们之间的关系](http://ikookblog.com/2017/02/25/cpu-ram-detailed/)

> 本人对于CPU、内存、硬盘以及指令等一系列计算机核心组件理解甚浅。并且对其也不是很来感,不过身为一名软件专业学生以及未来的程序猿,还是硬着头皮研究研究。以下是对其学习的一个总结吧算是,有什么不正确的地方还请指出,不喜勿喷。
相信大家都知道计算机是由控制器、运算器、存储器、输入设备、输出设备五大部分组成。控制器 + 运算器组成了CPU,存储器即内存,当然硬盘也属于存储器,不过硬盘和内存存储形式有所不同,详细见下。

说明:点击以下标题查看维基百科详解

### [CPU](https://zh.wikipedia.org/wiki/%E4%B8%AD%E5%A4%AE%E5%A4%84%E7%90%86%E5%99%A8)

CPU即中央处理器(Central Processing Unit)。

它是计算机的主要设备之一,可以是说是计算机最重要的组成部分。常听到有人说CPU是"计算机的大脑",但我觉得这句话是不完全正确的。为什么这么说呢,CPU没有存储能力,只有为数不多的寄存器能临时存储一点东西,人可是有存储能力的,像最强大脑上有些人更拥有超强的记忆力。所以在存储能力这方面来讲,我觉得把CPU比作”大脑“的说法不太正确。就像刘欣前辈在其公号上讲解[CPU](http://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665513017&idx=1&sn=5550ee714abd36d0b580713f673e670b&scene=21#wechat_redirect)说的那样,"上帝为你关闭了一扇门,就一定会为你打开一扇窗",CPU虽然“脑容量”很小,但是它拥有超强的运算力。拿内存和硬盘来说,CPU比内存要快100倍,比硬盘快1000多万倍。这种运算速度可是人望尘莫及的了。所以在运算力这方面讲,又可以把CPU比作“超强的大脑”。

它负责处理、运算计算机内部的所有数据。

### [内存](https://zh.wikipedia.org/wiki/%E9%9A%8F%E6%9C%BA%E5%AD%98%E5%8F%96%E5%AD%98%E5%82%A8%E5%99%A8)

内存即RAM,随机存取存储器(Random Access Memory)。

内存是计算机的主存,主存(Main memory)即电脑内部最重要的存储器,是与CPU直接交换数据的内部存储器。它用来加载各种各样的数据和程序以供CPU直接运行与运用。它是可以随时读写的,并且速度也很快,仅仅比CPU慢100倍。它通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。通俗点说,内存就是用来临时存储数据,用来给CPU提供CPU要处理的东西。但是内存不会长期保存数据,只是临时存储,程序和数据处理完后就释放空间。

### [硬盘](https://zh.wikipedia.org/wiki/%E7%A1%AC%E7%9B%98)

硬盘即HDD(Hard Disk Drive)。

硬盘是计算机上使用坚硬的旋转盘片为基础的非挥发性存储设备,它在平整的磁性表面存储和检索数字数据,信息通过离磁性表面很近的磁头,由电磁流来改变极性方式被电磁流写到磁盘上,信息可以通过相反的方式读取,例如读头经过纪录数据的上方时磁场导致线圈中电气信号的改变。硬盘的读写是采用随机存取的方式,因此可以以任意顺序读取硬盘中的数据。以上来自维基百科。各种专业名词,我相信你已经看厌倦了快。说白了,硬盘就是存东西的,长期存,也就是具有记忆力。不像CPU和内存,“一觉醒来就忘了以前的事情”,所有的数据全都清空。硬盘会长期存储数据,只要是不人为删除,不出现硬件故障,东西就不会丢。

### [指令](https://zh.wikipedia.org/wiki/%E6%8C%87%E4%BB%A4)

指令,怎么说呢,指令就是任何可执行程序的元素的表述。指令一般会包含一个操作码和零到多个操作数。操作码指定了要进行什么样的操作。操作数可能指定了参与操作的寄存器、内存地址或立即数,它可能还会包含寻址方式,寻址方式确定操作数的含义。说白了,指令就是CPU的命令,CPU通过寄存器中的指令来进行数据的操作。

另外,指令一般有四种:加载、存储、操作和跳转。

### 它们之间的关系

CPU从内存或缓存中取出指令,放入指令寄存器,并对指令译码进行分解,进而对数据进行处理。这么说吧,计算机中所有的程序运行都是在内存中进行的,因此内存对计算机性能的影响非常大。数据由传输速度较慢的硬盘通过内存传送到CPU进行处理。不过内存是带电存储的(断电数据就会消失),而且容量十分有限,所以要长时间储存程序或数据就需要使用硬盘。

所以计算机处理数据大概就通过以上几个部分:数据(硬盘)——>内存——>CPU——>CPU通过指令处理数据
4 changes: 4 additions & 0 deletions group18/935542673/Blog/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
## 2017编程提高社群博客

2017.2.25 [CPU,内存,硬盘,指令以及它们之间的关系](https://github.com/china-kook/coding2017/blob/master/group18/935542673/Blog/CPU%EF%BC%8C%E5%86%85%E5%AD%98%EF%BC%8C%E7%A1%AC%E7%9B%98%EF%BC%8C%E6%8C%87%E4%BB%A4%E4%BB%A5%E5%8F%8A%E5%AE%83%E4%BB%AC%E4%B9%8B%E9%97%B4%E7%9A%84%E5%85%B3%E7%B3%BB.md)

File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
## 2017编程提高社群作业:实现基本的数据结构(2017.2.19)

#### [所有基本数据结构实现类及接口](https://github.com/china-kook/coding2017/tree/master/group18/935542673/Coding/20170219/src/com/ikook/basic_data_structure)

1. 实现了ArrayList、LinkedList、Queue(依靠LinkedList实现)、Stack(依靠ArrayList实现)

1.1 ArrayList实现了一下方法
1.1 ArrayList实现了以下方法

```
(1)add(Object): 添加元素到集合;
Expand All @@ -16,7 +18,7 @@
(9)iterator(): 返回一个迭代器的实现类。
```

1.2 LinkedList实现了一下方法
1.2 LinkedList实现以下方法

```
(1)addFirst(Object): 在链表头部插入新的元素;
Expand All @@ -36,7 +38,7 @@
(15)iterator(): 返回一个迭代器的实现类。
```

1.3 Queue实现了一下方法
1.3 Queue实现了以下方法

```
(1)enQueue(Object): 入队操作;
Expand All @@ -45,7 +47,7 @@
(4)isEmpty(): 判断队列是否为空。
```

1.4 Stack实现了一下方法
1.4 Stack实现了以下方法

```
(1)push(Object):入栈操作;
Expand All @@ -58,7 +60,7 @@

2. 实现了BinarySearchTree、Iterator接口

2.1 BinarySearchTree实现了一下方法
2.1 BinarySearchTree实现了以下方法

```
(1)insert(int):插入操作;
Expand All @@ -67,7 +69,7 @@
(4)inorderTraverse(Node):遍历操作,采用中序遍历。
```

2.2 Iterator定义了一下方法
2.2 Iterator定义了以下方法

```
(1)hasNext():判断是否有元素没有被遍历;
Expand All @@ -76,8 +78,6 @@
```

3. 对应以上类做了单元测试
#### [所有基本数据结构测试类](https://github.com/china-kook/coding2017/tree/master/group18/935542673/Coding/20170219/junit/com/ikook/basic_data_structure)

说明:由于作业以实现基本的数据结构为主,则在实现单元测试时,只对正常情况进行了测试,一些异常情况并进行编写测试用例。

点击查看: [unit test](https://github.com/china-kook/coding2017/tree/master/group18/935542673/Coding/junit/com/ikook/basic_data_structure)
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,9 @@ public void add(Object obj) {
* @param obj
*/
public void add(int index, Object obj) {
rangeCheck(index);
if (index > size || index < 0)
throw new IndexOutOfBoundsException("索引越界异常");

ensureCapacity();

System.arraycopy(elementData, index, elementData, index + 1, size-index);
Expand Down Expand Up @@ -151,11 +153,7 @@ private void ensureCapacity() {
*/
private void rangeCheck(int index) {
if(index < 0 || index >= size) {
try {
throw new Exception("索引异常");
} catch (Exception e) {
e.printStackTrace();
}
throw new IndexOutOfBoundsException("索引越界异常");
}
}

Expand Down
3 changes: 3 additions & 0 deletions group18/935542673/Coding/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 2017编程提高社群Coding

2017.2.19 [实现基本的数据结构](https://github.com/china-kook/coding2017/tree/master/group18/935542673/Coding/20170219)
15 changes: 15 additions & 0 deletions group18/935542673/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## 2017编程提高社群

群昵称:青岛-ikook

QQ号码:935542673

------------------------------------------------------------------------------------------------------------------------------

**代码库结构说明:**

[Blog](https://github.com/china-kook/coding2017/tree/master/group18/935542673/Blog) 目录为本人在社群中所编写的所有博客,可在 README.md 中直接点击某篇查看

[Coding](https://github.com/china-kook/coding2017/tree/master/group18/935542673/Coding) 目录为本人在社群中所编写的所有代码,可在 README.md 中直接点击查看

[Datum](https://github.com/china-kook/coding2017/tree/master/group18/935542673/Datum) 目录为本人在社群中产出的所有资料
1 change: 0 additions & 1 deletion group19/group19.md

This file was deleted.

1 change: 0 additions & 1 deletion group20/group20.md

This file was deleted.

1 change: 0 additions & 1 deletion group21/group21.md

This file was deleted.

0 comments on commit ccc6ceb

Please sign in to comment.