loannes's blog

分类 · 笔记

首页

关于

归档

计算机组成

计算机的基本组成

一、计算机系统概论 冯诺依曼计算机组成 主机(cpu+内存),外设(输入设备+输出设备+外存),总线(地址总线+数据总线+控制总线) 计算机层次结构 应用程序-高级语言-汇编语言-操作系统-指令集架构层-微代码层-硬件逻辑层 计算机性能指标 非时间指标 【字长】机器一次能处理的二进制位数 ,常见的有32位或64位 【总线宽度】数据总线一次能并行处理的最大信息位数,一般指运算器与存储器之间的数据总线的位数 【主存容量】主存的大小 【存储带宽】单位时间内与主存交换的二进制位数 B/s 时间指标 【主频f】时钟震荡的频率 Hz;【时钟周期T】时钟震荡一次的时间 t 【外频】cpu与主板之间同步的时钟频率,系统总线的工作频率;【倍频】主频与外频的倍数 =主频/外频 【CPI】clock cycles p..

更多

横扫offer笔记 面向对象

不可变数据类型是永远不会被改变的。 const int i = 0; //指定变量i为不可变常量 int * j = (int *)&i; //强行将j的指针指向常变量i, &i指的是得到变量i的内存地址 * j = 1; printf("%d %d", i, *j) 最终得到0,1 因为i是常变量(不可改变的变量),所以即使指针变量j指向了i的地址之后重新赋值。这个时候内存会为常变量开辟一个新的内存地址来存储原始值0,并且在输出的时候使用的还是原来的值。 *j指的是这个指针变量所指向的值,也就是它所存储的内存地址,通过该地址找到的值 如果这个时候输出j,那么将打印出*j中存储的内存地址 在16位机器上,下面这段代码输出结果: int i = 65536; ..

更多
loading..
MySQL, 事务

【MySQL必知必会】管理事务处理

什么是事务处理 事务处理是为了维护数据的完整性的技术手段,是对数据库数据安全的一种保证。它能确保成批的MySQL语句要么完全执行要么完全不执行,不会存在执行部分语句而造成该处理的数据没有被处理导致数据的错乱。 举例来说:公司某位员工离职了,除了要删除职员表中的数据还需要删除财务数据表中的相关数据以及其他业务上的数据,客户关系数据等。这些操作都需要全部一起执行,否则会造成很严重的问题。 ACID 事务是DBMS的执行单位。它由有限个数据库操作语句组成。但不是任意的数据库操作序列都能成为事务。一般来说,事务是必须满足4个条件(ACID) 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。 一致性(Consistency) 一致性是指事务必须使数据库从一个一致的状态变到另..

更多
loading..

算法图解之广度优先搜索

简介 广度优先搜索算法(Breathed First Search)是一种搜索算法。原理就是从树的根节点开始去遍历所有节点,从而找出最短路径。 使用范围 可以用来走迷宫,在游戏领域中可以用来做自动寻路功能 可以用来编写跳棋AI,计算多少步能获胜 也可以用来根据自己的人际关系网络查找到关系最近的医生 图 图由节点和边组成。一个节点可能与众多节点直接相连 图用于模拟不同的东西是如何相连的。 类似这样模拟了欠债关系的就是图 在遇到能用广度优先搜索算法解决问题时,我们可以先借助图来建立问题模型,然后再通过算法去解决问题。 图只是用来模拟问题模型,并不是最终答案 树形结构也是一种图,与其他图不同的是它不会往后指。 也就是说遇到问题后,我们可以通过图把问题的关键点放在节点上。用散列表把这些点按照图的结构存储起..

更多
loading..
MySQL触发器

【MySQL必知必会】使用触发器

