目录

前言

1. 使用mysql索引都有哪些原则?索引什么数据结构?

1)、 对于查询频率高的字段创建索引;

2)、 对排序、分组、联合查询频率高的字段创建索引;

3)、 索引的数目不宜太多

4)、 若在实际中,需要将多个列设置索引时,可以采用多列索引

5)、 选择唯一性索引

6)、 尽量使用数据量少的索引

7)、 尽量使用前缀来索引

8)、 删除不再使用或者很少使用的索引.

2. Mysql有哪些存储引擎?请详细列举其区别?

3. 设计高并发系统数据库层面该如何设计?数据库锁有哪些类型?如何实现

1). 分库分表:

2). 读写分离:

3). 归档和操作表区分:

4). 索引啊之类的创建:

4. 数据库事务有哪些?

5. Oracle常用函数有哪些?

6.Sql中哪些情况可能不会走索引?

7. 讲讲分布式唯一 ID?

8. NIO和IO的区别?

9. Redis内存数据上升到一定大小会执行数据淘汰策略,Redis提供了哪6种数据淘汰策略?

10. 请描述 MyISM 和 InnoDB?

11. 请描述实时队列?

12. DB的特性和隔离级别?

13. ICMP是什么协议,处于哪一层?

14. 讲一下NIO和网络传输.

15. 内存泄漏

16. 请描述平衡二叉树.

17. 请问溢岀的原因?

18. 输入http://www.baidu.com在浏览器的完整过程,越详细越好。

19. 请描述C/C++程序的内存分区?

20. 快速排序的思想、时间复杂度、实现以及优化方法?


前言

2023秋招已经打响,本系列文章将会为大家整理500道大厂常考面试题及答案,不定期更新大厂面经,供大家参考与借鉴。每日更新20道,欢迎大家点赞收藏,以及在评论区分享自己的经典面试题。


1. 使用mysql索引都有哪些原则?索引什么数据结构?

1)、 对于查询频率高的字段创建索引;

2)、 对排序、分组、联合查询频率高的字段创建索引;

3)、 索引的数目不宜太多

原因:a、每创建一个索引都会占用相应的物理控件;

b、过多的索引会导致insert, update、delete语句的执行效率降低;

4)、 若在实际中,需要将多个列设置索引时,可以采用多列索引

如:某个表(假设表名为Student),存在多个字段(StudentNo, StudentName, Sex, Address, Phone, BirthDate),其中需要71 StudentNo, StudentName 字段进行查询,对 Sex字段进行分组,对BirthDate字段逹行排序,此时可以创建多列索引index index_najne (StudentNo, StudentName, Sex, BirthDate) ;#index_najne 为索引名

在上面的语句中只创建了一个索引,但是对4个字段都赋予了豪引的功能。 创建多列索引,需要遵循BTree类型,即第一列使用时,才启用索引。

在上面的创建语句中,只有mysql语句在使用到StudentNo字段时,索引才会被启用。

如: select * from Student wheie StudentNo = 1000; #使用到了 StudentNo 字段,索引被启用。

以使用explain检测索引是否被启用如:explain select * from Student where StudentNo = 1000;

5)、 选择唯一性索引

唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生 表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的 信息。如果使用姓名的话,可能存 在同名现象,从而降低查询速度。

6)、 尽量使用数据量少的索引

如果索引的值很长,那么查询的速度会受到影响。例如,对一个CHAR (100)类型的 字段进行全文检索 需要的时间肯定要比对CHAR (10)类型的字段

需要的时间要多。

7)、 尽量使用前缀来索引

如果索引字段的值很长,最好使用催的前缀来索引。例如,TEXT和BLOG类型的字 段,进行全文检索会很浪费时间。如果只检索字段的前面的若干个字符,这样可以提 高检索速度。

8)、 删除不再使用或者很少使用的索引.

表中的数据被大量更新,或者数据的使用方式被改变后,原有的一些索引可能不再 需要。数据库管理员应当定期找出这些索引,将它们删除,从而减少索引对更新操作 的影响B+ tree树索引,B tree,散列


2. Mysql有哪些存储引擎?请详细列举其区别?

InnoDB:事务型存储引擎,并且有较高的并发读取频率 MEMORY:存储引擎,存放在内存中,数据量小,速度快

Merge:ARCHIVE:归档,有很好的压缩机制


3. 设计高并发系统数据库层面该如何设计?数据库锁有哪些类型?如何实现

1). 分库分表:

