【java】笔试强训Day1

⛳选择题

1.在 Java 中,存放字符串常量的对象属于 (        )类对象

A、Character                        B、String               C、StringBuffer                    D、Vector

🙈大家觉得答案是什么呢


🙉答案是 B 啦~

2.已知如下类定义:

class Base {
    public Base (){
        //...
    }
    public Base ( int m ){
        //...
    }
    public void fun( int n ){
        //...
    }
}
public class Child extends Base{
    // member methods
}

如下哪句可以正确地加入子类中?(        )

A private void fun( int n ){ //...}
B void fun ( int n ){ //... }
C protected void fun ( int n ) { //... }
D public void fun ( int n ) { //... }

🙈大家觉得答案是什么呢


🙉答案是 D 啦~

🔎思路:此题主要的考点是————子类与父类的重写————方法返回值、方法名、参数列表均均相同

❗❗注意,想要构成重写,必须有 子类的访问修饰限定大于父类的访问修饰限定

public>protected>包访问权限(默认访问权限)>private

3.假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?(        )


public class A {
    public int i;
    static String s;
    void method1(){};
    static void method2(){
 
    }
}
 
public class Main{
    public static void main(String[] args) {
        A a = new A();
        }
}

A. System.out.println(a.i);              B. a.method1();            C. A.method1();              D. A.method2();

🙈大家觉得答案是什么呢


🙉答案是 D 啦~

🔎思路:i 是 A 的一个属性,s 是 A 的静态方法,method1 是 A 的一个实例方法,method2 是 A 的一个实例方法

实例方法和变量调用是 实例对象.方法名/属性/变量

静态方法和变量调用是 这个类.方法/属性/变量

静态成员变量, 静态方法可以直接通过类名或对象去调用, 因此ABD正确, 非静态方法, 必须通过对象名去调用, 因此C不正确.

4.类声明种,声明一个类不能再被继承的关键字是(        )

A public               B abstract                C final                   D static

🙈大家觉得答案是什么呢


🙉答案是 C 啦~

🔎思路:此题考查的是关键字的使用

public访问修饰符,可以被继承

abstract修饰的类是抽象类,可以被继承,同时子类还必须重写抽象类种的所有抽象方法。

final 修饰的类不可以被继承,final修饰的变量不可以更改

static修饰的类是一个静态类,可以被继承

5.方法通常存储在进程中的哪一区中(        )

A 堆区                  B 栈区                C 全局区                  D 方法区

🙈大家觉得答案是什么呢


🙉答案是 D 啦~

6.在基本Java类型中,如果不明确指定,整数型的默认是(         )类型,带小数的默认为(         ) 类型

A int float                     B int double                    C long float                       D long double

🙈大家觉得答案是什么呢


🙉答案是 B 啦~

7.下列代码的执行结果是:

public class Test3{
    public static void main(String[] args) {
        System.out.println(100%3);
		System.out.println(100%3.0);
    }
}

A 1和1                            B 1和1.0                           C 1.0和1                         D 1.0和1.0

🙈大家觉得答案是什么呢


🙉答案是 B 啦~

8.关于下列程序段的输出结果,说法正确的是(        )

public class MyClass{
    static int i;
    public static void main(String[] argv){
        System.out.println(i);
    }
}

A 有错误,变量i没有初始化                    B null                       C 1                           D 0

🙈大家觉得答案是什么呢


🙉答案是 D 啦~

🔎思路:在myclass类中,i是一个静态的成员变量,最终输出的是 i , 成员变量如果没有初始化,默认值为0.

9.不考虑反射,关于私有访问修饰符private修饰的成员变量,以下说法正确的是(         )

A 可以三种类所引用:该类自身、与他在同一包中的其他类,在其他包中的该类的子类

B 可以被两种类访问和引用:该类本身,该类的所有子类

C 只能被该类自身所访问和修改

D 只能被同一个包中的类访问

🔎思路:本题考查的 值访问修饰符的访问权限的大小

private只能被该类自身
default可以被同一个包 下的所有类访问
protected可以被同一个包下的所有类和其他包下的子类访问
public可以被同一个项目的所有类访问。

📝编程题

1.组队竞赛

牛客网链接:组队竞赛

牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。
例如:
一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3
一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3
一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2
为了让比赛更有看点,牛牛想安排队伍使所有队伍的水平值总和最大。
如样例所示:
如果牛牛把6个队员划分到两个队伍
如果方案为:
team1:{1,2,5}, team2:{5,5,8}, 这时候水平值总和为7.
而如果方案为:
team1:{2,5,8}, team2:{1,5,5}, 这时候水平值总和为10.
没有比总和为10更大的方案,所以输出10.

输入描述:

输入的第一行为一个正整数n(1 ≤ n ≤ 10^5)
第二行包括3*n个整数a_i(1 ≤ a_i ≤ 10^9),表示每个参赛选手的水平值.

输出描述:

输出一个整数表示所有队伍的水平值总和最大值.

 🔎思路:想要最大即选一个最小,一个最大,另外一个是次最大值,这个时候才能取到输出最大值,就需要先排序

保证每组的第二个值取到能选择的最大值就可以,我们每次尽量取最大,但是最大的数不可能是中位数,所以退而求其次,取 每组中第二大的。

import java.util.Arrays;
import java.util.Scanner;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int n = scanner.nextInt();
            int[] array = new int[3 * n];
            for (int i = 0; i < 3 * n; i++) {
                array[i] = scanner.nextInt();
            }
            Arrays.sort(array);
            int sum = 0;
            for (int i = 0; i < n; i++) {
                sum = sum + array[array.length - 2*(i+1)];
            }
            System.out.println(sum);
        }
    }

第二种:假设有3n个数,先使用排序之后,分为3组,选最小的一个和最大值的一个及次最大值的一个

最小的肯定是前n个数,那么对于最大值和此最大值在后 n 到 3n 之中,从n开始,次最大值与下一个次最大值相差2

        for (int i = n; i < 3*n; i+=2) { 
            sum = sum + array[i];
        }
    import java.util.Arrays;
    import java.util.Scanner;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int n = scanner.nextInt();
            int[] array = new int[3 * n];
            for (int i = 0; i < 3 * n; i++) {
                array[i] = scanner.nextInt();
            }
            Arrays.sort(array);
            int sum = 0;
            for (int i = n; i < 3*n; i+=2) {
                sum = sum + array[i];
            }
            System.out.println(sum);
        }
    }

