司马世豪的博客

关于语言学习

【转载】快速掌握一个语言最常用的50%

现在的开发工作要求我们能够快速掌握一门语言。一般来说应对这种挑战有两种态度:其一,粗粗看看语法,就撸起袖子开干,边查Google边学习;其二是花很多时间完整地把整个语言学习一遍,做到胸有成竹,然后再开始做实际工作。然而这两种方法都有弊病。第二种方法的问题当然很明显,不仅浪费了时间,偏离了目标,而且...

2017-10-30 14:58:23

阅读数 200

评论数 0

【转载】数据结构和算法学习之路

这篇文章讲了什么? 我这些年学习数据结构和算法的总结。 一些不错的算法书籍和教程。 算法的重要性。 初学 第一次接触数据结构是在大二下学期的数据结构课程。然而这门课程并没有让我入门——当时自己正忙于倒卖各种MP3和耳机,对于这些课程根本就不屑一顾——反正最后考试划个重点也能过,于是这门整个...

2017-10-30 13:55:21

阅读数 298

评论数 0

Sublime Text Windows系统快捷键

Ctrl+Shift+P:打开命令面板 Ctrl+P:搜索项目中的文件 Ctrl+G:跳转到第几行 Ctrl+W:关闭当前打开文件 Ctrl+Shift+W:关闭所有打开文件 Ctrl+Shift+V:粘贴并格式化 Ctrl+D:选择单词,重复可增加选择下一个相同的单词 Ctrl+L:选择行,重复...

2017-09-12 14:18:12

阅读数 90

评论数 0

面向对象七大设计原则

每天都在和面向对象打交道,但是我们在应用面向对象的时候感觉自己对面向对象的技术应用是否合理?理解的是否到位?应用是否到位?应用时机是否恰到好处?是否符合软件的发展趋势? 面向对象的应用也有面向对象的原则,一个程序员的编程素质从一个小例子几十行代码就可以展现出来。面向对象编程是面向对象的基础的...

2019-05-04 12:49:11

阅读数 28

评论数 0

明星软件工程师的10种特质

1. 热爱编程 编程是一种为了满足兴趣而心甘情愿去做的劳动(Programming is a labor of love)。和其他任何职业一样,唯有真正的热情,才能完成真正的伟大事情。这里有个误解,认为编写代码是机械化并纯科学性的。事实上,最优秀的软件工程 师是工匠,他们能把能量、独创性和创造力融...

2019-05-04 11:43:18

阅读数 21

评论数 0

编程能力的四种境界

