Java面向对象编程(46)

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: 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 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
6天前
|
设计模式 安全 Java
面向对象编程的精髓:Java设计模式 - 原型模式(Prototype)完全参考手册
【4月更文挑战第7天】原型模式是OOP中的创建型设计模式,用于通过复制现有实例创建新实例,尤其适用于创建成本高或依赖其他对象的情况。它包括Prototype接口、ConcretePrototype实现和Client客户端角色。优点是性能优化、避免子类化和动态增加产品族。实现包括定义原型接口、实现具体原型和客户端调用克隆方法。最佳实践涉及确保克隆正确性、选择深拷贝或浅拷贝及考虑线程安全。但需注意克隆方法管理、性能开销和循环引用等问题。在Java中,实现Cloneable接口和覆盖clone方法可实现原型模式。
|
6天前
|
安全 Java 数据安全/隐私保护
|
6天前
|
Java
04|零基础玩转面向对象编程:Java OOP
04|零基础玩转面向对象编程:Java OOP
7 0
|
6天前
|
Java
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
|
6天前
|
存储 Java 程序员
Java面向对象编程的基础概念解析
Java面向对象编程的基础概念解析
17 0
|
6天前
|
Java
Java一分钟之-类与对象:面向对象编程入门
【5月更文挑战第8天】本文为Java面向对象编程的入门指南,介绍了类与对象的基础概念、常见问题及规避策略。文章通过代码示例展示了如何定义类,包括访问修饰符的适当使用、构造器的设计以及方法的封装。同时,讨论了对象创建与使用时可能遇到的内存泄漏、空指针异常和数据不一致等问题,并提供了相应的解决建议。学习OOP需注重理论与实践相结合,不断编写和优化代码。
31 1
|
6天前
|
Java
Java从入门到精通:1.1.2深入理解Java的面向对象编程概念
Java从入门到精通:1.1.2深入理解Java的面向对象编程概念
|
6天前
|
Java Scala C#
Java 17 新特性揭秘:密封类的华丽登场,面向对象编程再进化
Java 17 新特性揭秘:密封类的华丽登场,面向对象编程再进化
28 0
|
6天前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
95 3
|
6天前
|
Java
Java面向对象编程
Java面向对象编程