【nowcoder】笔试强训Day5

news2024/11/26 7:52:17

目录

一、单选题

二、多选题

三、编程题

3.1统计回文

3.2连续最大和


一、单选题

1.下面的程序 编译运行后,在屏幕上显示的结果是()

public class Test {
    public static void main(String args[]) {
        int x, y;
        x = 5 >> 2;
        y = x >>> 2;
        System.out.println(y);
    }
}

A 0

B 2

C 5

D 80

>>表示有符号右移,5 >> 2 相当于 5除于2两次,等于1 ,>>> 表示无符号右移,高位用0 填充,0001右移两位 0000。

所以正确答案是

2.以下代码结果是什么?

public class foo {
    public static void main(String sgf[]) {
        StringBuffer a=new StringBuffer("A");
        StringBuffer b=new StringBuffer("B");
        operate(a,b);
        System.out.println(a+"."+b);
    }
    static void operate(StringBuffer x,StringBuffer y) {
        x.append(y);
        y=x;
    }
}

A 代码可以编译运行,输出“AB.AB”。

B 代码可以编译运行,输出“A.A”。

C 代码可以编译运行,输出“AB.B”。

D 代码可以编译运行,输出“A.B”。

作对这道题的关键是要理解Java的值传递,关于值传递和引用传递的解释如下:

值传递:是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。

引用传递:是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。

这道题中a、b(是引用的副本,Java中没有引用传递)传入operate()函数中,但最后a指向的对象的值发生了变化,而b指向的对象的值没有发生变化,这是因为x.append(y),直接将b加入了a中,改变了a指向的对象的值,而y=x;并没有改变b指向对象的值,指向将y指向了x所指向的对象(之前y和b指向同一个对象)。

所以正确答案是 C 

3. 在JAVA中,假设A有构造方法A(int a),则在类A的其他构造方法中调用该构造方法和语句格式应该为()

A this.A(x)

B this(x)

C super(x)

D A(x)

在类的其他构造方法中调用该构造方法的语句格式是this(变量)。在子类中调用父类的有参构造是super(变量)。

所以正确答案是 B 

4.下面代码的运行结果是()

public static void main(String[] args){
    String s;
    System.out.println("s="+s);
}

 A 代码编程成功,并输出”s=”

B 代码编译成功,并输出”s=null”

C 由于String s没有初始化,代码不能编译通过。

D 代码编译成功,但捕获到NullPointException异常

在main函数中的s变量属于局部变量必须初始化才能使用,否则编译会不通过。

所以正确答案是 C 

5. 装箱、拆箱操作发生在: ()

A 类与对象之间

B 对象与对象之间

C 引用类型与值类型之间

D 引用类型与引用类型之间 

装箱是将值类型装换成引用类型的过程;拆箱就是将引用类型转换成值类型的过程。

所以正确答案是 C 

6.一个以”.java”为后缀的源文件

A 只能包含一个类,类名必须与文件名相同

B 只能包含与文件名相同的类以及其中的内部类

C 只能有一个与文件名相同的public类,可以包含其他类

D 可以包含任意类 

一个以”.java”为后缀的源文件只能有一个与文件名相同的public类,可以包含其他类 。

所以正确答案是 C 

7.下列哪个说法是正确的()

A ConcurrentHashMap使用synchronized关键字保证线程安全

B HashMap实现了Collction接口

C Array.asList方法返回java.util.ArrayList对象

D SimpleDateFormat是线程不安全的

ConcurrentHashMap在JDK1.7的时候,使用Segment这个数据结构,利用锁分段技术保证了线程安全,JDK1.8的时候,Segment这个数据结构就废了,开始使用Synchronized+CAS保证线程安全。但是内部类中并没有重写涉及结构性变化的方法,所以一旦调用结构性变换的函数,例如add,会出现运行时异常UnsupportedOperationException。

HashMap没有实现Collection,Map和Collection是集合框架中独立的两大接口。

Arrays.asList返回的也是ArrayList,不过这是个Arrays中的内部类,实现了List接口,继承了AbstractList。

