Java面向对象编程(48)

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

下面是一个http请求:

GET /baidu/blog/item/6605d1b4eb6433738ad4b26d.html HTTP/1.1

Host: hi.baidu.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Accept-Language: zh-cn,zh;q=0.5

Accept-Encoding: gzip,deflate

Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

Referer: http://hi.baidu.com/baidu

Cookie: BAIDUID=AFB70E986AC48B336ABAB7505CDD1C76;

下面关于 Host、User-Agent、Accept-Charset、Connection、Referer、Cookie描述错误的是()

A. Host: HTTP服务器的IP地址或者域名

B. User-Agent: 告诉HTTP服务器, 客户端使用的操作系统和浏览器的名称和版本.

C. Accept-Charset:浏览器申明自己接收的字符集,这就是本文前面介绍的各种字符集和字符编码,如gb2312,utf-8

D. Cookie: 它记录了服务器的相关的一些信息

E. Referer: 提供了Request的上下文信息的服务器,告诉服务器我是从哪个链接过来的

答案:D

常见的http错误描述原因错误的是()

A. 404-Not found(没有找到)

B. 302-临时重定向

C. 500-内部服务器错误

D. 403- IP address rejected

答案:D

Linux 中,要使用 tcpdump 监听网卡 eth0,对方主机 IP 为 10.1.1.180,TCP 端口为 80,则正确的命令为()

A. tcpdump -h eth0 -nn 'tcp and host 10.1.1.180:80'

B. tcpdump -i eth0 -nn 'tcp and host 10.1.1.180:80'

C. tcpdump -h eth0 -nn 'tcp and port 80 and host 10.1.1.180'

D. tcpdump -i eth0 -nn 'tcp and port 80 and host 10.1.1.180'

答案:D

网络地址172.16.22.38/28 请写出此地址的子网ID以及广播地址,此地址所处子网可用主机数()

A. 172.16.22.32 172.16.22.255 12

B. 172.16.22.32 172.16.22.47 16

C. 172.16.22.32 172.16.22.255 15

D. 172.16.22.32 172.16.22.47 14

答案:D

tcp三次握手的过程,accept发生在三次握手哪个阶段()

A. 第一次握手

B. 第二次握手

C. 第三次握手

D. 三次握手后

答案:D

Linux中,一个端口能够接受tcp链接数量的理论上限是()

A. 1024

B. 65535

C. 65535 * 65535

D. 无上限

答案:D

TCP报文首部信息中与关闭连接有关的是()

A. URG

B. ACK

C. SYN

D. FIN

答案:D

10.1.0.1/17的广播地址是( )

A. 10.1.128.255

B. 10.1.63.255

C. 10.1.127.255

D. 10.1.126.255

答案:C

随着IP网络的发展,为了节省可分配的注册IP地址,有一些地址被拿出来用于私有IP地址,以下不属于私有IP地址范围的是()

A. 10.6.207.84

B. 172.23.30.28

C. 172.32.50.80

D. 192.168.1.100

答案:C

int listen(SOCKET s, int backlog);该函数中第二个参数的含义是?

A. 是否打开log信息

B. 是否打开后台log信息

C. 后台等待连接队列的最大限制值

D. 后台等待连接队列的最小限制值

E. 无意义

答案:C

左右最值最大差

题目描述:给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0..K],右部分A[K+1..N-1],K可以取值的范围是[0,N-2]。求这么多划分方案 中,左部分中的最大值减去右部分最大值的绝对值,最大是多少?

给定整数数组A和数组的大小n,请返回题目所求的答案。

public class MaxGap {
    //左右最值最大差
    public int findMaxGap(int[] A,int n){
        int mx=A[0];
        for (int i = 1; i < n; ++i) {
            mx=Math.max(mx,A[i]);
        }
        return mx-Math.min(A[0],A[n-1]);
    }
}

顺时针打印矩阵

题目描述:对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。

给定int矩阵mat,以及它的维数nxm,请返回一个数组,数组中的元素为矩阵元素的顺时针输出。

public class Printer {
    //顺时针打印矩阵
    public int[] clockwisePrint(int[][] mat, int n, int m) {
        //左上角坐标
        int x1 = 0;
        int y1 = 0;
        //左下角坐标
        int x2 = n - 1;
        int y2 = m - 1;
        int[] arr = new int[n * m];
        int idx = 0;
        while (x1 <= x2 && y1 <= y2) {
            //第一行:x1,y1~y2
            for (int i = y1; i <= y2; ++i) {
                arr[idx++] = mat[x1][i];
            }
            //最后一列:x1+1~x2,y2
            for (int i = x1 + 1; i <= x2; ++i) {
                arr[idx++] = mat[i][y2];
            }
            //最后一行:x2,y2-1,y1---->x1 < x2
            if (x1 < x2) {
                for (int i = y2 - 1; i >= y1; --i) {
                    arr[idx++] = mat[x2][i];
                }
            }
            //第一列:x2-1~x1+1,y1---->y1<y2
            if (y1 < y2) {
                for (int i = x2 - 1; i > x1; --i) {
                    arr[idx++] = mat[i][y1];
                }
            }
            x1++;
            y1++;
            x2--;
            y2--;
        }
        return arr;
    }
}