2.删除公共字符

牛客网链接:删除公共字符

描述:

输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”

输入描述:

每个测试输入包含2个字符串

输出描述:

输出删除后的字符串

 第一种:使用 HashMap

去重联想到HashMap和HashSet

HashMap 可以使用两个引用,一个存放需要对比的字符串,一个存放每个字符出现的次数

HashSet 自带去除重复元素功能,在解决去除字符串中重复元素时效率最高

🔎思路:使用HashMap,首先遍历需要除去元素的字符串(str2),将每个字符串存放在HashMap中,并对其更新出现次数 ,接下来遍历需要检查的字符串,在放入前查询HashMap中对应字符的value值,如果元素没有出现,将其加入到输出字符串中,若value值大于等于1,则需要舍去 ,最后输出字符串

在进行存放输出字符串时可以采用String或者StringBuilder,在此处建议使用后者, 因为String在进行“+=”操作时会产生许多的临时变量,而StringBuer可以在原字符串的基础上进行添加操作

HashMap中采用的是引用的方法,在判断value值时不能使用“==0”进行判空操作,应该使用“==null”进行操作。

    port java.util.HashMap;
    import java.util.Scanner;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str1 = scanner.nextLine();
        String str2 = scanner.nextLine();

        HashMap<Character,Integer> hashMap = new HashMap<>();

        StringBuffer str3 = new StringBuffer();

        for (int i = 0; i < str2.length(); i++) {
            if ( hashMap.get(str2.charAt(i)) == null) {
                hashMap.put(str2.charAt(i), 1);
            }
        }

        for (int i = 0; i < str1.length(); i++) {
            if (hashMap.get(str1.charAt(i)) == null) {
                str3.append(str1.charAt(i));
            }
        }
        System.out.println(str3);
    }

第二种:

    import java.util.Scanner;
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str1 = scanner.nextLine();
        String str2 = scanner.nextLine();
        char[] array = str1.toCharArray();
        for (int i = 0; i < array.length; i++) {
            if (!str2.contains(String.valueOf(array[i]))) {
                System.out.print(array[i]);
            }
        }
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/2261.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GPT-4发布:人工智能新高度,以图生文技术震撼,短时间内挤爆OpenAI模型付费系统