DateFormat这个接口的实现类都是不安全的。

所以正确答案是 D 

8.以下说法错误的是()

A 虚拟机中没有泛型,只有普通类和普通方法

B 所有泛型类的类型参数在编译时都会被擦除

C 创建泛型对象时请指明类型,让编译器尽早的做参数检查

D 泛型的类型擦除机制意味着不能在运行时动态获取List中T的实际类型

虚拟机中没有泛型,只有普通类和普通方法。有泛型类的类型参数在编译时都会被擦除。创建泛型对象时请指明类型,让编译器尽早的做参数检查。

Java泛型是使用擦除来实现的,这意味着当你在使用泛型时,任何具体的类型信息都被擦除了,你唯一知道的就是你在使用一个对象。因此List和List在运行时实际上是相同的类型。这两种类型都被擦除成它们的“原生”类型,即List。

所以正确答案是 D 

9.指出以下程序运行的结果是

public class Example{
    String str=new String("good");
    char[]ch={'a','b','c'};
    public static void main(String args[]){
        Example ex=new Example();
        ex.change(ex.str,ex.ch);
        System.out.print(ex.str+" and ");
        System.out.print(ex.ch);
    }
    public void change(String str,char ch[]){
        //引用类型变量,传递的是地址,属于引用传递。
        str="test ok";
        ch[0]='g';
    }
}

A good and abc

B good and gbc

C test ok and abc

D test ok and gbc 

这道题和第二题是一样的,ch指向的对象的值发生了变化,而str指向的对象的值没有发生变化。

所以正确答案是 B 

二、多选题

10.下列有关JAVA异常处理的叙述中正确的是()

A finally是为确保一段代码不管是否捕获异常都会被执行的一段代码

B throws是用来声明一个成员方法可能抛出的各种非运行异常情况

C final用于可以声明属性和方法,分别表示属性的不可变及方法的不可继承

D throw是用来明确地抛出一个异常情况

finally块在异常中是为确保一段代码不管是否捕获异常都会被执行的一段代码。throws是用来声明一个成员方法可能抛出的各种非运行异常情况。 throw是用来明确地抛出一个异常情况。

final用于类意味着说明该类无法被继承,用于方法则说明该方法无法被覆盖,用于变量则说明属性不可变(可用于静态和非静态属性),但多和staic连用,表示常量。

所以正确答案是 A、B、D 

三、编程题

3.1统计回文

例如: A = “aba”,B = “b”。这里有4种把B插入A的办法: * 在A的第一个字母之前: "baba" 不是回文 * 在第一个字母‘a’之后: "abba" 是回文 * 在字母‘b’之后: "abba" 是回文 * 在第二个字母'a'之后 "abab" 不是回文 所以满足条件的答案为2

 在本题中创建了一个S_true方法,用于判断在某位置加入了一个字符后这个字符串是否是回文的,即判断sb.charAt(j)==sb.charAt(sb.length()-1-j)即可,若有一个不是那么返回false,证明在这个位置不能放。在每一个位置都试一次,统计true的个数。

import java.util.Scanner;
public class Main {
        public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s1 = sc.next();
        String s2 = sc.next();
        int count = 0;
        for (int i = 0; i <= s1.length(); i++) {
            Boolean a = S_true(i,s1,s2);
            if(a){
                count++;
            }
        }
        System.out.println(count);
    }
    public static Boolean S_true(int i,String s,String s2){
        StringBuilder sb = new StringBuilder(s);
        sb.insert(i,s2);
        for (int j = 0; j < sb.length(); j++) {
            if(sb.charAt(j)==sb.charAt(sb.length()-1-j)){
                continue;
            }else{
                return false;
            }
        }
        return true;
    }
}

3.2连续最大和