Fibonacci数列

题目描述:Fibonacci数列是这样定义的:

F[0]=0

F[1]=1

for each i ≥ 2:F[]=F[ i-1]+F[i-2]

因此,Fibonacci数列就形如:0,1,1,2,3,5,8,13...,在Fibonacc数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。

输入描述:输入为一个正整数N(1≤N≤1,000,000)

输出描述:输出一个最小的步数变为Fibonacci数"

public class Main79 {
    //Fibonacci数列
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        int f1=0;
        int f2=1;
        while (f2<n){
            int f3=f1+f2;
            f1=f2;
            f2=f3;
        }
        //循环结束f1<n<=f2
        int min=Math.min(n-f1,f2-n);
        System.out.println(min);
    }
}
相关文章
|
2月前
|
Java 开发者
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
35 7
|
2月前
|
Java 开发者
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
41 5
|
2月前
|
Java 程序员
Java中的继承和多态:理解面向对象编程的核心概念
【8月更文挑战第22天】在Java的世界中,继承和多态不仅仅是编程技巧,它们是构建可维护、可扩展软件架构的基石。通过本文,我们将深入探讨这两个概念,并揭示它们如何共同作用于面向对象编程(OOP)的实践之中。你将了解继承如何简化代码重用,以及多态如何为程序提供灵活性和扩展性。让我们启程,探索Java语言中这些强大特性的秘密。
|
4月前
|
Java
Java面向对象编程新篇章:多态,你准备好了吗?
【6月更文挑战第17天】Java的多态性是面向对象编程的核心,它允许通过统一的接口处理不同类型的对象。例如,在一个虚拟宠物游戏中,抽象类`Pet`定义了`speak()`方法,猫、狗和鹦鹉等子类各自重写此方法以实现独特叫声。在`main`方法中,使用`Pet`类型的引用创建子类对象并调用`speak()`,多态机制确保调用实际对象的方法,实现代码的灵活性和可扩展性。通过多态,我们能以更低的耦合度和更高的复用性编写更优雅的代码。
32 3
|
2月前
|
存储 前端开发 JavaScript
【前端学java】面向对象编程基础-类的使用(4)
【8月更文挑战第9天】面向对象编程基础-类的使用
15 0
【前端学java】面向对象编程基础-类的使用(4)
|
4月前
|
Java
Java 面向对象编程:父类与子类的“传承”与“创新”之路
【6月更文挑战第16天】Java 中的父类与子类展示了面向对象的“传承”与“创新”。子类`Dog`继承`Animal`,获取其属性和方法如`name`和`makeSound`。子类通过`@Override`增强`makeSound`,显示多态性。设计父类时应考虑普遍性,子类创新专注自身特性,遵循继承最佳实践,利用复用提升效率,构建可维护的软件系统。
138 57
|
2月前
|
Java 程序员 开发者
Java的面向对象编程:从基础到深入
【8月更文挑战第21天】在本文中,我们将探讨Java的面向对象编程(OOP)的核心概念,包括类、对象、继承、多态和封装。我们将通过实例和比喻,以通俗易懂的方式,深入理解这些概念的内涵和意义,以及它们如何影响我们的编程思维和实践。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更深入地理解Java的OOP,并启发你思考如何在你的项目中应用这些概念。
|
3月前
|
Java API 项目管理
Java中的函数式编程与传统面向对象编程对比
Java中的函数式编程与传统面向对象编程对比
|
4月前
|
Java 安全 索引
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
【6月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
46 5
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
|
4月前
|
存储 安全 Java
深入探讨 Java 封装机制:为何它是面向对象编程的核心?
【6月更文挑战第16天】Java的封装是OOP核心,它将数据和操作数据的方法打包在类中,隐藏实现细节并提供公共接口。例如,`Student`类封装了私有属性`name`和`age`,通过`get/set`方法安全访问。封装提升代码稳定性、可维护性和复用性,防止外部直接修改导致的错误,确保数据安全。它是面向对象编程优于传统编程的关键,促进高效、可靠的开发。
46 7
下一篇
无影云桌面