【nowcoder】笔试强训Day9

news2024/11/24 7:16:29

目录

一、选择题

二、编程题

2.1另类加法

2.2走方格的方案数


一、选择题

1.下面程序的输出是:()

String x="fmn";
x.toUpperCase();
String y=x.replace('f','F');
y=y+"wxy";
System.out.println(y);

A FmNwxy

B fmnwxy

C wxyfmn

D Fmnwxy

String x = “fmm”;“fmn”是在常量的不可变对象。x.toUpperCase()将字符串全部变成大写,在堆中new一个“FMN”对象,但无任何引用指向它。

所以x仍然是 "fmn",y=x.replace('f','F'),意味着将x中的f换成F,所以y ="Fmn" 然后y=y+"wxy",所以y = "Fmnwxy"。

所以正确答案是 

2.在 java 中,一个类可同时定义为许多同名的方法,这些方法的形式参数个数,类型或顺序各不相同,传回的值可能各不相同,这种面向对象的特性称为()

A 隐藏

B 覆盖

C 重载

D 无此特性

一个类可同时定义为许多同名的方法,这些方法的形式参数个数,类型或顺序各不相同,传回的值可能各不相同,这种面向对象的特性称为重载。

所以正确答案是 C  

3.关于 JAVA 堆,下面说法错误的是()

A 所有类的实例和数组都是在堆上分配内存的

B 对象所占的堆内存是由自动内存管理系统回收

C 堆内存由存活和死亡的对象,空闲碎片区组成

D 数组是分配在栈中的

所有类的实例和数组都是在堆上分配内存的,对象所占的堆内存是由自动内存管理系统回收,堆内存由存活和死亡的对象,空闲碎片区组成。数组的引用存在栈内存中,而数组对象保存在堆里面。

所以正确答案是 

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

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

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

C 只能有一个与文件名相同的public类,可以包含其他非public类(不考虑内部类)

D 可以包含任意public类

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

所以正确答案是 C  

5.JAVA语言的下面几种数组复制方法中,哪个效率最高?

A for循环逐一复制

B System.arraycopy

C Arrays.copyOf

D 使用clone方法

效率:System.arraycopy > clone > Arrays.copyOf >  for循环逐一复制

所以正确答案是 B  

6.()仅包含方法定义和常量值。

A 接口

B 变量

C 单元

D 成员

接口仅包含方法定义和常量值,方法不包含大括号,不能进行详细描述,需要有子类进行拓展。

所以正确答案是 A  

7.对文件名为Test.java的java代码描述正确的是()

class Person {
    String name = "No name";
    public Person(String nm) {
        name = nm;
    }
}
class Employee extends Person {
    String empID = "0000";
    public Employee(String id) {
        empID = id;
    }
}
public class Test {
    public static void main(String args[]) {
        Employee e = new Employee("123");
        System.out.println(e.empID);
    }
}

A 输出:0000

B 输出:123

C 编译报错

D 输出:No name 

在子类和父类如果都有有参构造,那么必须在子类中调用父类的有参构造给他初始化,否则会编译报错。

所以正确答案是 C  

8.有关下述Java代码描述正确的选项是____。

public class TestClass {
    private static void testMethod(){
        System.out.println("testMethod");
    }
    public static void main(String[] args) {
        ((TestClass)null).testMethod();
    }
}

A 编译不通过

B 编译通过,运行异常,报NullPointerException

C 编译通过,运行异常,报IllegalArgumentException

D 编译通过,运行异常,报NoSuchMethodException

E 编译通过,运行异常,报Exception

F 运行正常,输出testMethod

本题是可以正常运行的,如果将static去掉就会有空指针异常,static表示静态,直接用类名就能调用方法。

所以正确答案是 F  

9.下列java程序的输出结果为____。

public class Example{
    String str=new String("hello");
    char[]ch={'a','b'};
    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]='c';
    }
}

A hello and ab

B hello and cb

C hello and a

D test ok and ab

E test ok and cb

F test ok and c

change方法中改变了str形参的值,并没有改变主方法中str引用的对象,而第二行直接改变了ch数组引用对象,所以会对主方法中的ch数组也造成改变。

所以正确答案是 B  

10.下列 java 程序输出结果为______。

int i=0;
Integer j = new Integer(0);
System.out.println(i==j);
System.out.println(j.equals(i));

A true,false

B true,true

C false,true

D false,false

E 对于不同的环境结果不同

F 程序无法执行

“==”进行的是两个变量数值的比较,对于基本数据类型来说比较的就是基本数值是否相等,对于引用数据类型来说比较的是两个引用是否指向同一个对象(即地址是否相同)。

equals方法进行的是两个类对象的属性值比较,若类的对象需要具体比较属性值是否相等需要复写Object类中提供的equals方法。
基本数据类型与引用数据类型进行比较时,引用数据类型会进行拆箱,然后与基本数据类型进行值的比较所以i==j返回的是true。

引用数据类型与基本数据类型进行比较,基本数据类型会进行自动装箱,与引用数据类型进行比较,Object中的equals方法比较的是地址,但是Integer类已经重写了equals方法,只要两个对象的值相同,则可视为同一对象,具体看API文档,所以这归根到底也是值的比较。所以j.equals(i)返回的是true。

