Java面向对象编程(47)

简介: Java面向对象编程(47)

对于IP地址130.63.160.2,MASK为255.255.255.0,子网号为()

A. 160.2

B. 160

C. 63.160

D. 130.63.160

答案:B

将网络物理地址转换为IP地址的协议是()

A. IP

B. ICMP

C. ARP

D. RARP

答案:D

有关cookie和session的描述,下面错误的是()

A. cookie数据存放在客户的浏览器上,session数据放在服务器上

B. session是针对每一个用户的,变量的值保存在服务器上,用一个sessionID来区分是哪个用户session变量

C. 保存这个session id的方式可以采用cookie

D. 只要关闭浏览器,session就消失了

答案:D

关于TIME_WAIT状态的描述,下面说法错误的是()

A. TIME_WAIT出现在被动关闭一方,CLOSE_WAIT出现在主动关闭一方

B. 从TIME_WAIT状态到CLOSED状态,有一个超时设置,这个超时设置是 2*MSL

C. TIME_WAIT确保有足够的时间让对端收到了ACK,如果被动关闭的那方没有收到Ack,就会触发被动端重发Fin,一来一去正好2个MSL

D. 有足够的时间让这个连接不会跟后面的连接混在一起

答案:A

TCP连接释放过程,叙述不正确的是()

A. 通过设置FIN为来表示释放连接

B. 当一方释放连接后另一方即不能继续发送数据

C. 只有双方均释放连接后,该连接才被释放

D. 释放连接采用四次挥手机制

答案:B

下面有关TCP协议的描述,说法错误的是()

A. TCP使用窗口机制进行流量控制

B. 由于TCP连接是全双工的,因此每个方向都必须单独进行关闭,需要四次握手

C. TCP连接建立需要三次握手

D. 被动关闭socket后,会进入到TIME_WAIT状态

答案:D

查看TCP连接的命令是什么()

A. tcpdump

B. top

C. netstat

D. ifconfig

答案:C

某IP地址192.168.48.10,掩码为255.255.255.128,其所在的子网为(),广播地址为(),有效的主机IP地址范围是()

A. 192.168.48.0/192.168.48.127/192.168.48.1 到 192.168.48.126

B. 192.168.48.0/192.168.48.255/192.168.48.1 到 192.168.48.255

C. 192.168.48.1/192.168.48.255/192.168.48.1 到 192.168.48.126

D. 192.168.48.1/192.168.48.127/192.168.48.1 到 192.168.48.255

答案:A

172.16.100.5/255.255.255.252 的网络地址和主机号是多少()

A. 172.16.100.4 1

B. 172.16.100.4 5

C. 172.16.100.5 1

D. 172.16.100.5 5

答案:A

下面有关NAT的描述,说法错误的是()

A. NAT是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术

B. NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad

C. NAT可以有效的缓解了IP地址不足的问题

D. 虚拟机里配置NAT模式,需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段

答案:D

合唱团

题目描述:有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生 的能力值的乘积最大,你能返回最大的乘积吗?

输入描述:每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每个学生 的能力值 a (-50 <= ai <= 50)。接下来的一行包含两个整数,k 和 d (1 <= k <= 10, 1 <= d <= 50)。

输出描述:输出一行表示最大的乘积。

 

public class Main77 {
    //合唱团
    public static long getMax(int[] arr, int n, int k, int d) {
        long[][] maxValue = new long[n + 1][k + 1];
        long[][] minValue = new long[n + 1][k + 1];
        long ret = 0;
        //F(i,j):以第i个学生结尾,共选了j个同学的最大值
        //初始状态F(i,1):arr[i]
        for (int i = 1; i <= n; ++i) {
            maxValue[i][1] = minValue[i][1] = arr[i - 1];
        }
        for (int i = 1; i <= n; ++i) {
            for (int j = 1; j <= k; ++j) {
                //约束条件:相邻同学间隔不超过d
                for (int m = i - 1; m >= Math.max(i - d, 1) ; --m) {
                    maxValue[i][j] = Math.max(maxValue[i][j],
                            Math.max(maxValue[m][j - 1] * arr[i - 1],
                                    minValue[m][j - 1] * arr[i - 1]));
                    minValue[i][j] = Math.min(minValue[i][j],
                            Math.min(maxValue[m][j - 1] * arr[i - 1],
                                    minValue[m][j - 1] * arr[i - 1]));
                }
            }
            //更新最大值max(F(i,k))
            ret = Math.max(ret, maxValue[i][k]);
        }
        return ret;
    }
    public static void main(String[] args) {
        int n;
        int k;
        int d;
        Scanner scanner = new Scanner(System.in);
        n = scanner.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; ++i) {
            arr[i] = scanner.nextInt();
        }
        k = scanner.nextInt();
        d = scanner.nextInt();
        System.out.println(getMax(arr, n, k, d));
    }
}

