Java面向对象编程(46)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
公网NAT网关,每月750个小时 15CU
全局流量管理 GTM,标准版 1个月
简介: Java面向对象编程(46)

一台刚刚接入互联网的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;
    }
}
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2月前
|
Java 开发者
Java 面向对象编程
总之,Java 的面向对象编程为开发者提供了一种有效的编程范式,帮助他们构建出高质量、可维护的软件系统。理解和掌握面向对象的概念和原则是成为优秀 Java 开发者的重要基础。
203 63
|
5月前
|
Java 开发者
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
47 7
|
5月前
|
Java 开发者
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
56 5
|
5月前
|
Java 程序员
Java中的继承和多态:理解面向对象编程的核心概念
【8月更文挑战第22天】在Java的世界中,继承和多态不仅仅是编程技巧,它们是构建可维护、可扩展软件架构的基石。通过本文,我们将深入探讨这两个概念,并揭示它们如何共同作用于面向对象编程(OOP)的实践之中。你将了解继承如何简化代码重用,以及多态如何为程序提供灵活性和扩展性。让我们启程,探索Java语言中这些强大特性的秘密。
|
7月前
|
Java
Java面向对象编程新篇章:多态,你准备好了吗?
【6月更文挑战第17天】Java的多态性是面向对象编程的核心,它允许通过统一的接口处理不同类型的对象。例如,在一个虚拟宠物游戏中,抽象类`Pet`定义了`speak()`方法,猫、狗和鹦鹉等子类各自重写此方法以实现独特叫声。在`main`方法中,使用`Pet`类型的引用创建子类对象并调用`speak()`,多态机制确保调用实际对象的方法,实现代码的灵活性和可扩展性。通过多态,我们能以更低的耦合度和更高的复用性编写更优雅的代码。
48 3
|
7月前
|
Java
Java 面向对象编程:父类与子类的“传承”与“创新”之路
【6月更文挑战第16天】Java 中的父类与子类展示了面向对象的“传承”与“创新”。子类`Dog`继承`Animal`,获取其属性和方法如`name`和`makeSound`。子类通过`@Override`增强`makeSound`,显示多态性。设计父类时应考虑普遍性,子类创新专注自身特性,遵循继承最佳实践,利用复用提升效率,构建可维护的软件系统。
163 57
|
5月前
|
存储 前端开发 JavaScript
【前端学java】面向对象编程基础-类的使用(4)
【8月更文挑战第9天】面向对象编程基础-类的使用
29 0
|
5月前
|
Java 程序员 开发者
Java的面向对象编程:从基础到深入
【8月更文挑战第21天】在本文中,我们将探讨Java的面向对象编程(OOP)的核心概念,包括类、对象、继承、多态和封装。我们将通过实例和比喻,以通俗易懂的方式,深入理解这些概念的内涵和意义,以及它们如何影响我们的编程思维和实践。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更深入地理解Java的OOP,并启发你思考如何在你的项目中应用这些概念。
|
7月前
|
Java 安全 索引
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
【6月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
77 5
|
6月前
|
Java API 项目管理
Java中的函数式编程与传统面向对象编程对比
Java中的函数式编程与传统面向对象编程对比