计算机基础笔试知识点汇总(一)

hashmap 的 k 可以为空
i ++ 先使用 i 再 ++
socket可以基于TCP和UDP
二叉树深度就是层数。根结点所在的层数为1

内存泄漏是指程序在申请内存后,无法释放已申请的内存空间。
内存溢出是指程序申请内存时,没有足够的内存供申请者使用;
程序结束时,在堆上分配的没有释放的内存会回收。

汇编指令
MOV 传递指令
DEC 减一指令
[ ]寄存器地址
XCHG 交换数据
SUB 减法

C语言 静态变量存放在数据段

插入,希尔,选择排序
https://blog.csdn.net/weixin_50886514/article/details/119045154?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165519567916781432942907%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=165519567916781432942907&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-119045154-null-null.142v14control,157v14control&utm_term=%E5%B8%8C%E5%B0%94%E6%8E%92%E5%BA%8F&spm=1018.2226.3001.4187
稳定:直接插入,冒泡,归并

冒泡:
最好情况下的时间复杂度:如果元素本来就是有序的,那么一趟冒泡排序既可以完成排序工作,这是优化的冒泡,设的标志位flag交换次数,因此最好情况的时间复杂度为O(n)。
稳定性:因为每次比较后如果两个相邻元素相等我们并不会将他们交换 = 稳定

归并 最好 = 最坏 = 平均

正数负数的异或(XOR)运算
https://blog.csdn.net/romeo12334/article/details/82261319

构造函数不能被继承

完全二叉树的特点:叶子结点只能出现在最下层和次下层,且最下层的叶子结点集中在树的左部。
bps 每秒传输的位数

memcpy和strcpy效率不同,复制的内容也不同
malloc函数分配内存空间时并不调用构造函数,同样free函数在回收内存空间时也不调用析构函数。
new运算符和delete运算符在分配和回收内存空间时调用构造/析构函数。

索引会降低插入速度,提高查询的速度。
join的作用是先执行了子线程t后,在执行主线程

-rwx r-- —:分为三组
第一组表示文件所有者r:可读,w:可写,x:可执行
第二组表示同组内成员:r:可读
第三组表示其他组成员权限:无

在多线程的任务执行中,常用的Java数据结构是线程不安全的
传统Vector采用synchronized方式保证线程安全
记忆口诀:喂,SHE,CC (安全)
vector、statck、hashtable、enumeration、ConcurrentSkipListMap、CopyOnWriteArrayList

设计模式三种类型
https://blog.csdn.net/charmainexia/article/details/120939275
创建型
结构性 适配器 外观 代理
行为型(相互协作完成任务)迭代器

磁盘驱动调度算法
https://blog.csdn.net/daniu_weilai/article/details/120570231

CMS
java中并发垃圾收集器

局部变量没有初始化,程序报错

进程得到的是除了代码段是与父进程共享以外,其他所有的都是得到父进程的一个副本,子进程的所有资源都继承父进程,得到父进程资源的副本,子进程可获得父进程的所有堆和栈的数据,但二者并不共享地址空间。两个是单独的进程,继承了以后二者就没有什么关联了,子进程单独运行。

第一趟排序,确定一个元素位置
第二趟排序,又确定一个或两个元素位置
当第一趟元素确认的位置为最左或最右时,第二趟排序只能确认一个位置(A,B选项情况)
当第一趟元素确认位置不是最左或最右时,第二趟能确认2个位置(C选项情况)

可重复读可以防止 脏读,不可重复读。不能防止幻读

SQL语句的执行顺序
https://blog.csdn.net/qq_38774523/article/details/124335214
from>where>group by>having>select>order by>limit

字符设备只能顺序读取道,块设备可以随机读取。

红黑树
● 根节点是黑色
● 红黑树的叶子节点并非传统的叶子节点,红黑树的叶子节点是null节点(空节点)且为黑色
● 同一路径,不存在连续的红色节点
二叉搜索树容易退化成一条链 引入AVL(平衡二叉树)
提高AVL插入删除,牺牲严格平衡,引入红黑树
https://blog.csdn.net/u014454538/article/details/120120216

当使用别名作为输出列时,无法在where查询中直接使用该列作为查询条件
外面加一个select查询,不直接对r_rank进行条件查询

c[::-1]是对list进行逆序 (python)