一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3

 在本题中创建两个变量sum和max使他们都等于num[0],然后进入循环从数组下标为1的数开始遍历,然后比较sum+num[1]和num[1],那么新的sum就等于大的那一个,如果sum比max还那么就将max置换为sum。一直循环直到数组结束。

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] num = new int[n];
        for (int i = 0; i < n; i++) {
            num[i] = sc.nextInt();
        }
        int max = num[0];
        int sum = num[0];
        for(int i = 1;i<n;i++){
            sum = Math.max(sum+num[i],num[i]);
            if(sum>=max){
                max = sum;
            }
        }
        System.out.println(max);
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker入门以及常见的命令

目录 1. 什么是docker 2. docker的核心组件 3. docker的安装 3.1 安装的先决条件 3.2.1 ubuntu安装docker 3.2.2 CentOS安装docker 3.3 配置镜像加速器 4. 镜像常用操作 4.1 搜索镜像 4.2 镜像下载 4.3 查看宿主机中的镜像 4.3 删除镜像 5. 容器常用命令 5.1 运行…

#Z1243. 完美数

一&#xff0c;题目描述 一个数是完美的&#xff0c;仅当它等于它的因数中比它小的所有数之和。 例如&#xff1a;28124714&#xff0c;所以 28 是完美的。 由此我们可以定义一个数的不完美值 F(N)&#xff0c;代表 N和比 N 小的所有 N 的因数之和的差的绝对值。 例如&…

c# 服务

是什么 Microsoft Windows 服务&#xff08;过去称为 NT 服务&#xff09;允许用户创建可在其自身的 Windows 会话中长时间运行的可执行应用程序。 这些服务可在计算机启动时自动启动&#xff0c;可以暂停和重启&#xff0c;并且不显示任何用户界面。 这些功能使服务非常适合在…

metrics-server监控主机资源

使用metrics-server实现主机资源监控获取metrics-server资源清单文件修改metrics-server资源清单文件部署metrics-server资源清单文件验证及授权获取metrics-server资源清单文件 直接使用命令来获取资源清单文件 wget https://github.com/kubernetes-sigs/metrics-server/rele…

车用DCDC双路输出电源模块规格书

产品名称&#xff1a;非隔离稳压双路输出车用电源模块 产品型号&#xff1a;LM36J40W2EH 典型特征值&#xff1a;24V/8V(3A)&5V(2A) u 产品概述 LM36J40W2EH模块电源是一款非隔离型双路输出的开关稳压器。它采用集成IC设计&#xff0c;使用一进两出的接线方式&#xff…

【Html圣诞树】2022年的圣诞节了,祝大家节日快乐。

目录 1. 效果展示2. 源代码1. 效果展示 是最近在互联网上很火的一个效果。 是带有背景音乐的,而且背景音乐支持选择,也支持自定义。 2. 源代码 美丽的圣诞树.html <!DOCTYPE html> <html lang="en"

从零学习 InfiniBand-network架构(十) —— IB协议中全局ID

从零学习 InfiniBand-network架构&#xff08;十&#xff09; —— IB协议中全局ID &#x1f508;声明&#xff1a; &#x1f603;博主主页&#xff1a;王_嘻嘻的CSDN主页 &#x1f511;未经作者允许&#xff0c;禁止转载 &#x1f6a9;本专题部分内容源于《InfiniBand-network…

设备指示灯开关状态识别检测系统 yolov5

设备指示灯开关状态识别检测系统是基于yolo网络深度学习模型&#xff0c;对现场画面进行实时监测识别。自动识别仪表示数或开关状态。我们使用YOLO(你只看一次)算法进行对象检测。YOLO是一个聪明的卷积神经网络(CNN)&#xff0c;用于实时进行目标检测。该算法将单个神经网络应用…

Python中使用zip函数的七重境界

1. 引言 Python中有一些内置函数&#xff0c;可以使我们的代码非常优雅。zip 函数就是其中之一&#xff0c;但是zip 函数的使用对于初学者来说不是很直观&#xff0c;有时容易出错。因此本文将从7个层次来由浅入深地来探讨强大的zip 函数的概念、用法和技巧。 闲话少说&#x…

用HTML写一个2023跨年动画代码(烟花+自定义文字+背景音乐+雪花+倒计时)