“GPT-4&#xff0c;起飞&#xff01;”今日凌晨1点&#xff0c;OpenAI正式推出史上最强大的GPT-4文本生成AI系统 GPT-4&#xff1a;人工智能的新里程碑 你可能已经听说过GPT-3&#xff0c;它是一种能够生成自然语言文本的强大模型&#xff0c;可以用来回答问题、写文章、编程…

【Java SE】变量的本质

目录一. 前言二. 变量(variable)2.1 性质2.2 变量类型2.2.1 核心区别2.3 变量的使用三. 总结一. 前言 一天一个Java小知识点&#xff0c;助力小伙伴更好地入门Java&#xff0c;掌握更深层次的语法。 二. 变量(variable) 2.1 性质 变量本质上就是代表一个”可操作的存储空间”…

STL库中list的迭代器实现痛点分析

前文本篇文章准备换个模式&#xff0c;之前都是先详解模拟实现&#xff0c;但是模拟实现的基本逻辑大多数老铁都是明白的&#xff0c;所以我们这次主要讲解STL库中list的独特性&#xff0c;也就是模拟实现中的重难点文末有模拟实现的源码一&#xff0c;list实现的特殊类list实现…

【pytorch】使用deepsort算法进行目标跟踪,原理+pytorch实现

目录deepsort流程一、匈牙利算法二、卡尔曼滤波车速预测例子动态模型的概念卡尔曼滤波在deepsort中的动态模型三、预测值及测量值的含义deepsort在pytorch中的运行deepsort流程 DeepSORT是一种常用的目标跟踪算法&#xff0c;它结合了深度学习和传统的目标跟踪方法。DeepSORT的…

WireShark如何抓包,各种协议(HTTP、ARP、ICMP)的过滤或分析,用WireShark实现TCP三次握手和四次挥手

WireShark一、开启WireShark的大门二、如何抓包 搜索关键字2.1 协议过滤2.2 IP过滤2.3 过滤端口2.4 过滤MAC地址2.5 过滤包长度2.6 HTTP模式过滤三、ARP协议分析四、WireShark之ICMP协议五、TCP三次握手与四次挥手5.1 TCP三次握手实验5.2 可视化看TCP三次握手5.3 TCP四次挥手5.…

PCL 使用ICP点云拼接

一、简介 ICP算法详解——我见过最清晰的解释_负壹的博客-CSDN博客 两个点集&#xff0c;source和target&#xff0c;target不变&#xff0c;source经过旋转&#xff08;Rotation&#xff09;和平移&#xff08;Translation&#xff09;甚至加上尺度&#xff08;Scale&#x…

大聪明教你学Java | 深入浅出聊 SpringBoot 中的 starter 机制

前言 &#x1f34a;作者简介&#xff1a; 不肯过江东丶&#xff0c;一个来自二线城市的程序员&#xff0c;致力于用“猥琐”办法解决繁琐问题&#xff0c;让复杂的问题变得通俗易懂。 &#x1f34a;支持作者&#xff1a; 点赞&#x1f44d;、关注&#x1f496;、留言&#x1f4…

网络安全横向移动指南

在网络安全方面&#xff0c;了解威胁参与者的工具、技术和思维过程非常重要。 一旦对手获得对网络的初始访问权限&#xff0c;横向移动允许他们通过破坏目标组织网络中的其他主机来扩展访问权限并保持持久性。 威胁行为者可以收集有关公司用户活动和凭据、重要数据位置的信息…

Spark - 继承 FileOutputFormat 实现向 HDFS 地址追加文件

目录 一.引言 二.源码浅析 1.RDD.saveAsTextFile 2.TextOutputFormat 3.FileOutputFormat 三.源码修改 1.修改文件生成逻辑 - getRecordWriter 2.允许目录存在 - checkoutputSpecs 3.全部代码 - TextOutputFormatV2 四.追加存储代码实战 五.总结 一.引言 Output d…

关于STM32用DMA传输UART空闲中断中接收的数据时无法接收数据问题以及解决办法