MongoDB Redis 属于Nosql 非关系数据库
SQL Server 关系数据库

最左前缀匹配特性,如果左边的值未确定,那么无法使用此索引。因此页面搜索严禁左模糊或者全模糊,如果需要请走搜索引擎来解决。

Connection: keep-alive 表示是持久性连接;
Content-Length: 0 表示没有消息主体。

Redis 服务器默认使用 6379 端口

Arrays.asList(arr) 转为的实例化对象为Arrays中的静态内部类ArrayList,该类没有重写add() 、remove() 、clear()方法,不能对List增删,只能查改(size)

哈夫曼树是一个二叉树;第二点,哈弗曼树的度只有两种情况,一是只有两个度的结点,二是没有度的结点,即叶子结点。

K-M-G-T-P每个量级隔10的3次方

比较次数

冒泡排序: 每一趟每两个相邻元素都要进行比较
选择排序: 每趟找出最小元素,然后交换到前面位置
这两种都是n-1的阶乘
插入排序,从第二个元素开始比较,到最前面一个就跳出不用比较

CPI变为原来的1.2倍表示编译优化后每条指令执行的用时是优化前的1.2倍,即运行速度变为了原来的5/6,而指令变为以前的70%说明工作量减少了

A:招商银行是一个银行,没毛病
B:纽约是一个美国,错误

ps -ef 查看正在活动的进程。
后缀表达式 先画出树然后后序遍历

id=1或者id=10
where id in(1, 10)

RPC是远程调用而已,不是属于具体的协议

唯一索引:索引列的值必须唯一,但允许有空值。
主键索引:它是一种特殊的唯一索引,不允许有空值。

TCP连接图

只有close_wait是服务器一方的

树节点的度数即为该节点孩子的个数。

银行家算法是避免死锁而不是预防 资源静态分配:预防死锁

僵尸进程孤儿进程

https://www.cnblogs.com/Anker/p/3271773.html
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。

面向对象说特征有抽象的话也加上抽象

hash索引
只用于使用=或者 < = >操作符的等式比较
优化器不能使用HASH索引来加速Order By操作

要创建一个文件,你可用File FileWrite 的实例
包装类不能被继承(String ,Integer)
string是引用类型

用户进程能得到的时间片即为所有用户线程共享

高度为h的平衡二叉树的最少结点数为:
对于 h>=1,N(h) = F(h + 2) -1,其中F(n) 为Fibonacci序列的各项:1, 1, 2, 3, 5, 8, 13…

volatile只能保证有序性不能保证原子性,也就不能保证线程安全。

Redis有set数据结构
指定接口的继承的关键字 implements

线程独有的资源有栈和寄存器和线程局部存储,简称TLS,其实就是个线程私有的全局变量

路由表和iptables不同,iptables可实现NAT

哈夫曼编码

权值最小的节点先进行合并,自底向上

二次探测
x x+1 x-1 x+4 x-4 x+9

基数排序,比如最大三位数,先算百位,在算十位,再算个位 用空间换取时间。性能与元素初始排序次序无关。
二叉树的性质 n0=n2+1,即叶子结点数=度为2的节点数+1

C++种值传递,指针传递,引用传递
https://blog.csdn.net/zspgui/article/details/81741579

final修饰的方法不可以重写,可以重载
重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。
覆盖(也叫重写)即函数名和参数都一样,只是函数的实现体不一样。

不能这么写
char s[10]; s = “abcd”;
s是个地址

和顺序栈相比,链栈的优势是:通常不会出现栈满的情况。因为顺序栈用数组实现,必须事先确定栈的大小,对内存的使用效率并不高,无法避免因数组空间用光而引起的溢出问题;而链栈因为动态申请内存,一般不会出现栈满情况。

使用代理服务器的客户端可以不配置dns就可以访问web页面

goroutine 数量跟内存相关.

不是 Python 对文件的写操作方法 writetext

查看系统端口的占用情况 netstat
sizeof(double) = 8
f = lambda x,y:x+y 执行后,f的类型为数字类型或字符串类型

Java反射
利用反射可以访问类的私有属性及方法
反射会降低效率
禁止安全检查,可以提高反射的运行速度

truncate table
Truncate table 可义删除全部记录
delete 可删除指定条目的记录
比delete 快

需要先给map初始化分配内存,nil的map不能赋值
string不能切分赋值

