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