Home

Typescript常见问题

1. for of与for in 以及forEach的区别 for of: 过程可以被打断。循环出的结果是数组中的元素 for in: 过程不能被打断,循环出的结果是数组的下标 forEach: 过程不能被打断,无法返回 every:遍历数组每一项,若全部为true,则返回true some: 遍历数组的每一项,若其中一项为 true,则返回true const list = [4, 5, 6]; list.every((val, index, array) => { // val 当前值 // index 索引值 // array 数组 return true; // cotinues // return false will qu...

Read more

数据库设计

1. 概述 数据库设计:有效存储并高效访问数据 1. 优良的数据库设计 减少数据冗余 避免数据维护异常 节约存储空间 高效的访问 2. 数据库设计步骤 需求分析(数据分析) 逻辑设计(ER图) 物理设计(数据库特点转换) 维护优化(需求建表、索引优化,大表拆分) 2. 数据库设计范式 1NF:对属性的原子性约束,要求属性具有原子性,不可再分解(字段不可分); 2NF:对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性(有主键,非主键字段依赖主键); 3NF:对字段冗余性的约束,即任何字段不能由其他字段派生出来,要求字段没有冗余(非主键字段不能相互依赖); BCNF:解决部分主键依赖于非主键部分 1. 第一范式 数据库...

Read more

Makefile基础知识

1. wildcard用法 $(wildcard PATTERN…) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表 src=$(wildcard *.c ./sub/*.c) dir=$(notdir $(src)) obj=$(patsubst %.c,%.o,$(dir) ) all: @echo $(src) @echo $(dir) @echo $(obj) @echo "end" # 第一行输出: # a.c b.c ./sub/sa.c ./sub/sb.c # wildcard把 指定目录 ./ 和 ./sub/ 下的所有后缀是c的文件全部展开。 # 第二行输出: # a.c b.c sa....

Read more

Eclipse插件各种事件监听

1.重绘监听(PaintListener) Composite textComp = new Composite(pragmaComposite, SWT.NONE); textComp.setLayout(new GridLayout(1, false)); textGrid = new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1); textGrid.heightHint = 40; textGrid.exclude = true; textComp.setLayoutData(textGrid); textComp.addPaintListener(new PaintListener() { @Override publ...

Read more

Eclipse CDT

1. AST 1. IASTTranslationUnit 方法1: /** * 创建解析单元 * @param source * @return * @throws Exception */ static IASTTranslationUnit getTranslationUnit(File source) throws Exception{ FileContent reader = FileContent.create( source.getAbsolutePath(), getContentFile(source).toCharArray()); //C++用GPPLanguage解析,C用GCCLa...

Read more

C/C++基础知识

1. GDB调试 1. test code #include <stdio.h> int main () { unsigned long long int n, sum; n = 1; sum = 0; while (n <= 100) { sum = sum + n; n = n + 1; } return 0; } 2. compile 需要使用 gcc -g 选项编译源文件,即可生成满足 GDB 要求的可执行文件。 [root demo]# ls main.c [root demo]# gcc main.c -o main.exe -g [root demo]# ls main.c main...

Read more

算法基础知识

1. 计算机底层存储数据的基本原理 内存条是一个非常精密的部件,包含了上亿个电子元器件,它们很小,达到了纳米级别。这些元器件,实际上就是电路;电路的电压会变化,要么是 0V,要么是 5V,只有这两种电压。5V 是通电,用1来表示,0V 是断电,用0来表示。所以,一个元器件有2种状态,0 或者 1。我们通过电路来控制这些元器件的通断电,会得到很多0、1的组合。例如,8个元器件有 2^8=256 种不同的组合,16个元器件有 2^16=65536 种不同的组合。虽然一个元器件只能表示2个数值,但是多个结合起来就可以表示很多数值了。 一般情况下我们不一个一个的使用元器件,而是将8个元器件看做一个单位,即使表示很小的数,例如 1,也需要8个,也就是 00000001。1个元器件称为1比特(B...

Read more

深入理解Java虚拟机

1. 走进Java JDK(Java Development Kit):Java程序设计语言、Java虚拟机、Java类库。 JRE(Java Runtime Enviroment):Java类库API中的Java SE API子集、Java虚拟机。 1. HotSpot虚拟机 HotSpot虚拟机中含有两个即时编译器: 编译耗时短,但是输出代码优化程度低的客户端编译器(C1) 编译耗时长,但输出代码优化质量也高的服务端编译器(C2) 2. 微服务 在微服务框架的视角下,应用拆分后,单个微服务也能可能就不再需要面对数十、数百GB乃至TB的内存,有了高可用的服务集群,也无须追求单个服务要7x24小时不间断地运行,它们随时可以中断和更新。 2. Java内存区域与内存溢出异...

Read more