Annotation(注解)

Annotation是一个接口
Annotation可用于编译检查
Annotation使用@interface关键字定义
Annotation可以被继承

HTTP请求方式中的请求方法
HEAD
CONNECT
OPTIONS
TRACE

go语言种有一个高级的break,可以选择中断指定循环
赋值操作不会创建新切片值

#define CONS(x,y) (int)(x##e##y)
a乘10的b次方

在C语言中字符常量不能取得其地址。

fork出的进程中执行exec系列函数,不一定会继承的资源 打开的文件的fd
像 pid 这种一定不继承

文本文件可以看做是一种特殊的二进制文件。

可变参数*args传入函数时存储的类型是 tuple
redis在的有序集合中在数据量极少的情况下使用 压缩表

添加一个名为District的新列
ALTER TABLE Customer ADD (District INTEGER)

javap是java反编译工具
jstack是堆栈跟踪工具

C++ 在C基础上,新增了 bool 类型,一般占用 1 个字节长度

可重入函数

经常会出现多个任务调用同一个函数的情况。如果有一个函数不幸被设计成为这样:那么不同任务调用这个函数时可能修改其他任务调用这个函数的数据,从而导致不可预料的后果。这样的函数是不安全的函数,也叫不可重入函数。

一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。

有向无环图存在拓扑排序

Epoll的两种工作方式
https://blog.csdn.net/u014753478/article/details/118176759

umask
https://www.cnblogs.com/liujiacai/p/8319923.html

视图
https://blog.csdn.net/weixin_43319713/article/details/104398559?utm_source=appapp_version=5.0.0

IPv6过渡技术
双栈技术 隧道技术 协议转换技术

String s = new String(“xyz”);创建了几个StringObjec
当常量池中没有"xyz"时,在堆中创建一个object,在常量池中创建一个object,共两个object
当常量池中存在"xyz"时,仅在堆中创建一个object

java种堆栈对象以及装箱拆箱

Integer i01 = -128;
int i02 = -128;
Integer i03 =Integer.valueOf(-128);
Integer i04 = new Integer(-128);

nteger i01=-128的时候,会调用Integer的valueOf方法,
这个方法就是返回一个Integer对象,只是在返回之前,看作了一个判断,判断当前i的值是否在[-128,127]区别,且IntegerCache中是否存在此对象,如果存在,则直接返回引用,否则,创建一个新的对象。
在这里的话,因为程序初次运行,没有-128,所以,直接创建了一个新的对象。
int i02=-128,这是一个基本类型,存储在栈中。
Integer i03 =Integer.valueOf(-128);因为IntegerCache中已经存在此对象,所以,直接返回引用。
Integer i04 = new Integer(-128);直接创建一个新的对象。
System.out.println(i01== i02); i01是Integer对象,i02是int,这里比较的不是地址,而是值。Integer会自动拆箱成int,然后进行值的比较。所以,为真。
System.out.println(i01== i03);因为i03返回的是i01的引用,所以,为真。
System.out.println(i03i04);因为i04是重新创建的对象,所以i03,i04是指向不同的对象,因此比较结果为假。
System.out.println(i02
i04);因为i02是基本类型,所以此时i04会自动拆箱,进行值比较,所以,结果为真。

little-endian小端
存储数据从低位开始存储
所以就是1吧
如果是高位存储应该就是
1后面31个0

接口查询和赋值
https://blog.csdn.net/lengyuezuixue/article/details/78602245

Reboot是重启,shutdown-s是关机,shutdown-r是重启,netstat是显示网络状态,half关机

inode
https://blog.csdn.net/m0_61705102/article/details/123760663

bash脚本
$0代表脚本的名称
$@代表所有位置参数
$# 代表位置参数的数量

TCP协议运行时阶段
创建 传输 终止

jvm会等待非守护线程结束,jvm不会等待守护线程结束。GC线程就是守护线程
非守护线程也称用户线程

Java接口的修饰符 public final

synchronized关键字可以作为方法内的语句
ReentrantLock可以替代synchronized进行线程同步

select的case里的操作语句只能是”IO操作”
在select 里面的 break 不能跳出外层的for循环,可以使用goto跳出。

string包

atoi()函数 把字符串转换成整型数。
Itoa函数 将数字转换成对应字符串类型的数字 相当于FormatInt(int64(i), 10)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值