1. 一亿个数据进行排序,用什么排序方式
答:分批处理,一亿是一万万,分批处理,首先取一万进行快速排序,然后取一万之前进行mergesort
2. N 的前M大
答:当有N个数据,而N又是非常大(比如:千万或者亿),需要找出N条数据的排名最前的M条数据时,可以采用的一种策略。
给定n个数,寻找第k小的数,同时给出时间复杂度
比较常见的算法题,也要考虑到n的大小,说了排序,最大堆,以及partition算法
先选前M个元素组成一个小根堆,然后遍历剩下的数据,如果第i个元素key大于小根堆的根结点,就删除这个根结点,并将元素key插入根结点,调整这个堆使其成为小根堆,然后继续遍历剩下的数据; 最后,小根堆中的元素就是最大的M个元素。
3. 走迷宫
http://blog.csdn.net/u011889952/article/details/44805377
4. do
5. {
6. 若当前位置可通, 则
7. {
8. 将当前位置插入栈顶; // 纳入路径
9. 若该位置是出口位置,则结束; // 求得路径存放在栈中
10. 否则切换当前位置的东邻方块为新的当前位置;
11. }
12. 否则
13. { 若栈不空且栈顶位置尚有其他方向未被探索,
14. 则设定新的当前位置为: 沿顺时针方向旋转 找到的栈顶位置的下一相邻块;
15. 若栈不空但栈顶位置的四周均不可通,
16. 则
17. {
18. 删去栈顶位置; // 从路径中删去该通道块
19. 若栈不空,则重新测试新的栈顶位置,
20. 直至找到一个可通的相邻块或出栈至栈空;
21. }
22. } }while (栈不空);
4. 递归写一下如何判断回文序列?
回文12321 就是回文
4 bool isPalindrome(char str[], size_t n) 5 { 6 if (n<=1) 7 { 8 return true; 9 } 10 else if (str[0]==str[n-1]) 11 { 12 return isPalindrome(str+1,n-2); 13 } 14 else 15 return false; 16 }
5.单例模式 懒汉、饿汉
懒汉:
Class Singleon
{
Private:
Singleon() {};//私有构造函数
Static singleon *m_instance;
Public:
Static Singleton*get_insatnce()
{
If(m_instance==NULL)
m_insatnce=newSingelon();
Return m_instance;
}
}
6.
tomcat下 connector中包含哪些协议?
http://sxf520.blog.51cto.com/8656221/1608006
7.
tcp三次握手 四次挥手?
三次握手:
C->S: syn=1,seq=x ; 进入SYN_SEND的状态,等待服务器确认
S->C: syn=1,seq=y; ack=x+1; 服务器进入SYN_RECV状态
C->S: ack=y+1; seq=x+1客户端和服务器均进入到Established状态,完成三次握手
四次挥手:
C->S: FIN=1,seq=u 关闭C->S 的数据传送
S->C: ACK=u+1, seq=w; 表示收到确认
S->C:FIN=1,seq=v; 关闭S-> C 的数据传送
C->S :ACK=v+1; 表示收到确认
8.
Tomcat 结构
目录结构
bin ---- 存放tomcat启动关闭程序
conf--- 存放tomcat 配置文件
lib --- tomcat运行需要jar包
logs ---- tomcat日志文件
webapps---- 网站发布目录 (所有网站可以发布到该目录)
work ----- 存放工程运行时,产生数据文件 (JSP翻译Servlet、Session持久化数据 )
9. 索引类别,各自优缺点?
10. 计算机网络
每一层的协议如下:
物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器,网关)
数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、(路由器)
传输层:TCP、UDP、SPX
会话层:NFS、SQL、NETBIOS、RPC
表示层:JPEG、MPEG、ASII
应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS
每一层的作用如下:
物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层:将比特组装成帧和点到点的传递(帧Frame)
网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:允许访问OSI环境的手段(应用协议数据单元APDU)
IP 地址分类:
有时候我们会看到这样的IP:
10.10.152.235/24,
后面的/24表示子网掩码,24表示子网掩码上有24个1,等价于255.255.255.0 。
IP地址和子网掩码按位 与,得到的是 主机号
A类 0 开头 0~127 (1.0.0.0-126.255.255.255)其中0.0.0.0 表示本机或默认路由127.X.X.X表示locallock, localhost. (8位一字节的网络地址和3字节的主机地址)
主要分配给具有大量主机而局域网络数量较少的大型网络
B 类地址10 开头 (128.0.0.0-191.255.255.255)(2字节的网络地址,2字节额主机地址)
一般用于国际大公司或者政府机构
C类 110开头(192.0,0.0 -223.255.255.255)(3字节网络地址,1字节的主机地址)
一般用于校园网、研究机构、小公司
D类1110 开头224-239 特殊用途,广播地址
E 240-247 暂时保留
ARP地址解析协议(IP-Mac):其工作原理是:
1. 首先每个主机都在自己的ARP缓冲区,建立ARP表,表示IP地址和MAC地址之间对应关系
2. 当源主机发送数据先查找ARP 列表中是否有对应IP地址的目的MAC地址,若有直接发送数据,若没有则向本网段的所有主机发送ARP数据,该数据包包括源主机IP,源主机MAC,目的主机IP
3. 当本网段的所有主机接收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是忽略,如果是,则首先从数据包中取出源主机的IP和MAC加到自己的ARP列表中,若已存在则覆盖,然后将自己MAC地址写入ARP响应包中,告诉主机自己是它想要的MAC地址。
4. 源主机接收到ARP响应包之后,将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据,如果源主机没有收到ARP响应包,表示ARP查询失败。
各种协议
ICMP:Internet网控制报文协议,是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。Ping 命令就是使用ICMP,返回ICMP报文
TFTP:简单文件传输协议,UDP,用来在客户机和服务器之间进行简单文件传输的协议,提供不复杂,开销不大的文件传输服务。
HTTP:超文本传输协议,属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
DHCP:动态主机配置协议,让系统得以连接到网络上,并获取所需要的配置参数手段,局域网的网络协议,使用UDP协议工作,用于给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机中央管理的手段。
NAT:网络地址转换,属于接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术
RARP:逆地址解析协议,作用是完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。工作流程:在网络中配置一台RARP服务器,里面保存IP地址和MAC地址的映射关系,当无盘工作启动后,就封装一个RARP数据包,里面有Mac地址,然后广播到网络上去,当服务器接收到请求包之后,就查找对应的MAC地址的IP地址装入响应报文中发给请求者,因为需要广播请求报文,因此RARP只能用于具有广播能力的网络。
在浏览器输入某个域名后执行的全过程:(CDN和负载均衡)
1. 首先客户端浏览器通过DNS解析www.vip.com 的IP地址220.181.27.48, 通过这个IP地址找到客户端到服务器的路径。然后客户端浏览器发起一个HTTP会话到220.181.27.48,然后通过TCP封装数据包,进入网络层
2. 在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80 端口监听客户端的请求,客户端由系统随机选择一个端口例如5000,与服务器交换,服务器把相应的请求返回给客户端的5000端口,然后使用IP层的IP地址查找目的端。
3. 客户端的网络层不用关系应用层或传输层的东西,主要是通过查找路由表确定如何到达服务器,中间可能经过多个路由器,这些都是路由器来完成的工作,即通过查找路由表来决定通过哪个路径到达服务器。
4. 客户端的链路层,包通过链路层发送到路由器,通过邻居查找协议查找给定IP的MAC地址,然后发送ARP请求查找目的地址,如果得到回应就使用ARP的请求应答交换IP数据包现在就可以传输了。然后发送IP数据包到达服务器的地址。
面向连接和面向非连接服务的特点是什么?
面向连接:通信双方在进行通信之前,先在双方建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接情况可以被实时监控和管理
面向非连接:不需要预先建立一个联络两个通信节点的连接,需要通信的时候,发送节点就可以往网络上发送信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。
TCP和UDP的区别
TCP提供面向连接的,可靠的数据流传输,而UDP提供的是非面向连接的,不可靠的数据流传输;
TCP的传输单位成为TCP报文段,UDP的传输单位成为用户数据报;
TCP注重数据安全,有ACK,UDP数据传输快,因为不需要连接等待,少了许多操作,安全性一般。
TCP 对应的协议:
21- FTP
22- ssh 类似于 telent的加密版
23 –Telnet 远程登陆的端口,用户以自己的身份远程连接到计算机
25 –SMTP 邮件发送
110 - POP3 和SMTP相对,用于接收邮件
80- HTTP:由web 服务器传输超文本到本地浏览器的传送协议
UDP对应的协议:
53- DNS:域名解析服务域名转换为IP地址
161- SNMP:简单网络管理协议,管理网络设备的,由于网络设备很多,无连接的服务就体现其价值
69:TFTP:简单文件传输协议
DNS 域名系统的工作原理:
DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息:1 指定的DNS域名2 指定的查询类型 3 DNS域名的指定类别。基于UDP,端口53,该应用一般不直接为用户使用,而是为其他应用服务,例如HTTP,SMTP等在其中要完成主机名到IP地址的转换。
其它:
MySQL:3306
SQL-Server:1433
Shell或cmd: 514
IP数据包格式:
IP数据报=首部(固定部分20字节和可选部分1-40字节)+ 数据
固定部分:版本号4bit
交换机、路由器、网关各自用途
交换机:数据链路层,交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。
交换机被广泛应用于二层网络交换,俗称“二层交换机”。
交换机的种类有:二层交换机、三层交换机、四层交换机、七层交换机分别工作在OSI七层模型中的第二层、第三层、第四层盒第七层,并因此而得名。
路由器:路由(决定数据包从源端到目的端所经过的路径)+ 转送(将路由器输入端的数据包移送到适当的路由器输出端)工作在网路层
网关:连接两个网络的设备,例如语音网关,连接PSTN和以太网,相当于VOIP,把电话中的模拟信号通过网关转换成数字信号。再用协议传输,接收端再进行还原转换。
对于以太网中的网关只能转发三层以上数据包,这一点和路由是一样的。而不同的是网关中并没有路由表,他只能按照预先设定的不同网段来进行转发。网关最重要的一点就是端口映射,子网内用户在外网看来只是外网的IP地址对应着不同的端口,这样看来就会保护子网内的用户。
Linux下 给定一个文件,里面存放的是IP地址,统计各个IP地址出现的次数
一面(项目)
1. 项目的架构,怎么实现的
2. 会不会java web的知识
3. 对一个登录窗口进行测试
4. 测试人员需要的能力
5. 有没有比较熟的b/s架构
二面(测试思维)(未通过)
1. 写代码:找出一组数中最大的数
2. 所接触到的测试的内容
3. 对淘宝的搜索栏进行测试(1.宝贝,店铺,天猫选项;2.搜索栏;3.搜索按钮)
4. 与他人相比,你的优势(此处最好答热情和测试行业大趋势和前景)
http://www.nowcoder.com/discuss/12191?type=2&order=0&pos=12&page=1
http://www.jobui.com/mianshiti/it/ruanjianceshi/7008/
http://www.gkstk.com/article/wk-78500000560934.html
http://blog.csdn.net/codeway3d/article/details/52280431
http://www.cnblogs.com/duanwxue1128/p/5866974.html
http://www.cnblogs.com/LUO77/p/5787186.html
http://www.kanzhun.com/msh/g3146-z2794/