Java面向对象编程

一台刚刚接入互联网的WEB服务器第一次被访问到时,不同协议的发生顺序是下面中的()

A. ARP -> DNS -> HTTP

B. ARP -> HTTP -> DNS

C. DNS -> HTTP -> ARP

D. HTTP -> ARP -> DNS

答案:A

办公室的一台计算机只能使用IP地址而无法使用域名访问外部网站,造成这种情况的原因不可能是() A. 该计算机设置的DNS服务器没有提供正常域名解析服务

B. 该计算机与DNS服务器不在同一子网

C. 提供被访问服务器名字解析的DNS服务器有故障

D. 该计算机发起的目的端口为53的访问请求被限制

答案:B

对于IP地址为200.5.6.3,属于()类

A. A

B. B

C. C

D. D

答案:C

下列哪些功能使TCP准确可靠地从源设备到目地设备传输数据()

A. 封装

B. 流量控制

C. 无连接服务

D. 编号和定序

答案:D

tcp三次握手创建连接,双方交互的报文中SYN和ACK的序列是什么样的()

A. SYN,SYN+ACK,ACK

B. SYN,ACK,SYN,ACK

C. SYN+ACK,ACK,SYN

D. SYN,SYN,ACK

答案:A

下列关于地址转换的描述,错误的是()

A. 地址转换解决了因特网地址短缺所面临问题

B. 地址转换实现了对用户透明的网络外部地址的分配

C. 使用地址转换后,对"IP包加长","快速转发"不会造成什么影响

D. 地址转换内部主机提供一定的”隐私”

答案:B

某主机的IP地址202.117.131.12/20,其子网掩码是()

A. 255.255.248.0

B. 255.255.240.0

C. 255.255.252.0

D. 255.255.255.4

答案:B

HTTPS采用()实现安全网站访问

A. SSL

B. IPsec

C. PGP

D. SET

答案:A

网段地址 154.27.0.0 的网络。若不做子网划分,能支持()台主机

A. 254

B. 1024

C. 65534

D. 16777206

答案:C

下列关于网络编程错误的是?

A. UDP是不可靠服务

B. 主动关闭的一端会出现TIME_WAIT状态

C. 服务端编程会调用listen(),客户端会调用bind()

D. TCP建立和关闭连接都只需要三次握手 E. linux通过提供socket接口来进行网络编程 F. 长连接相对短连接可以节省建立连接的时间

答案:D

数组中出现次数超过一半的数字
题目描述:给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 
例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 
数据范围:n<=50000,数组中元素的值0<=val<=10000
要求:空间复杂度:O(1),时间复杂度O(n)

 

public class Solution6 {

    public int MoreThanHalfNum_Solution(int[] array){

        HashMap<Integer,Integer> mp=new HashMap<>();

        for (int num:array) {

            //统计num的次数

            if (mp.containsKey(num)){

                mp.put(num,mp.get(num)+1);

            }else {

                mp.put(num,1);

            }

            //判断num的次数是否超过一半

            if (mp.get(num) > array.length/2){

                return num;

            }

        }

        return 0;

    }

}
简单错误记录
题目描述:开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。 
处理: 
1、 记录最多8条错误记录,循环记录,最后只用输出最后出现的八条错误记录。对相同的错误记录只记录一条,但是错误计数增加。最后一个斜杠后面的带后缀 名的部分(保留最后16位)和行号完全匹配的记录才做算是“相同”的错误记录。 
2、 超过16个字符的文件名称,只记录文件的最后有效16个字符; 
3、 输入的文件可能带路径,记录文件名称不能带路径。也就是说,哪怕不同路径下的文件,如果它们的名字的后16个字符相同,也被视为相同的错误记录 
4、循环记录时,只以第一次出现的顺序为准,后面重复的不会更新它的出现时间,仍以第一次为准 
数据范围: 错误记录数量满足1<=n<=100,每条记录长度满足 1<=len<=100
输入描述:每组只包含一个测试用例。一个测试用例包含一行或多行字符串。每行包括带路径文件名称,行号,以空格隔开。 
输出描述:将所有的记录统计并将结果输出,格式:文件名 代码行数 数目,一个空格隔开,如:
 
   

 

public class Main76 {

    //简单错误记录

    public static void main(String[] args) {

        Scanner scanner=new Scanner(System.in);

        HashMap<String,Integer> mp=new HashMap<>();

        ArrayList<String> arr=new ArrayList<>();

        while (scanner.hasNext()){

            //文件名

            String curStr= scanner.next();

            //行号

            String num= scanner.next();

            //文件名预处理

            String[] strArr=curStr.split("\\\\");

            //取最后一个反斜杠之后的内容

            curStr=strArr[strArr.length-1];

            //判断长度是否大于16

            if (curStr.length()>16){

                curStr=curStr.substring(curStr.length()-16);

            }

            //加上行号

            curStr +=" "+num;

            //判断是否为第一次出现

            if ( !mp.containsKey(curStr)){

                //加入新的记录

                arr.add(curStr);

                mp.put(curStr,1);

            }else {

                //累加

                mp.put(curStr,mp.get(curStr)+1);

            }

        }

        //打印最后8条记录

        int start=0;

        if (arr.size()>8){

            start=arr.size()-8;

        }

        for (; start < arr.size(); ++start) {

            System.out.println(arr.get(start)+" "+mp.get(arr.get(start)));

        }

    }

}
数组中出现次数超过一半的数字
题目描述:给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 
例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 
数据范围:n<=50000,数组中元素的值0<=val<=10000
要求:空间复杂度:O(1),时间复杂度O(n)

 

public class Solution6 {

    public int MoreThanHalfNum_Solution(int[] array){

        HashMap<Integer,Integer> mp=new HashMap<>();

        for (int num:array) {

            //统计num的次数

            if (mp.containsKey(num)){

                mp.put(num,mp.get(num)+1);

            }else {

                mp.put(num,1);

            }

            //判断num的次数是否超过一半

            if (mp.get(num) > array.length/2){

                return num;

            }

        }

        return 0;

    }

}

你可能感兴趣的:(java要笑着学,操作系统哪些事?,java,网络,开发语言)