此题考察了所以正确答案是 B  

二、编程题

2.1另类加法

给定两个int A和B。编写一个函数返回A+B的值,但不得使用+或其他算数运算符

 本题需要返回A+B的值并且不能使用算术运算符,首先排除特殊情况如果B为0的话,那么结果就是A,然后进入循环,int sum = A^B; 使A和B(按位异或^两个二进制位相同返回0,不相同返回1)得到sum,然后使A和B按位与&(如果两个二进制位都为1,则返回1,否则返回0)然后将结果左移位<<得到tmp,然后将sum值赋给A,将tmp值赋给B。直到B<=0。

import java.util.*;
public class UnusualAdd {
    public int addAB(int A, int B) {
        if(B==0){
            return A;
        }
        while(B!=0){
            int sum = A^B;
            int tmp = (A&B)<<1;
            A = sum;
            B = tmp;
        }
        return A;
    }
}

2.2走方格的方案数

请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。 注:沿棋盘格之间的边缘线行走 数据范围: 1≤n,m≤8

 在本题中一共有四种可能性。

第一种情况是n = 1,m = 1,只有一个小方块,那么只有m+n = 2 两种走法。

 第二种情况是m = 1

第三种情况是n = 1,第二种情况和第三种情况都是有m+n种走法。

 第四种情况就是m和n都不是1,那么这种时候就需要进入递归,返回g(n,m-1)+g(n-1,m),将整个方块拆分为两块进行运算。直到上述三种情况才结束递归。

import java.util.Scanner;
public class Main {
        public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        System.out.println(g(n,m));
    }
    public static int g(int n,int m){
        if(m==1&&n==1){
            return m+n;
        }
        if(m==1||n==1){
            return m+n;
        }
        return g(n,m-1)+g(n-1,m);
    }
}

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

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

相关文章

决胜「年货时代」:一场关于零食的品质突围

“都说冰糖葫芦儿酸&#xff0c;酸里面它裹着甜&#xff1b;都说冰糖葫芦儿甜&#xff0c;可甜里面它透着那酸。” 1995年春节&#xff0c;伴随着《冰糖葫芦》唱响大街小巷&#xff0c;小贩骑着自行车&#xff0c;后车座的草靶子上插满冰糖葫芦&#xff0c;或摆在集市上&#…

大数据系列——什么是hive?hive用来干什么的?hive常见问题是啥?

目录 一、什么是hive 二、为什么要使用Hive 三、Hive与Hadoop的关系 四、Hive与HDFS的关系 五、Hive与传统数据库区别 六、Hive中的数据存储是怎样的 七、对hive进行增删改查 八、排序逻辑 九、hive不支持update数据的解决方案 十、Hive中支持的分区类型有两种 十…

Linux部署前端Vue项目

Linux部署前端Vue项目 1 部署到tomcat上 1.1 部署Vue项目 打包项目 在命令行终端&#xff0c;输入命令&#xff0c;打包项目&#xff1a; npm run build将生成的dist文件夹下的所有内容复制到tomcat的webapps下 "推荐":在webapps下新建一个文件夹&#xff0c;例…

【互信息驱动:可逆神经网络】

Mutual Information-driven Pan-sharpening &#xff08;互信息驱动的全色锐化&#xff09; 全色锐化的目的是综合纹理丰富的全色图像和多光谱图像的互补信息&#xff0c;生成纹理丰富的多光谱图像。尽管已有的全色锐化方法取得了显著的进步&#xff0c;但它们并没有明确地加…

动态圣诞树-HTML