人类心理学研究中的一个基础支撑科目就是分析人的潜意识和意识。 弗洛伊德是最早的一位能够清楚的认定和描述我们的心理活动“领域”的人。 在他这著名的一生的早期,他就指出我们的意识里分“潜意识”,“前意识”,“意识”。 如 果我们想能清楚他们分别跟我们的思想、感觉、认知、判断和动机(这这些在我们每天的...

2019-05-04 11:38:26

阅读数 21

评论数 0

编程巨星的唯一秘诀

别以为是那些软件开发定律,别以为是开发出那些特殊用途的软件,别以为是软件设计技术本身。只有一条真理决定了一个软件程序员的成功还是失败。由于坚持这个真理,一个资深的程序员能在一天的时间里学会一门新的编程语言,而由于不坚持这条真理,一个初级的程序员用十年时间也只能挣到一份糊口钱、永远是来实现别人的设计...

2019-05-04 11:32:22

阅读数 12

评论数 0

责任链设计模式

什么是责任链设计模式 责任链模式是指一个需要多个过程或者角色参与处理,并给予某个约定组成一个链,每个过程或者角色拥有各自职责进行处理。责任链模式有效组织一个过程处理,同时子过程之间职责明确。 使用场景 (1)在公司OA系统请假审批流程 如果请假小于3天只需要项目经历批复 如果请假...

2019-05-01 11:46:05

阅读数 10

评论数 0

C#计时器的三种实现方法

在原博基础上学习,然后自己重新设计实现了一遍。在.NET中有三种计时器:一、 System.Windows.Forms命名空间下的Timer控件,和所在的Form属于同一个线程。Timer控件只有绑定了Tick事件和设置Enabled属性为True之后才会自动计时,Stop()方法,Start()...

2018-05-11 11:25:37

阅读数 1822

评论数 0

【计算机组成原理】第4章-存储器 思考与练习

本章重点介绍主存储的分类、工作原理、组成方式以及与其他部件(如CPU)的联系。此外还介绍了高速缓冲储存器、磁表面储存器等的基本组成和工作原理。建立起如何用不同的存储器组成具有层次结构的存储系统的概念。...

2018-02-08 11:15:17

阅读数 269

评论数 2

【计算机组成原理】第3章-系统总线 思考与练习题

将各部件连接到一组公共信息传输线上,称为总线连接 总线是连接多个部件的信息传输线,是各部件共享的传输介质  总线的应用很广泛,从不同角度可以有不同的分类方法,数据传送方式,使用范围,连接部件不同等进行分类  按系统总线传输信息的不同,又可分为三类:数据总线、地址总线和控制总线 ...

2018-02-07 11:49:02

阅读数 483

评论数 0

【计算机组成原理】第2章-计算机的发展及应用 思考与练习题

微处理器芯片的位数指的是一个机器周期时钟脉冲能处理的字长。 随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介...

2018-02-05 17:28:52

阅读数 602

评论数 0

【计算机组成原理】第1章 计算机系统概论-思考题与习题

1.1-什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要?  计算机系统是由“硬件”和“软件”两大部分组成  计算机硬件-是指计算机的实体部分,由看得见摸得着的各种电子器件、各类光、电、机设备等实物组成 计算机软件-看不见,摸不着,由人们事先编制的具有各类特殊功能的程序...

2018-02-05 14:49:58

阅读数 322

评论数 0

数据结构-树的定义

树的定义 树是n个节点的有限集。n=0时,称为空树。在任意一颗非空树中:(1)有且仅有一个特定的称为根的结点; (2)当n>1时,其余结点可分为m个互不相交的有限集,其中每一个集合本身又是一棵树,并且称为根的子树。 1.n>0时根结点是唯一的,不可能存在多个根结点 2.m>...

2018-01-30 15:00:21

阅读数 97

评论数 0

【数据结构】- 遍历二叉树

二叉树的遍历原理 二叉树的遍历是指从根节点出发, 按照某种次序以此访问二叉树所有节点,使得每个节点被访问一次且仅被访问一次 这里有两个关键词:访问和次序 二叉树遍历方法 1.前序遍历 规则是若二叉树为空,则空操作返回,否则先访问根节点,然后前序遍历左子树,再前序遍历右子树       ...

2018-01-17 15:15:25

阅读数 62

评论数 0

数据结构-栈

栈的定义 栈-是限定仅在表尾进行插入和删除操作的线性表 允许插入和删除的一端称为栈顶,另一端称为栈底,不含任何数据元素的栈称为空栈,栈又称为后进先出的线性表 栈的插入操作,叫做进栈,也称压栈、入栈 栈的删除操作,叫做出栈,也有的叫做弹栈 栈的抽象数据类型 ADT 栈(stack) D...

2018-01-11 16:56:59

阅读数 59

评论数 0

[数据结构与算法]-算法时间复杂度

算法时间复杂度定义: 在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间度量,记作:T(n)=O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐...

2018-01-07 23:06:05

阅读数 51

评论数 0

数据结构的基本概念

数据 数据:是描述客官事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。 -可以输入到计算机中 -能被计算机程序处理 数据元素 数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。 数据项 数据项:一个数据元素可...

2018-01-04 17:41:43

阅读数 84

评论数 0

[链表] - 将单向链表按某值划分成左边小、中间相等、右边大的形式

题目: 给定一个单向链表的头结点head,节点的值类型时整型,再给定一个整数pivot 实现一个调整链表的函数,将链表调整为左部分都是小于pivot的节点,中间部分 都是值等于pivot的节点,右边部分都是大于pivot的节点,出这个要求外,对调整后的 节点顺序没有更多的要求 进阶: ...

2017-12-19 15:29:28

阅读数 195

评论数 0

[链表] - 判断一个链表是否为回文结构

题目: 给定链表的头节点,判断该链表是否为会问结构 如果链表的长度为N,时间复杂度达到O(N),额外空间复杂度达到O(1) 方法一: public class Node{ public int value; public Node next; public Node(int dat...

2017-12-18 12:01:44

阅读数 183

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