同样量的数据平均存储在不同数据库相同表(或不同表)中,减轻单表 压力,如果还是很大,就可以每个库在分多张表,根据hash取值或者其他逻辑判断将 数据存储在哪张表中

2). 读写分离:

数据库原本就有主从数据库之分,查询在从服务器増删改在主服务器

3). 归档和操作表区分:

建一张归档表,将历史数据放入,需要操作的表数据单独存储

4). 索引啊之类的创建:

对于数据量很大,百万级别以上的单表,如果増删改操作不频 繁的话可以创建bitMap索引,速度要快得多

(1). 共享锁:要等第一个人操作完,释放锁,才能操作

(2). 更新锁:解决死锁,别人可以读,但不能操作

(3). 排他锁:读写都被禁用

(4). 意向锁(xlock):对表中部分数据加锁,查询时,可以跳过

(5). 计划锁:操作时,别的表连接不了这张表


4. 数据库事务有哪些?

原子性:所有操作要么全部成功,要么全部失败

—致性:例如转账,一个事务执行前和执行后必须一致 隔离性:防止脏读,重复读问题

持久性:永久性提交数据応


5. Oracle常用函数有哪些?

Concat:字符串拼接,或者|| KConcat:字符串拼接,或者|| Instr:指定字符串位置

Length:长度

Trim:去空格

Lower:小写

Upper:大写

Nvl:判断空

Replace:替换

Substr:截取

Floor:向下取整

To_nmber:

To_char:

To_date:

Decode:判断函数等等


6.Sql中哪些情况可能不会走索引?

1). 查询谓词没有使用索引的主要边界,换句话说就是select *,可能会导致不走索 引

2). 单键值的b树索引列上存在null值,导致COUNTS)不能走索引。索引列存在空 值

3). 索引列上有函数运算,导致不走索引

4). 隐式类型转换导致不走索引。

5). 表的数据库小或者需要选择大部分数据,不走索引

6). !=或者◊(不等于),可能导致不走索引

7). 表字段的属性导致不走索引,字符型的索引列会导致优化器认为需要扫描索引大 部分数据且聚簇因子很大,最终导致弃用索引扫描而改用全表扫描方式,

8). 使用like, in等,可能导致不走素引


7. 讲讲分布式唯一 ID?

确定ID存储用64位,1个64位二进制6是这样的00000000……1100 0101,切

割64位,某段二进制表示成1个约束条件,前41位为臺秒时间,后紧接9位为IP, IP之后为自増的二进制,记录当前面位数相同情况下是第几个id,如现在有10台机器, 这个id生成器生成id极限是同台机器Ims内生成2的14次方个ID。

分布式唯一ID =时间戳« 41位,int类型服务器编号« 10,序列自増sequence o 每个时间戳内只能生成固定数量如(1。万)个自増号,达到最大值则同步等待下个时 间戳,白増从。开始。将臺秒数放在最高位,保证生成的ID是趋势逢増的,每个业务 统、每个机房、每个机器生成的ID都是不同的。如39bit臺秒数|4bit业务线12bit 机房I预留17bit序列号。高位职2016年1月1耳1到现在的臺秒数,系统运行1曾, 至少需要10年x365天x24小时x3600愁xl000臺秒=320x10^9,差不多39bit给臺秒 数,每秒单机高峰并发小于10。,差不多7bit给每臺秒的自増号,5年内机房小于100 台机器,预留2bit给机房,每个机房小二100台机器,预留7bit给每个机房,业务线 小于10个,预留4bit给业务线标识。

64bit分布式ID (42bit臺秒+5bit机器ID+12位自増)等

生成分布式ID的方式:A, 2个自増表,步长相互隔开B,时间的臺秒或者纳秒C, UUID D, 64位约束条件(如上)


8. NIO和IO的区别?

第一点,町0少了1次从内核空间到用户空间的拷贝。

Byt eBuff er. allocat eDir ect ()分配的内芍使用的是本机内存而不是Java堆上的内存, 和网络或者磁盘交互都在操作系统的内核空间中发生oallocateDirectO的区别在于这 块内存不由java堆管理,但仍然在同一用户进程内。

第二点,町0以块处理数据,10以流处理数据

第三点,非阻塞,阿。1个线程可以管理多个输入输出通道


9. Redis内存数据上升到一定大小会执行数据淘汰策略,Redis提供了哪6种数据淘汰策略?

LRU:从已设置过期时间的数据集合中挑选最近最少使用的数据淘汰

random:从已设置过期时间的数据中挑选任意数据淘汰