<!DOCTYPE HTML PUBLIC> <html> <head> <title>圣诞树</title> <meta charset"utf-8" > <style> html, body { width: 100%; height: 100%; margin: 0; padding: 0; border: 0; } div { margin: 0; padding: 0; border: 0…

docker高级篇:实战-自己开发的微服务怎么在docker上面运行?

通过前面的一系列学习,我们已经知道怎么制作dockerfile了。那么,本篇文章,咱们就把自己写的spring boot的demo项目,部署在docker上面。 案例目标: 我们自己开发的微服务怎么在docker上面运行呢? 1:通过IDEA新建一个普通的微服务模块 2:通过dockerfile发布微服务部署…

通过 api 和 keycloak 理解OIDC认证

参考资料 通过Keycloak API理解OAuth2与OpenID Connect 什么是keycloak如何在nodejs中使用它 如何通过 OIDC 协议实现单点登录&#xff1f; https://jwt.io/#encoded-jwt OIDC认证的简单demo 单点登录&#xff08;Single Sign On&#xff09;是目前比较流行的企业业务整合…

cut与分层抽样(Stratified Sampling)

个人觉得&#xff0c; 把分层抽样称为“分类采样”会更贴切一些。通常最基本的采样手段是&#xff1a;随机抽样&#xff0c;但是在很多场景下&#xff0c;随机抽样是有问题的&#xff0c;举一个简单的例子&#xff1a;如果现在要发起一个啤酒品牌知名度的调查问卷&#xff0c;我…

二、let进阶、const、全部变量与顶层对象

二、let进阶、const、全部变量与顶层对象 一、let进阶 let创建了块级作用域&#xff0c;每次循环时内部的块级作用域都会去访问外层块级作用域中的变量i&#xff0c;而外层块级作用域中的变量i都不同&#xff0c;所以打印0-9&#xff1b;类似于闭包&#xff1a;内部函数返回到…

MySQL【Primary key】主键约束

关键字: [ primary key ] 作用&#xff1a;用来唯一标识表中的一行记录 特点&#xff1a;1.唯一性约束非空约束 唯一且为空 唯一性约束&#xff1a;不允许出现重复值 非空约束&#xff1a;不允许出现空值&#xff0c;但不是 NULL 2.一个表最多只能有一个主键约束&#x…

35岁之后软件测试工程师靠什么养家?我还能继续做测试。

35岁真是一个焦虑的年龄&#xff0c;我一个在北京软件测试的朋友从一个大公司裸辞以后&#xff0c;年前应聘到了一家小公司做技术总监&#xff0c;因为疫情的爆发&#xff0c;公司倒闭了&#xff0c;他失业了。为了养家我这个朋友不得不冒着被病毒感染的危险开始送外卖。作为一…

Springboot整合Liquibase初始化数据库

一、前言 liquibase是一个数据库变更的版本控制工具。项目中通过liquibase解析用户编写的liquibase的配置文件,生成sql语句&#xff0c;并执行和记录。执行是根据记录确定sql语句是否曾经执行过&#xff0c;和配置文件里的预判断语句确定sql是否执行。 本篇文章给大家介绍spr…

RabbitMQ浏览器UI插件

Awesome RabbitMQ Management 该插件中文意思是"很棒的 RabbitMQ 管理",是对原生RabbitMQ的UI图形界面进行增强的一款插件。 可在Google Chrome商店中下载安装 概述 原文介绍 Awesome RabbitMQ Management RabbitMQ queues view can become unusable with many qu…

微服务 Spring Boot Mybatis-Plus 整合 EasyPOI 实现 Excel 一对多 导入

文章目录⛄引言一、EasyPOI 实现Excel 的一对多导入 -- 代码实现⛅需求说明⚡核心源码实现二、Easy POI 实现一对多导入 -- 测试三、效果图展示⛵小结⛄引言 Excel导入 是 开发中 很常用的 功能 &#xff0c;本篇讲解 如何使用 Spring Boot MyBatis -Plus 整合 EasyPOI 实现E…

2023年淘宝天猫年货节超级红包哪里领?

2023年淘宝天猫年货节超级红包哪里领? 姐妹们在淘宝年货节活动就就就要开始预热模式了&#xff0c;时间是12月27日中午12点&#xff0c;大家最爱的项目一定是领取超级红包了。这不&#xff0c;2023年的年货节就要开启了。但是&#xff0c;很多小伙伴还不知道&#xff0c;淘宝…

<生产者、消费者问题>——《Linux》

目录 1. 生产者消费者模型 1.1 为何要使用生产者消费者模型 1.2 生产者消费者模型优点 2.基于BlockingQueue的生产者消费者模型 2.1 BlockingQueue 2.2 C queue模拟阻塞队列的生产消费模型 3.POSIX信号量 4.基于环形队列的生产消费模型 后记&#xff1a;●由于作者水平…

windows中docker修改镜像与容器存放目录(不想放c盘)

查看状态 wsl --list -v 先退出docker deskop 查看状态 wsl --list -v 关闭wsl wsl --shutdown docker的镜像与容器存放目录在此处 新建一个你想要存放的目录&#xff0c;比如我存到H盘这个地方 分别将c盘那两个文件夹&#xff08;data和distro&#xff09;的内容打包压缩到H盘…

php使用redis进行消息发布订阅

php使用redis进行消息发布订阅前置条件消费者订阅subscribe.php生产者发送消息publish.php执行消费者订阅&#xff0c;开始阻塞获取消息执行生产者&#xff0c;开始发送消息查看消费者终端前置条件 已经安装了php的redis扩展 消费者订阅subscribe.php <?php ini_set(def…

【Java基础】Java日志—什么是日志?什么是Log4j?Log4j入门案例及配置

目录 一、什么是日志&#xff1f; 二、为什么会有日志&#xff1f; 四、入门案例&#xff1a;Log4j日志信息输出到控制台 步骤与实现&#xff1a; 步骤1&#xff1a;拷贝坐标 步骤2&#xff1a;拷贝配置文件 log4j.properties 步骤3&#xff1a;编写测试类 写到最后 &…

TensorRt(3)mnist示例中的C++ API

目前sample中mnist提供了至少caffe、onnx的预训练模型&#xff0c;在TensorRT经过优化生成engine后再进行infer&#xff0c;两种模型的加载处理略有不同&#xff0c;做出简单api处理说明。 最后尝试使用最少的代码来实现整个流程。 文章目录1、主要的C API 定义2、minst示例2.1…