Java面向对象编程(46)

本文涉及的产品
公网NAT网关,每月750个小时 15CU
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
全局流量管理 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;
    }
}
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
28天前
|
Java
Java面向对象编程新篇章:多态,你准备好了吗?
【6月更文挑战第17天】Java的多态性是面向对象编程的核心,它允许通过统一的接口处理不同类型的对象。例如,在一个虚拟宠物游戏中,抽象类`Pet`定义了`speak()`方法,猫、狗和鹦鹉等子类各自重写此方法以实现独特叫声。在`main`方法中,使用`Pet`类型的引用创建子类对象并调用`speak()`,多态机制确保调用实际对象的方法,实现代码的灵活性和可扩展性。通过多态,我们能以更低的耦合度和更高的复用性编写更优雅的代码。
|
29天前
|
Java
Java 面向对象编程:父类与子类的“传承”与“创新”之路
【6月更文挑战第16天】Java 中的父类与子类展示了面向对象的“传承”与“创新”。子类`Dog`继承`Animal`,获取其属性和方法如`name`和`makeSound`。子类通过`@Override`增强`makeSound`,显示多态性。设计父类时应考虑普遍性,子类创新专注自身特性,遵循继承最佳实践,利用复用提升效率,构建可维护的软件系统。
|
1月前
|
Java 安全 索引
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
【6月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
33 5
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
|
29天前
|
存储 安全 Java
深入探讨 Java 封装机制:为何它是面向对象编程的核心?
【6月更文挑战第16天】Java的封装是OOP核心,它将数据和操作数据的方法打包在类中,隐藏实现细节并提供公共接口。例如,`Student`类封装了私有属性`name`和`age`,通过`get/set`方法安全访问。封装提升代码稳定性、可维护性和复用性,防止外部直接修改导致的错误,确保数据安全。它是面向对象编程优于传统编程的关键,促进高效、可靠的开发。
|
27天前
|
Java 数据安全/隐私保护 开发者
Java是一种完全支持面向对象编程的语言,其面向对象特性包括封装、继承、多态和抽象等
【6月更文挑战第18天】**面向对象编程(OOP)通过对象封装状态和行为,实现问题域的抽象。Java全面支持OOP,核心特性包括**: - **封装**:保护数据安全,隐藏内部细节。 - **继承**:子类继承父类属性和行为,促进代码重用。 - **多态**:一个接口多种实现,增强灵活性和扩展性。 - **抽象**:通过接口和抽象类抽离共性,简化复杂性。 **Java的OOP便于理解和解决复杂系统问题。**
30 3
|
26天前
|
Java 开发者
Java面向对象编程(OOP)的四个主要概念
【6月更文挑战第19天】Java OOP的基石是封装、抽象、继承和多态。封装是通过类隐藏数据细节;抽象简化复杂性,用接口和抽象类实现;继承让子类从父类继承属性和行为,促进代码重用;多态一个接口可有多种形态,分编译时和运行时。这些概念支持灵活且可扩展的软件设计。
21 1
|
29天前
|
Java
Java 面向对象编程大揭秘:子类如何“继承”父类,摇身一变成为“新贵”?!
【6月更文挑战第16天】Java中的继承允许子类从父类继承特性与功能,如`Dog`继承`Animal`,重写`makeSound`方法,展现独特行为。同样,`Circle`继承`Shape`,定制`draw`方法以绘制圆形。继承提高了代码复用和灵活性,使子类能基于父类基础创新,如同接力赛中父类传递接力棒,子类创造新辉煌。在Java世界,继承是构建复杂项目的关键机制,有待深入探索。
|
2月前
|
Java 编译器 数据库
滚雪球学Java(40):解读Java面向对象编程中的方法和继承,打造可维护的代码库
【5月更文挑战第15天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
35 4
滚雪球学Java(40):解读Java面向对象编程中的方法和继承,打造可维护的代码库
|
2月前
|
Java
深入探索Java语言的面向对象编程
深入探索Java语言的面向对象编程
|
2月前
|
Java 编译器
Java面向对象编程:构造方法详解
Java面向对象编程:构造方法详解
37 2