最近也是忙着各种各样的小项目,没时间整理新的笔记。月初倒是有想着补完上个月的笔记,但实际还是一拖再拖,然后就没了下文……中间想过将之前设计的ijktpl.js的升级到ijktpl2.js,结果只做好了语法方面的设计,剩下零星的代码片段……仔细想想这个月(包括上个月)最大的收获应该是学会了基础的SQL语法吧?一言难尽。

CISC与RISC的区别

CISC与RISC最大的区别在于设计的重心不一样:CISC更注重于性能减少重复的指令,因此CISC会针对特定的场景设计特定的指令,以此达到最佳性能;而RISC则更注重于功耗,使用常用的指令替换特定的指令(高功耗),实现复杂的操作,以此降低功耗。

现阶段的CPU发展趋势

以6502系列(RISC)为原型的ARM指令集其实更像是“披着羊皮的狼”,对ARM稍有了解就会发现ARM的指令集越来越向CISC指令集靠近。其根本原因其实还是上面提到的RISC的目标是精简指令而并非是性能,但随着移动设备的发展,使得原本RISC那点性能已经不在够使用了,于是ARM也就从RISC扩展出了一套CISC指令集……

这是因为CISC实际上比RISC更好吗?答案是否定的,反观原本是CISC的x86指令集也会发现x86越来越向着RISC的方向发展了。CISC在性能提升的同时也不得不在功耗上做出一些妥协,向RISC方向发展。所以如果要说以后的CPU发展方向(趋势),那么绝对是RISC与CISC的混合

SQLite学习笔记

-- 创建数据库(SQLite不支持)
CREATE DATABASE 数据库名

-- 选择数据库
USE 数据库名

-- 创建数据表
CREATE TABLE 数据表名(
 字段1 数据类型1,
 字段2 数据类型2
);

-- 在表中插入数据
INSERT INTO 数据表 VALUES(
 字段1,
 字段2
)

-- 查询表中所有的记录
SELECT * FROM user;

-- 查询表中匹配属性的user_id记录
-- 其中“<>”可以换成“!=”
SELECT user_id FROM user WHERE name <> "";

-- 查询表中匹配属性的user_id与name记录
SELECT user_id, name FROM user WHERE name <> "";

-- 查询表中匹配属性的全部记录
SELECT * FROM user WHERE name != "";

-- 删除表中匹配的属性
DELETE FROM user WHERE name == NULL;

-- 更改数据
UPDATE user SET name="小黑" WHERE name="urain39";

-- 更改多条数据
UPDATE user SET name="小黑", id=33 WHERE name="urain39";

-- 删除表
DROP TABLE 数据表名

-- 主键约束(防重复)
CREATE TABLE user(
 id PRIMARY KEY,
 name varchar(255)
);

-- 自增约束(插入时变量自动增加)
-- 仅支持INTEGER类型
CREATE TABLE user(
 id INTEGER PRIMARY KEY AUTOINCREMENT,
 name varchar(255)
);

-- (SQLite)自增插入语法
INSERT INTO user(NULL, "张三");