ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

秋招笔试准备——客观题

2019-08-29 19:06:18  阅读:236  来源: 互联网

标签:测试 客观 笔试 线程 https article 秋招 csdn net


Python

Python内存(垃圾回收机制):https://www.cnblogs.com/yhll/p/8908882.html

爬虫如何工作:https://www.cnblogs.com/sunBinary/p/11055626.html

在Python中所有的对象都可以进行真值测试,下面罗列一下判断为假的情况:

  • None
  • False
  • 数值中的零,包括0,0.0,0j(虚数)
  • 空序列,包括空字符串(”),空元组(()),空列表([])
  • 空的字典{}
  • 自定义的对象的实例,该对象的__bool__方法返回False或者__len__方法返回0

迭代和递归的特点,并比较优缺点

软件测试

https://www.cnblogs.com/test-my/p/6019336.html
按照瀑布模型的阶段划分,软件测试可以分为单元测试,集成测试,系统测试。

测试一个杯子或登录界面

测试框架:https://www.cnblogs.com/ceshi2016/p/9110695.html

黑盒测试用例方法:等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、正交实验设计方法、功能图分析方法https://blog.csdn.net/zhusongziye/article/details/79822394

白盒测试用例方法:由弱到强的6种:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖。

  • 语句覆盖是一种最弱的覆盖,判定覆盖和条件覆盖比语句覆盖强,满足判定/条件覆盖标准的测试用例一定也满足判定覆盖、条件覆盖和语句覆盖,路径覆盖也是一种比较强的覆盖,但未必考虑判定条件结果的组合,并不能代替条件覆盖和条件组合覆盖。 条件组合覆盖是除路径覆盖外最强的。

对网页上的安全测试,一些攻击手段的了解。
(1.SQL注入攻击 2.FTP文件上传漏洞 3.XSS跨站脚本攻击 4.socket欺骗等等)

一个登陆界面中,用户在输入框输入东西的时候,如何保证输入信息正确。

  1. 前端 通过JS、正则表达式等技术验证
  2. 后端接收到数据后,同样要再次验证,防止攻击者绕过前端直接向后台发起攻击

系统测试是对整个系统的测试,包括相关的软硬件平台、网络以及相关外设的测试。包括安全性测试、可靠性测试(容错性和易恢复性)、界面测试、文档测试、性能测试(负载、压力、强度)、容量测试、稳定性测试、兼容性测试(硬件:整机和外设,软件(操作系统、应用软件、浏览器、数据库),软硬件,数据,网络)、安装测试、替换性测试https://blog.csdn.net/moakey/article/details/78966725

系统测试用例设计应该从需求完成的时候开始:设计测试用例越靠近需求阶段,我们就能越早发现需求问题,在软件开发过程问题得到越早的修正,那么所花的代价就会越小。在需求阶段发现问题,我们可能只需要修改下文档。

需求分析阶段的研究对象是用户要求

软件需求分析阶段的工作,可以分为四个方面:需求获取,需求分析,编写需求格式说明书以及需求评审

静态测试不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。包括代码测试、界面测试、文档测试。

动态测试:指的是实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以判断一个测试属于动态测试还是静态的,唯一的标准就是看是否运行程序。

静动态与黑白盒:

  • 黑盒测试有可能是动态测试(运行程序,看输入输出),也有可能是静态测试(不运行,只看界面)
  • 白盒测试有可能是动态测试(运行程序并分析代码结构),也有可能是静态测试(不运行程序,只静态察看代码)
  • 动态测试有可能是黑盒测试(运行,只看输入输出),也有可能是白盒测试 (运行并分析代码结构)
  • 静态测试有可能是黑盒测试(不运行,只察看界面),也有可能是白盒测试(不运行,只察看代码)

操作系统

作业调度:从处于提交状态的队列中选择适当的作业投入运行

虚拟设备:通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同时使用, 通常把这种经过虚拟的设备称为虚拟设备。优势:增加效率、灵活性和响应能力。

进程与线程、协程:https://blog.csdn.net/daaikuaichuan/article/details/82951084#font_size5font_72

多线程:https://blog.csdn.net/qq_41911569/article/details/82791269

多线程通信(线程等待与唤醒机制概述)
* void wait(); 等待,让当前正在执行的线程释放cpu的使用权,进入等待。
* void notify(); 唤醒,随机唤醒一个正在等待的线程,让线程进入就绪状态。
* void notifyAll(); 唤醒所有正在等待的线程,让线程进入就绪状态。
* 以上三个方法必须由锁对象调用且必须在同步代码块或同步方法中调用。

线程状态转换

守护进程:Daemon(守护进程)是运行在后台的一种特殊线程。它独立于终端并在后台周期性地执行任务或等待处理某些发生的事件,它不需要用户输入就能运行并且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器都是通过守护进程实现的,如系统日志进程syslogd,web服务器httpd,邮件服务器sendmail。https://blog.csdn.net/QEcode/article/details/93667852

