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);
    }
}
相关文章
|
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面向对象编程