Java面向对象编程(43)

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

下面关于synflood攻击的说法,错误的是()

A. 服务端由于连接队列被占满而不能对外服务

B. 不但能攻击TCP服务,还可以攻击UDP服务

C. 大量连接处于SYN_RECV状态

D. 使用硬件防火墙可以一定程度上抵御攻击

答案:B

A,B两台机器都正常工作,B机器未监听任何端口.如果A机器向B机器80端口发送SYN包,会收到何种类型的回包()

A. ACK包

B. FIN包

C. 不会收到回包

D. RST包

答案:D

下列哪个IP地址可以分配给一台计算机()

A. 256.1.3.4

B. 197.3.11.0

C. 199.5.89

D. 11.15.33.235

答案:D

以下哪个ip不和10.11.12.91/28处于同一个子网()

A. 10.11.12.85/28

B. 10.11.12.88/28

C. 10.11.12.94/28

D. 10.11.12.97/28

答案:D

假设在x86平台上,有一个int型变量,在内存中的内部由低到高分别是:0x12,0x34,0x56,0x78当通过网络发送该数据时,正确的发送顺序是()

A. 0x12,0x34,0x56,0x78

B. 0x78,0x56,0x34,0x12

C. 0x34,0x12,0x78,0x56

D. 0x56,0x78,0x12,0x34

答案:B

某学校获取到一个B类地址段,要给大家分开子网使用,鉴于现在上网设备急剧增多,管理员给每个网段进行划分的子网掩码设置为255.255.254.0,考虑每个网段需要有网关设备 占用一个地址的情况下,每个网段还有多少可用的主机地址()

A. 509

B. 511

C. 512

D. 510

答案:A

下列哪个地址不可能是子网掩码()

A. 255.224.0.0

B. 255.255.240.0

C. 255.255.255.248

D. 255.255.255.250

答案:D

当我们在局域网内使用ping www.nowcoder.com时,哪种协议没有被使用()

A. ICMP

B. ARP

C. DNS

D. TCP

答案:D

从浏览器打开 http://www.sohu.com ,TCP/IP协议族中不会被使用到的协议是()

A. SMTP

B. HTTP

C. TCP

D. IP

答案:A

某公司申请到一个C类IP地址,但要连接6个的子公司,最大的一个子公司有26台计算机,每个子公司在一个网段中,则子网掩码应设为()

A. 255.255.255.192

B. 255.255.255.128

C. 255.255.255.0

D. 255.255.255.224

答案:D

求和

题目描述:输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来

输入描述:每个测试输入包含2个整数,n和m

输出描述:按每个组合的字典序排列输出,每行输出一种组合

public class Main70 {
    //求和
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n,m;
        while (scanner.hasNextInt()){
            n=scanner.nextInt();
            m=scanner.nextInt();
            ArrayList<Integer> arr=new ArrayList<>();
            int curSum=0;
            getSum(arr,1,curSum,n,m);
        }
    }
    public static void getSum(ArrayList<Integer> arr,int pos,int cutSum,int n,int dest){
        //判断当前和是否大于等于dest
        if (cutSum>=dest){
            //判断当前和是否正好等于dest
            if (cutSum == dest){
                for (int i = 0; i < arr.size()-1; ++i) {
                    System.out.println(arr.get(i)+" ");
                }
                System.out.println(arr.get(arr.size()-1));
            }
            return;
        }
        //继续累加:从小到大累加
        for (int i = pos; i <= n; ++i) {
            //保存当前数据
            arr.add(i);
            getSum(arr,i+1,cutSum+i,n,dest);
            //尝试累加其他数据,删除当前数据
            arr.remove(arr.size()-1);
        }
    }
}

电话号码

题目描述: 上图是一个电话的九宫格,如你所见一个数字对应一些字母,因此在国外企业喜欢把电话号码设计成与自己公司名字相对应。例如公司的Help Desk号码是 4357,因为4对应H、3对应E、5对应L、7对应P,因此4357就是HELP。同理,TUT-GLOP就代表888-4567、310-GINO代表310-4466。 NowCoder刚进入外企,并不习惯这样的命名方式,现在给你一串电话号码列表,请你帮他转换成数字形式的号码,并去除重复的部分。

输入描述:输入包含多组数据。

每组数据第一行包含一个正整数n(1≤n≤1024)。

紧接着n行,每行包含一个电话号码,电话号码仅由连字符“-”、数字和大写字母组成。

没有连续出现的连字符,并且排除连字符后长度始终为7(美国电话号码只有7位)。

输出描述:对应每一组输入,按照字典顺序输出不重复的标准数字形式电话号码,即“xxx-xxxx”形式。

每个电话号码占一行,每组数据之后输出一个空行作为间隔符。

public class Main71 {
    //电话号码
    public static void main(String[] args)throws Exception {
        //建立映射
        HashMap<Character,Character> mp=new HashMap<>();
        String alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String num="22233344455566677778889999";
        char[] alphaArr=alpha.toCharArray();
        char[] numArr=num.toCharArray();
        for (int i = 0; i < alphaArr.length; ++i) {
            mp.put(alphaArr[i],numArr[i]);
        }
        //用set保存结果,去重
        TreeSet<String> set=new TreeSet<>();
        String line;
        BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
        while ((line=reader.readLine()) !=null){
            set.clear();
            int n=Integer.parseInt(line);
            //处理n 个字符串
            for (int i = 0; i < n; ++i) {
                line=reader.readLine();
                //保存转换之后的字符串
                StringBuilder sb=new StringBuilder();
                char[] arr=line.toCharArray();
                //处理每一个字符
                for (char ch: arr) {
                    if (isDigit(ch)){
                        sb.append(ch);
                    }else if (isUpper(ch)){
                        sb.append(mp.get(ch));
                    }
                }
                //调整格式:xxx-xxxx
                line=sb.substring(0,3)+"-"+sb.substring(3);
                //保存结果
                set.add(line);
            }
            //打印转换之后的结果
            for (String str:set) {
                System.out.println(str);
            }
            //每组数据用空格隔开
            System.out.println();
        }
    }
    public static boolean isDigit(char ch){
        return '0' <=ch && ch <= '9';
    }
    public static boolean isUpper(char ch){
        return 'A'<=ch && ch<='Z';
    }
}
相关文章
|
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面向对象编程