进程状态转换:
进程状态转换

进程调度策略:先来先服务调度算法、短作业优先、高优先权优先、高响应比优先、时间片轮换法、多级反馈队列调度

父进程创建了一个新的子进程,它们所指的空间地址是否一样:子进程不会完全复制父进程的地址空间,它会在父进程的地址空间中运行

进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。 IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。一般是不能互相访问的,但是有特殊情况,共享内存区就是唯一的例外。

在关系代数运算中,五种基本运算为:并、差、选择、投影、乘积

UNIX:

  1. UNIX系统是一个多用户、多任务操作系统,支持多种处理器架构(并行处理能力)。
  2. UNIX的系统结构可分为三部分:Unix内核(Kernel):系统核心,指挥调度机器运行,直接控制计算机资源,内核提供一种硬件抽象的方法来完成对硬件操作。 Unix外壳(Shell):内核与用户的接口。工具以及应用程序:vi编辑器、文件查找、备份
  3. UNIX系统大部分是由C语言编写的,这使得系统易读,易修改,易移植。
  4. UNIX提供了丰富的,精心挑选的系统调用,整个系统的实现十分紧凑,简洁。
  5. UNIX提供了功能强大的可编程的Shell语言(外壳语言)作为用户界面具有简洁,高效的特点。
  6. UNIX系统采用树状目录结构,具有良好的安全性,保密性和可维护性。
  7. UNIX系统采用进程对换(Swapping)的内存管理机制和请求调页的存储方式,实现了虚拟内存管理,大大提高了内存的使用效率。
  8. UNIX系统提供多种通信机制,如:管道通信,软中断通信,消息通信,共享存储器通信,信号灯通信

互斥锁与信号量:

  1. 从互斥量用于线程的互斥,信号线用于线程的同步。
    这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。
  2. 互斥量值只能为0/1,信号量值可以为非负整数。
    也就是说,一个互斥量只能用于一个资源的互斥访问,它不能实现多个资源的多线程互斥问题。信号量可以实现多个同类资源的多线程互斥和同步。当信号量为单值信号量是,也可以完成一个资源的互斥访问。
  3. 互斥量的加锁和解锁必须由同一线程分别对应使用,信号量可以由一个线程释放,另一个线程得到。

物理内存和虚拟内存区别:https://blog.csdn.net/lvyibin890/article/details/82217193

Thread类的常用方法:

  • List item
  • start();//启动线程
  • getId();//获得线程ID
  • getName();//获得线程名字
  • getPriority();//获得优先权
  • isAlive();//判断线程是否活动
  • isDaemon();//判断是否守护线程
  • getState();//获得线程状态
  • sleep(long mill);//休眠线程
  • join();//等待线程结束
  • yield();//放弃cpu使用权利
  • interrupt();//中断线程
  • currentThread();//获得正在执行的线程对象

Linux命令:ls cd mkdir rmdir pwd cp mv rm ps kill tar chmod vim gcc 查看CPU(top),内存(free -m)

Linux下kill -9 -11有什么区别

大小端:大端(存储)模式是指一个数据的低位字节序的内容放在高地址处,高位字节序存的内容放在低地址处。小端(存储)模式是指一个数据的低位字节序内容存放在低地址处,高位字节序的内容存放在高地址处。(可以总结为“小小小”即低位、低地址、小端)

数据结构

排序算法

查找算法:顺序(n)、二分查找、二叉树查找(logn)、哈希查找法(1)

数据结构

平衡二叉树:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树

二叉树:度数(边数) = 所有节点数-1:

红黑树

堆栈溢出的原因:循环的递归调用、分配了过大的局部变量

