随笔分类 -  的先生在读《计算机是怎样跑起来的》

1 2 下一页

面对对象编程(OOP, Object Oriented Programming)及其三个基本特性
摘要:一千个读者,一千个哈姆雷特。对于面对对象编程,书上都会告诉我们它有三个基本特性,封装,继承,多态,但谈起对这三点的见解,又是仁者见仁智者见智,感觉还是得多去编程中体验把 。面向对象编程(OOP, Object Oriented Programming)是一种... 阅读全文

posted @ 2019-04-24 09:51 的先生在打码 阅读(156) 评论(0) 推荐(0)

类和对象的区别
摘要:在面向对象编程中,类和对象被看作是不同的概念而予以区别对待。类是对象的定义,而对象是类的实例(Instance)。经常有教材这样说明二者之间的关系:类是做饼干的模具,而用这个模具做出来的饼干就是对象。定义了一个类。但是我们还无法直接使用类所持有的成员,要想使... 阅读全文

posted @ 2019-04-24 09:25 的先生在打码 阅读(507) 评论(0) 推荐(0)

了解链表和二叉树的结构
摘要:链表是一种类似数组的数据结构,这个“数组”中的每个元素和另一个元素都好像是手拉着手一样。public class LinkNode { public Object data; //存放结点数据 public LinkNode next; //指向下一个结点,... 阅读全文

posted @ 2019-04-24 09:15 的先生在打码 阅读(269) 评论(0) 推荐(0)

了解循环队列的实现
摘要:上一节中,我们发现顺序队列的多次入队和出队操作会造成有存储空间却不能进入队列的"假溢出"现象,之所以发生这种情况,是因为顺序队列的存储单元没有重复存储机制,解决方法是如果数据一直存放到了数组的末尾,那么下一个存储位置就折回到数组的开头。这样就相当于数组的末尾... 阅读全文

posted @ 2019-04-22 11:24 的先生在打码 阅读(160) 评论(1) 推荐(0)

了解队列(顺序队列)的实现方法
摘要:续上节,我们来说说顺序队列的实现,队列对所存储数据的存取方式是FIFO的。为了实现队列这种数据结构,以下元素是必不可少的:1.一个任意大小的数组;2.一个用于存放排在队头的数据对应的索引的变量;3.一个用于存放排在队尾的数据对应的索引的变量;4.一对儿函数,... 阅读全文

posted @ 2019-04-22 10:25 的先生在打码 阅读(197) 评论(0) 推荐(0)

了解栈(顺序栈)的实现方法
摘要:栈和队列的相似点在于,它们都可以把不能立刻处理的数据暂时存储起来;不同点在于,栈对所存储数据的存取方式是LIFO的,而队列对所存储数据的存取方式是FIFO的。同样是数组,处理手段不同,得到的数据结构也会不同,数组有时可以转化为栈,有时可以转化为队列。栈的实现... 阅读全文

posted @ 2019-04-21 17:38 的先生在打码 阅读(251) 评论(0) 推荐(0)

典型的数据结构的类型和概念
摘要:数组是一种直接利用内存物理结构(计算机的特性)的最基本的数据结构。只需使用for语句,就可以连续地处理数组中所存储的数据,实现各种各样的算法。但是在现实世界中也有一些数据结构,仅凭借数组是无法实现的,比如有的数据结构可以把数据堆积得像小山一样(栈),有的数据... 阅读全文

posted @ 2019-04-21 16:21 的先生在打码 阅读(233) 评论(0) 推荐(0)

数组(数据结构的基础)
摘要:上一节中的abc降序排序,我们除了可以定义三个变量外,还可以定义一个含有三个元素的数组,那代码实现就会发生一些变化:public static void main(String[] args) { int[] nums = new int[3]; num... 阅读全文

posted @ 2019-04-21 16:04 的先生在打码 阅读(145) 评论(0) 推荐(0)

为什么需要数据结构
摘要:如果是完全不了解数据结构的程序员,说不定会通过一个挨一个地定义出若干个离散的变量来编写程序吧。要是程序可以按照预期运行,那么以这种方式编程倒也可以。但是若还要用这种方式实现对多个数据排序的算法,那就有些困难了。下面列出了一段程序,把三个数据分别存入a、b、c... 阅读全文

posted @ 2019-04-21 15:42 的先生在打码 阅读(140) 评论(0) 推荐(0)

程序中的变量是什么?(了解内存和变量的关系)
摘要:变量中所存储的数据是可以改变的。变量的实质是按照变量所存储数据的大小被分配到的一块内存空间。计算机所处理的数据都存储在了被称为内存的IC(Integrated Circuit,集成电路)中。在一般的个人计算机中,内存内部被分割成了若干个数据存储单元,每个单元... 阅读全文

posted @ 2019-04-21 15:29 的先生在打码 阅读(1041) 评论(0) 推荐(0)

石头剪刀布Java实现
摘要:java实现石头剪刀布过程首先来看石头剪刀布的所有可能情况,具体如下图第一种思路是穷举所有可能,使用if条件语句,略显呆板和麻烦。第二种思路,因为计算机存的是数字,所以我们可以从数字角度来找规律:在这里我们用0代表石头;1代表剪刀;2代表布;那我们的猜拳游戏... 阅读全文

posted @ 2019-04-21 11:12 的先生在打码 阅读(858) 评论(0) 推荐(0)

算法(Algorithm)
摘要:算法就是“把解决问题的步骤无一遗漏地用文字或图表示出来”。在解决问题的步骤中,有了与直觉相关的因素,就不是算法了。既然不是算法,也就不能用程序表示了。 阅读全文

posted @ 2019-04-21 11:12 的先生在打码 阅读(633) 评论(0) 推荐(0)

鸡兔同笼
摘要:题目如下:鸡和兔子共计10只,把它们的脚加起来共计32只,问鸡和兔子分别有多少只?设有x只鸡,y只兔子,那么就可以列出如下的联立方程组。代码实现(java)利用嵌套for循环public static void main(String[] args) { ... 阅读全文

posted @ 2019-04-21 11:11 的先生在打码 阅读(351) 评论(0) 推荐(0)

求最大公约数(辗转相除法)、最小公倍数
摘要:辗转相除法(又称欧几里得算法)就是一个机械地求解最大公约数问题的算法。在辗转相除法中分为使用除法运算和使用减法运算两种方法。使用减法运算简单易懂,步骤如图5.2所示。用两个数中较大的数减去较小的数(步骤),反复进行上述步骤,直到两个数的值相等(步骤的终止)。... 阅读全文

posted @ 2019-04-21 11:08 的先生在打码 阅读(285) 评论(0) 推荐(0)

程序
摘要:程序的流程总共有三种。除了顺序执行以外,还有“条件分支”和“循环”。因为只有这三种,记忆起来还是很轻松的吧。根据比较操作的结果,跳转到之前处理过的步骤就是循环;跳转到之后尚未处理的步骤就是条件分支顺序执行是按照指令记录在内存中的先后顺序依次执行的一种流程。而... 阅读全文

posted @ 2019-04-21 10:51 的先生在打码 阅读(222) 评论(0) 推荐(0)

CPU的寄存器结构
摘要:计算机的硬件有三个基本要素,CPU、内存和I/O。CPU负责解释、执行程序,从内存或I/O输入数据,在内部进行运算,再把运算结果输出到内存或I/O。内存中存放着程序,程序是指令和数据的集合。I/O中临时存放着用于与周边设备进行输入输出的数据。既然数据的运算是... 阅读全文

posted @ 2019-04-21 10:45 的先生在打码 阅读(701) 评论(0) 推荐(0)

什么是寄存器
摘要:寄存器是位于CPU和I/O的数据存储器 阅读全文

posted @ 2019-04-21 10:10 的先生在打码 阅读(270) 评论(0) 推荐(0)

比特、字节、K
摘要:比特(bit)比特,计算机专业术语,是信息量单位,由英文BIT音译而来。BIT为Binary digit(二进制数)位的缩写。二进制数的一位所包含的信息就是一比特,如二进制数0100就是4比特。字节(byte)在二进制数系统中,每个0或1就是一个位(bit)... 阅读全文

posted @ 2019-04-21 10:05 的先生在打码 阅读(510) 评论(0) 推荐(0)

计算机硬件的组成要素
摘要:不清楚cpu(处理器)、内存、I/O的小伙伴们,重点来了! 计算机硬件的主要组成要素如下图: CPU是计算机的大脑,在其内部可对数据执行运算并控制内存和I/O。内存用于存储指令和数据。I/O负责把键盘、鼠标、显示器等周边设备和主机连接在一起,实现数据的输入与输出。 时钟信号 为了驱动CPU运转,称为 阅读全文

posted @ 2019-04-21 09:57 的先生在打码 阅读(315) 评论(0) 推荐(0)

计算机硬件的组成要素
摘要:不清楚cpu(处理器)、内存、I/O的小伙伴们,重点来了!计算机硬件的主要组成要素如下图:CPU是计算机的大脑,在其内部可对数据执行运算并控制内存和I/O。内存用于存储指令和数据。I/O负责把键盘、鼠标、显示器等周边设备和主机连接在一起,实现数据的输入与输出... 阅读全文

posted @ 2019-04-21 09:57 的先生在打码 阅读(223) 评论(0) 推荐(0)

1 2 下一页

导航