*2022年圣诞节到来啦&#xff0c;很高兴这次我们又能一起度过~ 文章目录一、前言二、跨年烟花三、效果展示五、HTML源码一、前言 时光荏苒&#xff0c;白驹过隙。 2022这一年又在忙碌中度过了&#xff0c;过去的一年&#xff0c;我们同努力&#xff0c;我们共欢笑&#xff0c;…

ContentProvider基础知识

ContentProvider基础知识 1.ContentProvider入门 1.简介 不同程序之间的数据交换&#xff0c;不同app之间的数据共享学会如何操作数据学会如何监听数据变化学会URI,URImatcher&#xff0c;ContentUris的如何使用2.基本使用 A应用&#xff0c;使用ContentProvider的子类进行暴漏…

RabbitMQ 第二天 高级 8 RabbitMQ 应用问题

RabbitMQ 【黑马程序员RabbitMQ全套教程&#xff0c;rabbitmq消息中间件到实战】 文章目录RabbitMQ第二天 高级8 RabbitMQ 应用问题8.1 消息可靠性保障8.1.1 消息补偿8.2 消息幂等性保障8.2.1 乐观锁机制第二天 高级 8 RabbitMQ 应用问题 8.1 消息可靠性保障 在RabbitMQ的使…

pytorch【线性回归】【逻辑回归】【softmax回归】

文章目录零、前置函数线性相乘均方误差损失函数梯度下降函数数据的生成函数一、线性回归1.手动实现线性回归2.调库实现线性回归1.定义我们线性回归的模型2.定义我们的误差函数3.定义优化方法4.模型的训练5.开始训练6.查看模型的参数7.计算我们模型的当前的均方误差二、逻辑回归…

【5G RLC】AM模式的数据传输详解

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

Linux内核死锁检测工具——Lockdep

文章目录前言配置内核简单的AB-BA死锁案例实际项目中的死锁前言 死锁是指两个或多个进程因争夺资源而造成的互相等待的现象&#xff0c;如进程A需要资源X&#xff0c;进程B需要资源Y&#xff0c;而双方都掌握对方所需要的资源&#xff0c;且都不释放&#xff0c;这会导致死锁。…

【圣诞快乐】如何用代码画一颗圣诞树?

文章目录一、前言二、创意角度三、java swing版 效果展示四、java swing版 实现步骤&代码五、springboot项目banner版 效果展示六、springboot项目banner版 实现步骤七、 linux shell界面打印版 效果展示八、 linux shell界面打印版 实现步骤一、前言 一年一度的圣诞节来了…

Allegro如何设置差分对内等长规则

Allegro如何设置差分对内等长规则 Allegro上可以对差分网络设置对内等长规则,方便把P/N网络进行等长处理,以下面这对USB为例 具体操作如下 打开Constraint Manage找到这对USB网络

vue3 antd table表格的样式修改(一)调整table表格每行(row)行高过高问题

vue3 antd项目实战——修改ant design vue table组件的默认样式&#xff08;调整每行行高&#xff09;知识调用场景复现实际操作解决a-table表格padding过宽知识调用 文章中可能会用到的知识链接vue3ant design vuets实战【ant-design-vue组件库引入】css样式穿透&#xff08;…

RV1126笔记十三:实现RTMP多路拉流

若该文为原创文章,转载请注明原文出处。 一、介绍 通过RV1126实现RTMP的多路拉流,并在屏幕上显示出来,这里涉及到ffmpeg几个重要知识点,和RV1126如何在屏幕分屏显示。 二、流程图 流程和单路拉流类似,这里只是涉及拉取后的图像需要解码缩放,在合成分屏显示出来。 具体…

【完整】分类模型中类别不均衡问题解决

目录 1. 数据类别不均衡问题 2. 解决办法 过采样&#xff1a; 欠采样&#xff1a; ensemble 方法&#xff1a; 修改损失函数&#xff1a; 梯度调和机制&#xff1a; Dice Loss&#xff1a; 标签平滑&#xff1a; 3. 类别不均衡问题loss设计 4. 梯度调和机制GHM Gradi…