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';
    }
}
相关文章
|
28天前
|
Java
Java面向对象编程新篇章:多态,你准备好了吗?
【6月更文挑战第17天】Java的多态性是面向对象编程的核心,它允许通过统一的接口处理不同类型的对象。例如,在一个虚拟宠物游戏中,抽象类`Pet`定义了`speak()`方法,猫、狗和鹦鹉等子类各自重写此方法以实现独特叫声。在`main`方法中,使用`Pet`类型的引用创建子类对象并调用`speak()`,多态机制确保调用实际对象的方法,实现代码的灵活性和可扩展性。通过多态,我们能以更低的耦合度和更高的复用性编写更优雅的代码。
|
29天前
|
Java
Java 面向对象编程:父类与子类的“传承”与“创新”之路
【6月更文挑战第16天】Java 中的父类与子类展示了面向对象的“传承”与“创新”。子类`Dog`继承`Animal`,获取其属性和方法如`name`和`makeSound`。子类通过`@Override`增强`makeSound`,显示多态性。设计父类时应考虑普遍性,子类创新专注自身特性,遵循继承最佳实践,利用复用提升效率,构建可维护的软件系统。
|
1月前
|
Java 安全 索引
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
【6月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
33 5
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
|
29天前
|
存储 安全 Java
深入探讨 Java 封装机制:为何它是面向对象编程的核心?
【6月更文挑战第16天】Java的封装是OOP核心,它将数据和操作数据的方法打包在类中,隐藏实现细节并提供公共接口。例如,`Student`类封装了私有属性`name`和`age`,通过`get/set`方法安全访问。封装提升代码稳定性、可维护性和复用性,防止外部直接修改导致的错误,确保数据安全。它是面向对象编程优于传统编程的关键,促进高效、可靠的开发。
|
27天前
|
Java 数据安全/隐私保护 开发者
Java是一种完全支持面向对象编程的语言,其面向对象特性包括封装、继承、多态和抽象等
【6月更文挑战第18天】**面向对象编程(OOP)通过对象封装状态和行为,实现问题域的抽象。Java全面支持OOP,核心特性包括**: - **封装**:保护数据安全,隐藏内部细节。 - **继承**:子类继承父类属性和行为,促进代码重用。 - **多态**:一个接口多种实现,增强灵活性和扩展性。 - **抽象**:通过接口和抽象类抽离共性,简化复杂性。 **Java的OOP便于理解和解决复杂系统问题。**
30 3
|
26天前
|
Java 开发者
Java面向对象编程(OOP)的四个主要概念
【6月更文挑战第19天】Java OOP的基石是封装、抽象、继承和多态。封装是通过类隐藏数据细节;抽象简化复杂性,用接口和抽象类实现;继承让子类从父类继承属性和行为,促进代码重用;多态一个接口可有多种形态,分编译时和运行时。这些概念支持灵活且可扩展的软件设计。
21 1
|
29天前
|
Java
Java 面向对象编程大揭秘:子类如何“继承”父类,摇身一变成为“新贵”?!
【6月更文挑战第16天】Java中的继承允许子类从父类继承特性与功能,如`Dog`继承`Animal`,重写`makeSound`方法,展现独特行为。同样,`Circle`继承`Shape`,定制`draw`方法以绘制圆形。继承提高了代码复用和灵活性,使子类能基于父类基础创新,如同接力赛中父类传递接力棒,子类创造新辉煌。在Java世界,继承是构建复杂项目的关键机制,有待深入探索。
|
2月前
|
Java 编译器 数据库
滚雪球学Java(40):解读Java面向对象编程中的方法和继承,打造可维护的代码库
【5月更文挑战第15天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
35 4
滚雪球学Java(40):解读Java面向对象编程中的方法和继承,打造可维护的代码库
|
2月前
|
Java
深入探索Java语言的面向对象编程
深入探索Java语言的面向对象编程
|
2月前
|
Java 编译器
Java面向对象编程:构造方法详解
Java面向对象编程:构造方法详解
37 2