冒泡排序的时间复杂度O(n2

堆与栈的区别:https://blog.csdn.net/Fiorna0314/article/details/49757195

若一序列进栈顺序为a1,a2,a3,a4,问存在多少种可能的出栈序列:
卡特兰公式 C(2n,n)/(n+1) = (2n)!/n!*(2n-n)!/(n+1) = (2n)!/(n!*n!)/n+1=14

一个有n个节点的有向无环图,最多有n*(n-1)/2条有向边

数据库

MySQL优化

sqlserver、Mysql、Oracle三种数据库的优缺点总结

MySQL隔离级别:由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable

MySQL集群?单机多服务器还是多机?

SQL删除一个表的命令:

  • DROP TABLE 删除整个表
  • TRANCATE TABLE 删除原来的表并重新创建一个表
  • delete-删除整行
  • ALTER TABLE 表名 DROP COLUMN 列名 删除整列

在关系型数据库中,有两个不同的事务同时操作数据库中同一表的同一行,不会引起冲突的是:两个都是DELETE

数据库中只存放视图的定义(视图:视图(子查询):是从一个或多个表导出的虚拟的表,其内容由查询定义。具有普通表的结构,但是不实现数据存储。)

分布式数据库:用于解决集中式数据库大数据量和高并发的问题

主键与唯一约束:任意两行的主键值都不相同;主键列不允许NULL值,表可包含多个唯一约束;但每个表只允许一个主键;唯一约束列允许NULL值

主键与外键:主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。 外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

脏数据:当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。

数据库的数据模型:网状模型、层次模型、关系模型

乐观锁与悲观锁

数据库什么时候会用索引:主键字段,唯一约束字段,子表的外键约束字段上

使用sql语句查询class列不是NULL的记录,WHERE语句正确的是:WHERE class IS NOT NULL

数据库中的事务了解吗?事务的四大特性?:原子性、一致性、分离性、持久性

如何理解数据库的范式?

网络基础

登录不上一个网页可能的原因:

广播风暴解决:使用STP或RSTP协议

TCP三次握手:为了防止已经失效的连接请求再次传送到服务器端。(二次握手可以吗?不可以,在客户端与服务器通信结束后,若因网络延时,客户端以前发送的请求到达了服务端,但是服务器发送确认信息后不会得到客户端的回答,连接不会建立;若采用二次握手,服务器收到请求后,就会发送同意连接报文,并新开进程提供服务,这样会造成资源的浪费)

TCP与UDP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,UDP基于数据报。

TCP/IP:https://blog.csdn.net/u012371712/article/details/80795297

TCP拥塞机制:慢启动,拥塞控制,快重传和快恢复https://blog.csdn.net/sicofield/article/details/9708383

HTTP与HTTPS的区别:前者协议传输的数据是未加密的,后者协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

隔离广播域:三层交换机、路由器

路由转发

双绞线分类:https://baike.baidu.com/item/%E5%8F%8C%E7%BB%9E%E7%BA%BF/487416?fr=aladdin#2

网络层、数据链路层和物理层传输数据单位分别是包、帧、比特

正确的主机IP地址:ABC类(1-223.x.x.x),且最后不是0或255

数据链路层:实施流量监控,差错检测,链路管理,物理寻址

ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。

DHCP:动态主机设置协议(Dynamic Host Configuration Protocol)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:用于内部网或网络服务供应商自动分配IP地址;给用户用于内部网管理员作为对所有计算机作中央管理的手段。https://blog.csdn.net/qq_41636653/article/details/81751060

ARP:地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。它是IPv4中网络层必不可少的协议,不过在IPv6中已不再适用,并被邻居发现协议(NDP)所替代。

POP3、SMTP和IMAP之间的区别和联系

TFTP:(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。

HTTP(Hyper Text Transfer Protocol ):超文本传输协议。是无状态、应用层、基于文本的协议

HTTP1.0/1.1/2.0

HTTP状态码:1xx临时响应;2xx成功;3xx重定向;4xx客户端错误;5xx服务端错误(https://blog.csdn.net/chenyao1994/article/details/79984381

分组:IP是否有分组,TCP是否有分组,UDP是否有分组,IPV4和IPV6是否有分组

流量控制、阻塞控制

长短连接:在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话。而从HTTP/1.1起,默认使用长连接,用以保持连接特性。

WEB SERVER:IIS(Internet Information Services);Jigsaw;Apache(世界排名第一的web服务器软件)

通信原理

ATM是Asynchronous Transfer Mode异步时分多路复用
TDM是Time-Division Multiplexing 同步时分多路复用
FDM是Frequency-division multiplexing 频分多路复用

GSM是全球移动通信系统(Global System for Mobile Communications) ,每个载频都有8个时隙(时隙0~7),也就是八个基本的物理信道。

GPRS(General Packet Radio Service)是通用分组无线服务技术的简称,它是GSM移动电话用户可用的一种移动数据业务,属于第二代移动通信中的数据传输技术

无线局域网采用的协议是CSMA/CA(https://blog.csdn.net/lixuande19871015/article/details/78783740)

电磁波频谱的划分https://blog.csdn.net/qingwufeiyang12346/article/details/82391476

PCM(脉冲编码调制Pulse Code Modulation)有两个标准(表现形式)即E1和T1。中国采用的是欧洲的E1标准。T1的速率是1.544Mbit/s,E1的速率是2.048Mbit/s。

软件工程

软件能力成熟度模型CMM的成熟度等级:初始级、可重复级、已定义级、已管理级、优化级

UML图:在这里插入图片描述
空间换时间:Hash表

好的软件结构:低耦合、高内聚

程序流程图,N-S图和PAD图是设计阶段的详细设计使用的表达工具

标签:测试,客观,笔试,线程,https,article,秋招,csdn,net
来源: https://blog.csdn.net/weixin_42712658/article/details/99710243

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有