一、stm32 cube ide 配置 1、DMA串口接收数据的ide配置如下图所示 串口1相关的设置及printf函数的使用&#xff0c;这里没放&#xff0c;建议先实现串口打印功能 2、相关的知识点 普通模式和循环模式的区别在于&#xff0c;普通模式下&#xff0c;DMA只会接收一次数据&#x…

微前端(无界)

前言&#xff1a;微前端已经是一个非常成熟的领域了&#xff0c;但开发者不管采用哪个现有方案&#xff0c;在适配成本、样式隔离、运行性能、页面白屏、子应用通信、子应用保活、多应用激活、vite 框架支持、应用共享等用户核心诉求都或存在问题&#xff0c;或无法提供支持。本…

DS18B20温度传感器简介和1-Wire驱动程序

目录DS18B20简介DS18B20的两种供电方式64位ROM温度传感器1-Wire Bus简介DS18B20通信时序初始化ROM相关命令(后续包含任何数据交换的操作)功能相关命令(后续包含任何数据交换的操作)单个DS18B20读取温度值驱动多个DS18B20读取温度值驱动DS18B20简介 DS18B20数字温度计提供9位到…

学习系统编程No.7【进程替换】

引言&#xff1a; 北京时间&#xff1a;2023/3/21/7:17&#xff0c;这篇博客本来昨天晚上就能开始写的&#xff0c;但是由于笔试强训的原因&#xff0c;导致时间用在了做题上&#xff0c;通过快2个小时的垂死挣扎&#xff0c;我充分意识到了自己做题能力的缺陷和运用新知识的缺…

致远OA敏感信息泄露漏洞合集(含批量检测POC)

文章目录前言敏感信息泄露A6 status.jsp 信息泄露漏洞漏洞描述漏洞影响网络测绘漏洞复现POC 批量检测getSessionList.jsp Session泄漏漏洞漏洞描述网络测绘批量检测POC致远OA 帆软组件 ReportServer 目录遍历漏洞漏洞描述漏洞影响网络测绘POC(批量检测)A6 createMysql.jsp 数据…

Java stream性能比较

环境 Ubuntu 22.04IntelliJ IDEA 2022.1.3JDK 17CPU&#xff1a;8核 ➜ ~ cat /proc/cpuinfo | egrep -ie physical id|cpu cores physical id : 0 cpu cores : 1 physical id : 2 cpu cores : 1 physical id : 4 cpu cores : 1 physical id : 6 cpu cores : 1 physical id …

浏览器工作原理

一、JavaScript 的历史 JavaScript&#xff08;简称JS&#xff09;Web前端开发的脚本语言。 它诞生1995年&#xff0c;由网景公司的 Brendan Eich 开发。最初&#xff0c;JavaScript 被设计用于在网页上嵌入动态内容和交互式功能。 1996年&#xff0c;JavaScript 1.1 成为国…

C++虚函数与多态

C虚函数与多态虚函数抽象类纯虚函数虚析构函数多态虚函数的几个问题纯虚函数和ADT虚函数 virtual修饰的成员函数就是虚函数&#xff0c; 1.虚函数对类的内存影响&#xff1a;增加一个指针类型大小&#xff08;32位和64位&#xff09; 2.无论有多少个虚函数&#xff0c;只增加一…

【ansible】模块介绍超详解(下)

目录 六&#xff0c;软件包管理 1&#xff0c;yum_repository模块 &#xff08;1&#xff09;yum_repository模块常用选项 &#xff08;2&#xff09;yum_repository模块案例 2&#xff0c;mount模块 &#xff08;1&#xff09;mount模块选项 &#xff08;2&#xff09;mount模…

大数据简介

大数据概论和职业规划Linux服务器系统Hadoop概论HDFS分布式文件系统Hive数据仓库SparSQL指令Zepplin框架Sqoop框架Superset数据可视化大数据数仓实战-didi出行大数据概念大数据特点大数据应用场景大数据分析业务步骤大数据职业规划大数据学习路线。大数据概念数据&#xff1a;世…

基于YOLOv5的舰船检测与识别系统(Python+清新界面+数据集)

摘要&#xff1a;基于YOLOv5的舰船检测与识别系统用于识别包括渔船、游轮等多种海上船只类型&#xff0c;检测船舰目标并进行识别计数&#xff0c;以提供海洋船只的自动化监测和管理。本文详细介绍船舰类型识别系统&#xff0c;在介绍算法原理的同时&#xff0c;给出Python的实…