在 OSI 分层模型中,把传输的比特流划分为帧,是哪一层的功能()
A. 物理层
B. 网络层
C. 数据链路层
D. 传输层
答案:C
下面关于源端口地址和目标端口地址的描述中,正确的是( )
A. 在TCP/UDP传输段中,源端口地址和目的端口地址是不能相同的
B. 在TCP/UDP传输段中,源端口地址和目的端口地址必须是相同的
C. 在TCP/UDP传输段中,源端口地址和目的端口地址是可以相同的
D. 以上描述均不正确
答案:A
网段地址 154.27.0.0 的网络。若不做子网划分,能支持()台主机
A. 254
B. 1024
C. 65534
D. 16777206
答案:C
SNMP 使用 UDP 161 和 162 端口,则该协议属于 TCP/IP 模型中的()
A. 网络层
B. 数据链路层
C. 应用层
D. 传输层
答案:C
HTTP 协议中,状态码 500 的意思为()
A. 重定向
B. 访问被拒绝
C. 未找到请求的内容
D. 服务器内部有错误
答案:D
主机 A 向主机 B 连续发送了两个 TCP 报文段,其序号分包是 70 和 100 ,如果 A 发送的第一个报文段丢失了,但第二个报文段达到了 B , B 在第二个报文段到达后向 A 发送确认,那么这个确认号是多少?
A. 100
B. 101
C. 70
D. 71
答案:C
每个 IP 地址都可以有一个主机名,通过主机名得到该主机对应 ip 地址的过程叫()
A. ip地址解析
B. 域名解析
C. 域名编译
D. ip地址编译
答案:B
以下说法不正确的是()
A. HTTP是一种请求/响应式的协议
B. HTTP请求消息中Accept表示浏览器可接受的MIME类型
C. HTTP请求消息中Accept-Encoding表示浏览器能够进行解码的数据编码方式
D. HTTP请求消息中Css表示初始URL中的主机和端口
答案:D
关于计算机网络,下列描述当中,正确的是()
A. 在同一信道上同一时刻,可进行双向数据传送的通信方式是半双工
B. TCP协议是无连接的;UDP协议是面向连接的
C. 假设一个主机的ip地址为192.168.8.123,而子网掩码为255.255.255.248,那么该主机的网络号是192.168.8.120
D. 计算机网络中的OSI结构分别是:物理层,数据链路层,传输层,会话层,表示层,应用层 答案:C
下列关于 http 状态码描述正确的是()
A. 404读取浏览器缓存,502错误网关
B. 404找不到资源,403服务器错误
C. 500服务器错误,304读取浏览器缓存
D. 304服务器错误,200请求成功
答案:C
数据库连接池
题目描述:Web系统通常会频繁地访问数据库,如果每次访问都创建新连接,性能会很差。为了提高性能,架构师决定复用已经创建的连接。当收到请求,并且连接池中没 有剩余可用的连接时,系统会创建一个新连接,当请求处理完成时该连接会被放入连接池中,供后续请求使用。
现在提供你处理请求的日志,请你分析一下连接池最多需要创建多少个连接。
输入描述:输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤1000),表示请求的数量。
紧接着n行,每行包含一个请求编号id(A、B、C……、Z)和操作(connect或disconnect)。
输出描述:对应每一组数据,输出连接池最多需要创建多少个连接。
public class Main59 { //数据库连接池 public static void main(String[] args) { Scanner scanner=new Scanner(System.in); while (scanner.hasNext()){ int n=scanner.nextInt(); String id,op; int maxCon=0; Set<String> s=new HashSet<>(); for (int i = 0; i < n; i++) { id=scanner.next(); op=scanner.next(); if (op.equals("connect")){ s.add(id); }else { s.remove(id); } maxCon=Math.max(maxCon,s.size()); } System.out.println(maxCon); } } }
Mkdir
题目描述:工作中,每当要部署一台新机器的时候,就意味着有一堆目录需要创建。例如要创建目录“/usr/local/bin”,就需要此次创建“/usr”、“/usr/local”以 及“/usr/local/bin”。好在,Linux下mkdir提供了强大的“-p”选项,只要一条命令“mkdir -p /usr/local/bin”就能自动创建需要的上级目录。 现在给你一些需要创建的文件夹目录,请你帮忙生成相应的“mkdir -p”命令。
输入描述:输入包含多组数据。
每组数据第一行为一个正整数n(1≤n≤1024)。
紧接着n行,每行包含一个待创建的目录名,目录名仅由数字和字母组成,长度不超过200个字符。
输出描述:对应每一组数据,输出相应的、按照字典顺序排序的“mkdir -p”命令。
每组数据之后输出一个空行作为分隔。
public class Main60 { //Mkdir public static void main(String[] args) { //循环接收多组测试用列 Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { //接收一组测试用列 int n = scanner.nextInt(); String[] path = new String[n]; for (int i = 0; i < n; i++) { path[i] = scanner.next(); } //按照字典的方式对所有的目录进行排序 Arrays.sort(path); //过滤目录:相同目录 || 子目录 //伪删法:标记 boolean[] flag = new boolean[n]; for (int i = 0; i < n - 1; ++i) { //相同目录 if (path[i].equals(path[i + 1])) { flag[i] = true; } else if (path[i].length() < path[i + 1].length() && path[i + 1].contains(path[i]) && path[i + 1].charAt(path[i].length()) == '/') { flag[i] = true; } } //拼接要输出的结果 for (int i = 0; i < n; i++) { if (!flag[i]) { System.out.println("mkdir -p " + path[i]); } } System.out.println(); } } }
方法2:
//mkdir public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int n = sc.nextInt(); String[] arr = new String[n]; for (int i = 0; i < arr.length; i++) { arr[i] = sc.next(); } Arrays.sort(arr); List<String> res = new ArrayList<>(); for (int i = 1; i < arr.length; i++) { if (!arr[i].startsWith(arr[i - 1] + "/")) res.add(arr[i - 1]); } res.add(arr[n - 1]); for (String s : res) { System.out.println("mkdir -p " + s); } System.out.println(); } } }