ttl:从已设置过期时间的数据集合中挑选将要过期的数据淘汰。

notenvision:禁止駆逐数据

如mysql中有2千万数据,redis只存储20万的热门数据。LRU或者TTL都满足热点数 据读取较多,不太可能超时特点。

redis特点:速度块,0 (1),丰富的数据类型,支持事物原子性,可用于緩存,比memecache 速度块,可以持久化数据。

常见问题和解决:Master最好不做持久亿如RDB快照和AOF日志文件;如果数据比较 重要,某分slave幵启AOF备份数据,漩各为每秒1次,为了主从复制速度及稳定,MS 主从在同一局域网内;主从复制不要用图状结构,用单向链表更为稳定M-S-S-S-So。。。: redis过期采用懒汉+ 定期,懒汉即get/set时候检查key是否过期,过期则删除key, 定期遍历每个DB,检查制定个数个key;结合服务器性能调节并发情况。

过期淘汰,数据写入redis会附带1个有效时间,这个有效时间内该数据被认为是正确 的并不关心真实情况,例如对支付等业务采用版本号实现,redis中每一份数据都维持 1个版本号,DB中也维持1份,只有当redis的与DB中的版本一致时,才会认为redis 为有效的,不过仍然每次都要访问DB,只需要查询version版本字段即可。


10. 请描述 MyISM 和 InnoDB?

MyISM采用表级锁,对Myism表读不会阻塞读,会阻塞同表写,对Myism写则会阻塞读 和写,即一个线程获得1个表的写锁后,只有持有锁的线程可以对表更新操作,其他线 程的读和写都会等待。

InnoDB,采用行级锁,支持事务,例如只对a列加索引,如果update ... where a=l and b=2其实也会锁整个表,select使用共享锁,update insert delete采用排它锁, commit会把锁职消,当然select by id for update也可以制定排它锁。


11. 请描述实时队列?

实时队列采用双队列模式,生产者将行为记录写入Queuel, worker服务从Queuel消费 新鲜数据,如果异常则写入Queue 2 (主要保存异常数据), RetryWorker会监听Queue 2, 消费异常数据,如果还未处理成功按照一定的策略等待或者将异常数据再写入Queue2, 如果数据发生积压可以调整worker的消费游标,从最新数据重新开始消费,保证了最 新data得到处理,中间未处理的一段则可以启动backupworker指定起止游标在消费完 指定区间的数据后backupWorker会自动停止。

DB降级开关后,可直接写入redis (stoim),同时将数据写入一份到Retry队列,在 幵启DB降级开关后消费Retry队列中的数据,从而把数据写入到mysql中,达到最终 一致性。MYSQL切分为分片为2的N次方,例如原来分为两个库d0和dl均放在s0服 务器上,s0同时有备机si,扩容只要几步骤:确保s0到si服务器同步顺利,没有明 显延迟;s0暂时关闭读写权限;确保si已经完全同步到s0更新;si开放读写权限; dl的dns由sO切换到si; sO开放读写权限。


12. DB的特性和隔离级别?

4大特性:原子性,一致性,分离性,持久性

隔离级别:

读提交:写事务禁止读

读未提交:写事务允许读

可重复读:写事务禁止读事务,读禁止与

序列化:全部禁止

详细说明:读提交1个事务开始写则全咅噤止其他事务访问该行。读未提交1个事务开 始写则不允许其他事务同时写,但可以读。可重复读读事务会禁止写事务,写事物则 禁止其他任何事务。序列化性能最低,全部禁止,串行执行。MYSQL默认的是可重复 读。


13. ICMP是什么协议,处于哪一层?

Internet控制报文协议,处于网络层(IP层)


14. 讲一下NIO和网络传输.

NIO Reactor反应器模式,例如汽车是乘客访问的实体reactor,乘客上车后到售票员 处Acceptor登记,之后乘客便可休息睡觉了,到达乘客目的地后,售票员Aceptor将其唤 ■即可。持久TCP长链接每个client和曙匕如工之间有存在一个持久连接,当CCU (用户 并发数量)上升,阻塞server无法为每个连接运行1个线程,自己开发1个二进制协议, 将message压缩至3-6倍,传输双向且消息频率高,假设gver链接了 2000个client, 每个client平均每分钟传输1T0个message, 1个messaged的大小为几百字节/几千字节, 而server也要向client广播其他玩家的当前信息,需要高速处理消息的能力。Buffer, 网络字节存放传输的地方,从channel中读与,从buff er作为中间存储格式,channel是 网络连接与buffer间数据通道,像之前的socket的stream。