马戏团

题目描述:搜狐员工小王最近利用假期在外地旅游,在某个小镇碰到一个马戏团表演,精彩的表演结束后发现团长正和大伙在帐篷前激烈讨论,小王打听了下了解到, 马戏 团正打算出一个新节目“最高罗汉塔”,即马戏团员叠罗汉表演。考虑到安全因素,要求叠罗汉过程中,站在某个人肩上的人应该既比自己矮又比自己瘦,或相 等。 团长想要本次节目中的罗汉塔叠的最高,由于人数众多,正在头疼如何安排人员的问题。小王觉得这个问题很简单,于是统计了参与最高罗汉塔表演的所有 团员的身高体重,并且很快找到叠最高罗汉塔的人员序列。 现在你手上也拿到了这样一份身高体重表,请找出可以叠出的最高罗汉塔的高度,这份表中马戏团员 依次编号为1到N。

输入描述:首先一个正整数N,表示人员个数。 之后N行,每行三个数,分别对应马戏团员编号,体重和身高。

输出描述:正整数m,表示罗汉塔的高度。

class node implements Comparable<node>{
    int w;
    int h;
    public node(int w,int h){
        this.w=w;
        this.h=h;
    }
    @Override
    public int compareTo(node obj) {
        int ret=w-obj.w;
        //体重相同,身高降序
        if (ret==0){
            return obj.h-h;
        }
        return ret;
    }
}
public class Main78 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while (scanner.hasNextInt()){
            int n= scanner.nextInt();
            node[] arr=new node[n];
            for (int i = 0; i < n; ++i) {
                scanner.nextInt();
                arr[i]=new node(scanner.nextInt(), scanner.nextInt());
            }
            System.out.println(getMaxLength(arr,n));
        }
    }
    public static int getMaxLength(node[] arr,int n){
        //排序
        Arrays.sort(arr);
        //计算最大子序列长度
        int ret=0;
        //F(i):以第i个元素结尾的最大子序列长度
        //初始值:F(i)=1
        int[] maxLength=new int[n];
        for (int i = 0; i < n; ++i) {
            maxLength[i]=1;
        }
        for (int i = 1; i < n; ++i) {
            for (int j = 0; j < i; ++j) {
                if (arr[j].h <=arr[i].h){
                    maxLength[i]=Math.max(maxLength[i],maxLength[j]+1);
                }
            }
            //跟新最值max(F(i))
            ret=Math.max(ret,maxLength[i]);
        }
        return ret;
    }
}
相关文章
|
16小时前
|
设计模式 安全 Java
面向对象编程的精髓:Java设计模式 - 原型模式(Prototype)完全参考手册
【4月更文挑战第7天】原型模式是OOP中的创建型设计模式,用于通过复制现有实例创建新实例,尤其适用于创建成本高或依赖其他对象的情况。它包括Prototype接口、ConcretePrototype实现和Client客户端角色。优点是性能优化、避免子类化和动态增加产品族。实现包括定义原型接口、实现具体原型和客户端调用克隆方法。最佳实践涉及确保克隆正确性、选择深拷贝或浅拷贝及考虑线程安全。但需注意克隆方法管理、性能开销和循环引用等问题。在Java中,实现Cloneable接口和覆盖clone方法可实现原型模式。
|
16小时前
|
安全 Java 数据安全/隐私保护
|
16小时前
|
Java
04|零基础玩转面向对象编程:Java OOP
04|零基础玩转面向对象编程:Java OOP
7 0
|
16小时前
|
Java
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
|
16小时前
|
存储 Java 程序员
Java面向对象编程的基础概念解析
Java面向对象编程的基础概念解析
16 0
|
16小时前
|
Java
Java一分钟之-类与对象:面向对象编程入门
【5月更文挑战第8天】本文为Java面向对象编程的入门指南,介绍了类与对象的基础概念、常见问题及规避策略。文章通过代码示例展示了如何定义类,包括访问修饰符的适当使用、构造器的设计以及方法的封装。同时,讨论了对象创建与使用时可能遇到的内存泄漏、空指针异常和数据不一致等问题,并提供了相应的解决建议。学习OOP需注重理论与实践相结合,不断编写和优化代码。
28 1
|
16小时前
|
Java
Java从入门到精通:1.1.2深入理解Java的面向对象编程概念
Java从入门到精通:1.1.2深入理解Java的面向对象编程概念
|
16小时前
|
Java Scala C#
Java 17 新特性揭秘:密封类的华丽登场,面向对象编程再进化
Java 17 新特性揭秘:密封类的华丽登场,面向对象编程再进化
26 0
|
16小时前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
95 3
|
16小时前
|
Java
Java面向对象编程
Java面向对象编程