触发器 当某个表发生更改时需要MySQL自动处理事件就是触发器。MySQL只会响应以下语句从而自动执行一条MySQL语句: DELETE INSERT UPDATE 创建触发器 创建触发器时,需要注意一些细节: 唯一的触发器名 触发器关联的表 触发器应该响应的活动(DELETE,INSERT,UPDATE) 触发器何时执行(处理之前或之后) 在MySQL5中同一数据库中的两个表可以用同一个名字,但是同一个表中的触发器名字必须唯一。但是在DBMS数据库中触发器名只能唯一。 可以用CREATE TRIGGER语句创建触发器。 CREATE TRIGGER test_tt AFTER DELETE ON `test` FOR EACH ROW BEGIN DECLARE s VARCHAR(20)..

更多
loading..
MySQL游标

【MySQL必知必会】使用游标

游标 由于MySQL检索返回的是一组成为结果集的行,可能是零行也可能是多行,但是之前学到的并没有能一行一行处理的方式。而有时候需要需要在检索出来的行中前进、后退一行或多行,这个时候需要使用游标。 游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览过更改。 游标在MySQL中只能用于存储过程或者函数 使用游标的流程 在能够使用游标前,必须声明它。为了定义要使用的SELECT语句。 声明游标后需要打开游标。这个过程用SELECT语句把数据实际检索出来。 对于填有数据的游标,根据需要检索出各行。 结束游标需要关闭它 打开和关闭游标 打开:OPEN CURSOR 关闭: CLOSE CURSOR CURSOR指的是先前定义的游标名 如一个完整的打开关闭过程: CREATE PROCED..

更多
loading..
MySQL存储过程

【MySQL必知必会】使用存储过程

存储过程 存储过程简单来说就是为以后的使用而保存的一条或多条MySQL语句集合。这里可以理解为在实际项目中,可能会遇到不同逻辑的MySQL,这个时候需要把这些语句集合起来,相当于是一个文件。 为什么使用存储过程 通过把处理封装在容易使用的单元中,简化复杂的操作。 由于不要求反复建立一系列处理步骤,这保证了数据的完整性。如果所有开发人员和应用程序都使用同一存储过程,则所使用的代码都是相同的。这一点的延伸就是防止错误。需要执行的步骤越多,出错的可能性就越大。防止错误保证了数据的一致性。 简化对变动的管理。如果表名、列名或业务逻辑有变化,只需要更改存储过程的代码。使用它的人员甚至不需要知道这些变化。 提高性能。因为使用存储过程比使用比使用单独的SQL语句要快。 存在一些只能用在单个请求中的MySQL元素和特性..

更多
loading..
MySQL视图

【MySQL必知必会】使用视图

视图 以例子来说明: SELECT salaries.emp_no, dept_emp.dept_no, salary, dept_name FROM salaries, dept_emp, departments WHERE salaries.emp_no = dept_emp.emp_no AND dept_emp.dept_no = departments.dept_no AND salary = 158220; 从三张表中获取薪水为158220的员工的id,部门id,薪水和部门名称。 如果使用视图,这段语句就会变成: SELECT salaries.emp_no, dept_emp.dept_no, salary, dept_name FROM salary_for_department WHE..

更多
loading..
MySQL全文本搜索

【MySQL必知必会】全文本搜索

理解全文本搜索 之前学习到了用LIKE关键字,利用通配符来匹配文本,还有通过正则表达式来匹配文本。不过这些匹配都有些缺点: 性能:通配符和正则表达式匹配通常要求MySQL尝试匹配表中所有行。如果搜索行越长匹配就越耗时。 明确控制:通配符和正则表达式很难做到精细的控制,控制在匹配过程中哪些需要匹配哪些需要不匹配,这样会影响性能无法做到优化。 智能化结果:基于通配符和正则表达式的匹配得到的结果你无法控制匹配数量,比方说匹配的关键词是#,在匹配的全文中有多个#,但是我无法控制结果中只返回一个或者n个。 而这些限制都能通过全文本搜索来解决。 使用全文本搜索 一般在建表时启用全文本搜索。 MySQL最常用的两个引擎为MyISAM和InnoDB MyISAM:支持全文索引 InnoDB:不支持全文索引 CREAT..

更多
123