15. 内存泄漏

未对作废数据内存单元置为null,尽早释放无用对象的引用,使用临时变量时,让引 用变量在推出活动域后自动设置为null,暗示垃圾收集器收集;程序避免用String拼 接,用StringBuffer,因为每个String会占用内存一块区域;尽量少用静态变量(全 局不会回收);不要集中创建对象尤其大对象,可以使用流操作;尽量使用对象池,不 再循环中创建对象,优化配置;创建对象到单例getlnstance中,对象无法回收被单例 引用;服务器session时间设置过长也会引起内存泄漏。


16. 请描述平衡二叉树.

平衡二叉树,左右高度之差不超过1, Add/delete可能造成高度>1,此时要旋转,维持 平衡状态,避免二叉树退化为链表,让AM/Delete时间复杂度但控制在0 (log2N),旋 转算法2个方法,1是求树的高度,2是求2个高度最大值,1个空树高度为-1,只有1 个根节点的树的高度为。,以后每一层+1,平衡树任意节点最多有2个儿子,因此高度 不平衡时,此节点的2棵子树高度差为2。例如单旋转,双旋转,插入等。

红黑树放弃完全平衡,追求大钱平衡,保祉每次插入最多要3次旋转就能平衡。


17. 请问溢岀的原因?

是否逢归的调用;大量循环;全局变量是否过多;数组,List, Map数据是否过大;用 DDMS工具检查地方。

内存溢出的原因


18. 输入http://www.baidu.com在浏览器的完整过程,越详细越好。

浏览器获取输入的域名ww. baidu. com

浏览器向域名系统DNS请求解析ww. baidu. com的IP地址

DNS解析出百度服务器的IP地址

浏览器与服务器建立TCP连接(默认端口 80)

浏览器发出HTTP请求,请求百度首页

服务器通过HTTP请求把首页文件发给浏览器

TCP连接释放

浏览器解析首页文件展示web界面


19. 请描述C/C++程序的内存分区?

其实c和c卄的内存分区还是有一定区别的,但此处不作区分:

1) 、栈区(stack)-由编译器自动分配軽放,存放函数的参数值,局部变量的值等。 其

操作方式类似于数据结构中的栈。

2) 、堆区(heap) ——般由程序员分配释放,若程序员不軽放,程序结束时可能由 OS回

收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。

3) 、全局区(静态区)(static) —,全局变量和静态变量的存储是放在一块的,初 始化的

全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻 的另

—块区域。-程序结束后由系统释放。

4) 、文字常量区一常量字符串就是放在这里的。程序结束后由系统释放。

5) 、程序代码区一存放函数体的二进制代码。

栈区与堆区的区别:

1) 堆和栈中的存储内容:栈存局部变量•,函数参数等。堆存储使用new、malloc申请 的变量等;

2) 申请方式:栈内存由系统分配,堆内有由自己申请;

3) 申请后系统的响应:栈一一只要栈的剩余空间大于所申请空间,系统将为程序提供 内存,否则将报异常提示栈溢出。

堆一一首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请 时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结 点链表中删除,并将该结点的空间分配蜘程序;

4) 申请大小的限制:WindowsT栈的大小一般是2M,堆的容量较大;

5) 申请效率的比较:栈由系统自动分配,速度较快。堆使用new、malloc等分配,较 慢;

总结:栈区优势在处理效率,堆区优势在于灵活;

内存模型:自由区、静态区、动态区;

根据c/c++对象生命周期不同,c/c++的内存模型有三种不同的内存区域,即:自由存 储区,动态区、静态区。

自由存储区:局部非静态变量的存储区域,即平常所说的栈;

动态区:用new , malloc分配的内存,即平常所说的堆;

靜态区:全局变量,静态变量,字符串常量存在的位置;

注:代码虽然占内存,但不属于c/c卄内存模型的一部分;


20. 快速排序的思想、时间复杂度、实现以及优化方法?

快速排序的三个步骤

(1) 选择基准:在待排序列中,按照某种方式挑出一个元素,作为’基准(pivot);

(2) 分割操作:以该基准在序列中的实际位置,把序列分成两个子序列。此时,在基准 左边的元素都比该基准小,在基准右边的元素都比基准大:

(3) 通归地对两个序列进行快速排序,直到序列为空或者只有一个元素。

基准的选择:

对于分治算法,当每次划分时,算法若都能分成两个等长的子序列时,那么分治算法效 率会达到最大。

