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