艮卩:同一数组,时间复杂度最小的是每次选取的基准都可以将序列分为两个等长的;时 间复杂度最大的是每次选择的基准都是当前序列的最大或最小元素;

快排代码实现:

我们一般选择序列的第一个作为基数,那么快排代码如下:

void quicksort(vector<int> int left, irrt right)
[
if (left < right)//false 则递归结束
{
int key=v[left];//基数賦值
int low = left:
int high = right:
while (low < high) //当 lou«=high 时,表示一抡分割结束
{
while (low < high && v [high] >= key)〃v[low]为基数,从后向前与基数比 较
!
high—:
}
{ hile (low < high && v [high] >=  key)〃v[low]为基数,从后向前与基数比 较                                                       = key)//v [high] ^1 基数,从前向后与基数比 较
!
lovH-;
}
swzp (v[lov/], v [high]): while (low < high && v[low] < = key)//v [high] ^1 基数,从前向后与基数比 较
}
//分割后,对每一分段重复上述操作
quicksort (v, left, low-1):
quicksort (v, lovrt-1, right):

注:上述数组或序列V必须是引用类型的形参,因为后续快排结果需要直接反映在原序 列中;

优化:

上述快排的基数是序列的第一个元素,这样的对于有序序列,快排时间复杂度会达到最 差的0(n*2)o所以,优化方向就是合理的选择基数。

常见的做法“三数取中〃法(序列太短还要结合其他排序法,如插入排序、选择排序等), 如下:

① 当序列区间长度小于7时,采用插入排序:

② 当序列区间长度小于40时,将区间分成2段,得到左端点、右端点和中点,我们对 这三个点取中数作为基数;

③ 当序列区间大于等于40时,将区间分成8段,得到左三点、中三点和右三点,分 别再得到左三点中的中数、中三点中的中数和右三点中的中数,再将得到的三个中数取 中数,然后将该值作为基数。

具体代码只是在上一份的代码中将“基数赋值"改为①②③对应的代码即可:

int key=v[left];//基数谶值
if (right-left+l<=7) {
insertion_sort (v, left, right);〃插入排序
return;
Jelse if (right-left+l<=8) (
key=SelectPivotOfThree (v, left, right);〃三个取中
}else{
〃三组三个取中,再三个取中(使用4次SelectPivotOfThree,此处不具体展示)
}
需要调用的函数:
void insertion_sort (vector<irrt> &unsotrted, irrt left, irrt right) //插入排序算法
[
for (int i = left+1: i <= right: i++)
[
if (unsorted[i - 1] > unsorted[i])
int temp = unsorted[i]: int j = i;
while (j > left && unsorted[j - 1] > temp) [
unsorted[j] = unsorted[j - 1]:
unsorted [j] = tenp:
int SelectPivotOf Three (vector<int> &arr, int low, irrt high)
//三数取中,同时将中值移到序列第一位
[
int mid = low + (high - low)/2;〃计算数组中间的元素的下标
//使用三数取中法迭择枢轴
if (arr[mid] > arr[high])//目标:arr[mid] <= arr[high]
[
swzp (arr [mid], arr [high]):
}
if (arr[low] > arr[high])//目标:arr[low] <= arr[high]
[
swzp (arr [low], arr [high]):
}
if (arr [mid] > arr[low]) 〃目标:arr[low] >= arr[mid]
[
swzp (arr [mid], arr [low]):
}
〃此时,arr [mid] <= arr[low] <= arr [high]
return arr[low]:
//low的位置上保存这三个位置中间的值
〃分割时可以直接使用low位置的元素作为枢轴,而不用改変分割函数了
}

这里需要注意的有两点:

① 插入排序算法实现代码;

② 三数取中函数不仅仅要实现取中,还要将中值移到最低位,从而保证原分割函数依然 可用。

2023秋招大厂经典面试题及答案整理归纳(1-20)校招必看相关推荐

  1. 2023秋招大厂经典面试题及答案整理归纳(201-220)校招必看

    目录 201.数组al[O,mid-l]和al[mid,num-l],都分别有序.将其 merge成有序数组al[O,num-1],要求空间复杂度0(1). 202. 一个url指向的页面里面有另一个 ...

  2. 2023秋招大厂经典面试题及答案整理归纳(141-160)校招必看

    目录 141. 动态连接库的两种方式? 142. IP组播有那些好处? 143. 列举几种进程的同步机制及优缺点 144. 什么是预编译,何时需要预编译? 145. int(*s[10])(int)表 ...

  3. 2023秋招大厂经典面试题及答案整理归纳(161-180)校招必看

    目录 161. MySQL 中 myisam 与 innodb 的区别. 162. 画出OSI和TCP/IP协议栈的对应关系. 163. 简述停止-等待协议(ARQ)的工作原理? 164. redis ...

  4. 【2023秋招大厂真题】携程校招-2022.9.28-k-好数组

    2023大厂真题提交网址(含题解): www.CodeFun2000.com(http://101.43.147.120/) 最近我们一直在将收集到的机试真题制作数据并搬运到自己的OJ上,供大家免费练 ...

  5. 【2023秋招大厂真题】科大讯飞校招-2022.10.14-奖品发放

    2023大厂真题提交网址(含题解): www.CodeFun2000.com(http://101.43.147.120/) 最近我们一直在将收集到的机试真题制作数据并搬运到自己的OJ上,供大家免费练 ...

  6. 【2023秋招大厂真题】华为校招-2022.10.11-字母加密

    2023大厂真题提交网址(含题解): www.CodeFun2000.com(http://101.43.147.120/) 最近我们一直在将收集到的机试真题制作数据并搬运到自己的OJ上,供大家免费练 ...

  7. 2023最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)

    近期总结一一些面试题 都是企业的面试题笔记题 感觉薪资10k-15k的常见面试题 个人录制的最新Vue项目学习视频:B站 小胖梅-的个人空间_哔哩哔哩_Bilibili 红色为常见面试题 ====== ...

  8. 2022年最新互联网大厂前端面试题及答案-前端工程必备技能(持续整理更新中【关注收藏不迷路】)

    对于做前端的朋友,或者做了前端几年了,基础不好的,或者想进大厂的想了解深入,下面的知识点很多前端朋友都没有深入了解.很重要,看完有种茅塞顿开感觉,**关注+收藏哦,总有一天用的得.** 涉及到知识点: ...

  9. 大疆秋招IBG后端笔试题 2023

    大疆秋招IBG后端笔试题 2023 题型 编程 计算时间差(Leetcode359) 最小偏移量(Leetcode1657) 题型 单选:20道:(不可修改答案好像,我没找到返回上一题的界面) 多选: ...

最新文章

  1. Java项目:零食商城系统(java+SSM+jsp+MySQL+EasyUI)
  2. anjularjs ajax 调用,AngularJS AJAX调用的服务(AngularJS Ajax Call in Service
  3. 怎样不通过高考进入清华计算机系,山东高考状元孟令昊澄清,没有参加政审,已经填报清华计算机系!...
  4. linux 一些常用到的命令。
  5. 用JavaScript实现网页无限轮播图效果,附整套源码
  6. 【程序员眼中的统计学(12)】相关与回归:我的线条如何?
  7. 从多路搜索树到 B-树
  8. java day31【web概念概述 、HTML】
  9. python爬虫简单示例
  10. .NET Core(C#)使用Titanium.Web.Proxy实现Http(s)代理监控请求的方法及示例代码
  11. windows10自带我的文档等路径修改
  12. 1+X 网络系统 建设与运维(中级)实验
  13. word 2019 深黑色背景如何改成白色(已解决)
  14. 【UVM基础】UVM 的 build_phase 执行顺序
  15. Postman couldn‘t upload file
  16. 误操作导致系统进不去得重装,C盘资料没备份?!别慌,还有救!-200820
  17. 2017华为实习生招聘机考模拟题——0交换排序
  18. 哨兵2号Sentinel-2已经完成大气校正的L2A级遥感影像产品的下载方法
  19. 数制转换,使用按权展开法将二进制数转换为十进制数,使用短除法除2取余计算十进制数转换为二进制数
  20. [护肤] 去皱汇总+19个民间小偏方

热门文章

  1. 蜘蛛池的作用与工作原理(公羊优链蜘蛛池)
  2. 文章抓取显示盗链 php,web资源盗链与防盗链技术解析
  3. Python Pexpect 模块使用说明
  4. 淘宝官方订单API接口,获取售出的商品订单列表(爬虫数据)
  5. 微信小程序元素节点滚到某位置后固定
  6. java.net.Url类的应用 以及URL的学习
  7. Axure如何实现全选、全不选功能
  8. 利用LDA分析《天龙八部》中每十回的话题演变情况
  9. 复习计算机专业知识心得体会,2018考研经验:清计算机专业研友心得体会.doc
  10. socket 通信 error:88