【nowcoder】笔试强训Day3

news2024/11/18 23:42:53

目录

一、选择题

二、编程题

2.1在字符串中找出连续最长的数字串

2.2 数组中出现次数超过一半的数字


一、选择题

1.以下代码运行输出的是

public class Person{
    private String name = "Person";
        int age=0;
    }
public class Child extends Person{
    public String grade;
    public static void main(String[] args){
        Person p = new Child();
        System.out.println(p.name);
    }
}

A 输出:Person

B 没有输出

C 编译出错

D 运行出错

Person中的name是private修饰符修饰的,是私有变量,在类的外部是不可见的。因为子类作用域中访问不到父类的私有变量,无法为其生成正确的字节码。并且一个Java文件中不能有两个public类。

所以正确答案是

2.以下程序的输出结果为

class Base{
    public Base(String s){
        System.out.print("B");
    }
}
public class Derived extends Base{
    public Derived (String s) {
        System.out.print("D");
    }
    public static void main(String[] args){
        new Derived("C");
    }
}

A BD

B DB

C C

D 编译错误 

在子类的有参构造方法中并没有调用父类的有参构造,父类无法产生对象,所以会产生比爱你一错误。

所以正确答案是 D 

3.下面关于构造方法的说法不正确的是 ()

A 构造方法也属于类的方法,可以创建对象的时候给成员变量赋值

B 构造方法不可以重载

C 构造方法没有返回值

D 构造方法一定要和类名相同

构造方法也属于类的方法,有无参构造也有有参构造,并且在一个类中两种构造可以都存在,可以创建对象的时候给成员变量赋值 ,所以构造方法可以重载。构造方法一定要和类名相同,并给构造方法没有返回值。

所以正确答案是 B 

4.在异常处理中,以下描述不正确的有()

A try块不可以省略

B 可以使用多重catch块

C finally块可以省略

D catch块和finally块可以同时省略

在异常处理中try块是不可以省略的,catch和finally块只可以省略一个,并给catch块可以写很多个。

所以正确答案是 D 

5.下列描述中,错误的是

A SQL语言又称为结构化查询语言

B java中”static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问

C 面向对象开发中,引用传递意味着传递的并不是实际的对象,而是对象的引用,因此,外部对引用对象所做的改变不会反映到所引用的对象上

D java是强类型语言,javascript是弱类型语言 E 面向对象的三大特性包括:封装,继承,多态

SQL即为Structured Query Language,结构化查询语言。static关键字修饰的元素在类加载时,可以用类名字直接调用访问。java是强类型语言,javascript是弱类型,面向对象的三个特性刚好是封装,继承,多态。引用传递确实传递的是对象的引用地址,那么外部对引用对象做出的该改变,肯定会映射到对象本身上。
所以正确答案是 C 

6.下列哪种说法是正确的?

A 实例方法可直接调用超类的实例方法

B 实例方法可直接调用超类的类方法

C 实例方法可直接调用本类的类方法

D 实例方法可直接调用其他类的实例方法

超类也称为父类。在本题中,如果是私有的,ABD都不能访问。

所以正确答案是 C 

7.有以下代码片段: 请问输出的结果是()

String str1="hello";
String str2="he"+ new String("llo");
System.out.println(str1==str2);

A true

B 都不对

C null

D false

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

equals方法进行的是两个类对象的属性值比较。

这道题中考察的就是对于==的理解,str2虽然和str1的字符串相同,但是创建的是新的对象,两个对象地址不同。
所以正确答案是 D 

8.程序读入用户输入的一个值,要求创建一个自定义的异常,如果输入值大于 10 ,使用 throw 语句显式地引发异常,异常输出信息为 ”something’swrong!” , 语句为()

A if(i>10)throw new Exception("something’swrong!");

B if(i>10)throw Exception e("something’swrong!");

C if(i>10) throw new Exception e("something’swrong!");

D if(i>10)throw Exception( "something’swrong!");

thorw的使用格式是:throw new Exception("语句"),throws需要用try-catch或者继续通过throws向上输出。并且throw用在方法内部,程序员在出现异常时,自己产生异常对象并向外抛出,一般搭配自定义异常使用。

所以正确答案是

9.以下关于集合类 ArrayList 、 LinkedList 、 HashMap 描述错误的是()

A HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值

B ArrayList和LinkedList均实现了List接口

C 添加和删除元素时,ArrayList的表现更佳

D ArrayList的访问速度比LinkedList快 

HashMap实现了Map接口,它允许任何类型的键和值对象,并允许将null用作键或值。ArrayList和LinkedList均实现了List接口。添加和删除元素时,LinkedList的表现更佳,ArrayList还需要考虑扩容并且还需要将元素前移和后移。  ArrayList的访问速度比LinkedList快,LinkedList需要遍历访问。

所以正确答案是 C 

10.在创建派生类对象,构造函数的执行顺序()

A 基类构造函数,派生类对象成员构造函数,派生类本身的构造函数

B 派生类本身的构造函数,基类构造函数,对象成员构造函数

C 基类构造函数,派生类本身的构造函数,派生类对象成员构造函数

D 对象成员构造函数,基类构造函数,派生类本身的构造函数

如果一个类B继承了另一个类A,则B称为派生类,A类为基类。

对象创建时代码的加载顺序为:静态代码 --> 非静态代码 --> 构造方法。

若继承了父类,则加载顺序为:父类的静态的代码 --> 子类的静态的代码 --> 父类内部非静态代码 --> 父类的构造方法 --> 子类的非静态代码 --> 子类的构造方法。

所以本题顺序是基类构造函数->派生类对象成员构造函数->派生类本身的构造函数。

正确答案是

二、编程题

2.1在字符串中找出连续最长的数字串

现有一个字符串str,输出字符串str中的最长的数字子串。

 创建两个字符串,遍历输入的字符串,如果遇到数组就加入s1,如果碰到不是数字,就判断s2和s1的长度,如果s1大就将s2替换为s1,s1清空,继续遍历。

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int i = 0;
        int k = 0;
        String s1 = "";
        String s2 = "";
        for (int j = 0; j < str.length(); j++) {
            if(str.charAt(j)<='9'&&str.charAt(j)>='0'){
                s1 = s1+str.charAt(j);
            }else {
                if(s1.length()>s2.length()){
                    s2 = s1;
                }
                s1 = "";
            }
            if(j==str.length()-1&&s1.length()>s2.length()){
                s2 = s1;
            }
        }
        System.out.println(s2);
    }
}

2.2 数组中出现次数超过一半的数字

给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。

 有两种方法再次暴力解法和哈希解法,再次讲述哈希解法。

将数组中的数都加入map中,并且记录它的次数,有一次就加一次,然后随即判断次数是否大于数组长度的一半,大于则直接返回该数值,没有最后返回0。

    public int MoreThanHalfNum_Solution (int[] numbers) {
        Map<Integer,Integer> map = new HashMap<>();
        int i = numbers.length/2;
        for (int j : numbers) {
            map.put(j, map.getOrDefault(j,0)+1);
            if(map.get(j)>i){
                return j;
            }
        }
        return 0;
    }

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

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

相关文章

Python json常见用法

目录 导包 api介绍 常见用法 json转python内置对象 字典对象 数组对象 文件读取 python内置对象转json 字典转json 字典转json&#xff08;压缩存储&#xff09; 字典转json&#xff08;美化输出&#xff09; 文件读取 自定义对象 普通对象 嵌套对象 补充支持 …

设计一个亿级高并发系统架构 - 12306火车票核心场景DDD领域建模

“ 架设一个亿级高并发系统&#xff0c;是多数程序员、架构师的工作目标。 许多的技术从业人员甚至有时会降薪去寻找这样的机会。但并不是所有人都有机会主导&#xff0c;甚至参与这样一个系统。今天我们用12306火车票购票这样一个业务场景来做DDD领域建模。” 开篇 要实现软件…

数据库系统概论第七章(数据库设计)知识点总结(1)—— 概述

本专栏收录了数据库的知识点&#xff0c;而从本文起&#xff0c;将讲述有关于数据库设计有关知识点&#xff0c;提供给有需要的小伙伴进行学习&#xff0c;本专栏地址可以戳下面链接查看 &#x1f388; 数据库知识点总结&#xff08;持续更新中&#xff09;&#xff1a;【数据库…

了解学习node中著名的co模块原理,生成器+promise实现async+await

***内容预警*** 新手内容&#xff0c;菜鸟必看&#xff0c;大佬请绕道 首先 co 是一个npm第三方模块&#xff0c;我们需要npm install 之后才能使用它。 作为一个菜鸟我相信你肯定没有用过这个模块&#xff0c;但是据说这个模块很有名&#xff0c;那么我们就有必要来了解一下它…

35. 池化层 / 汇聚层 代码实现

1. 池化层 在下面的代码中的pool2d函数&#xff0c;我们实现汇聚层的前向传播。 这类似于之前文章中的的corr2d函数。 然而&#xff0c;这里我们没有卷积核&#xff0c;输出为输入中每个区域的最大值或平均值。 from torch import nn from d2l import torch as d2l# X是输入&…

实习------Java基础

基础语法 基本数据类型&#xff08;熟悉&#xff09; Java有哪些数据类型 定义&#xff1a;Java语言是强类型语言&#xff0c;对于每一种数据都定义了明确的具体的数据类型&#xff0c;在内存中分配了不同大小的内存空间。 boolean类型占多少个字节&#xff1f; boolean类型…

【docker】手把手教学docker与docker-compose安装

目录 1、docker安装 2、docker-compose安装 1、docker安装 方式一 https://fanjufei.blog.csdn.net/article/details/123500511https://fanjufei.blog.csdn.net/article/details/123500511 方式二 通过命令行安装。 sudo apt install docker.io sudo systemctl status doc…

linux篇【12】:计算机网络<后序>

一.tcp接入线程池&#xff08;使用线程池&#xff09; 1.tcp初步接入线程池 我们设置了对应的任务是死循环&#xff0c;那么线程池提供服务&#xff0c;就显得有不太合适。我们给线程池抛入的任务都是短任务 因为他并没有访问任何类内成员&#xff0c;所以可以把执行方法提到…

智能服务机器人简介

文章大纲 服务机器人上升趋势明显服务机器人核心技术与应用场景目标跟踪人脸识别算法SLAM 即时定位与地图构建(Simultaneous Localization and Mapping,简称SLAM)老人看护手势识别多模态与机器人参考文献与学习路径服务机器人上升趋势明显 服务机器人充分融合机器视觉、语音…

【Redis—持久化】

1.持久化机制 持久化就是把内存的数据写到磁盘中&#xff0c;防止服务宕机导致内存数据丢失。 2.AOF AOF概述 AOF持久化&#xff1a;以独立日志就把该命令。以追加的方式写入到一个文件里&#xff0c;然后重启 Redis 的时候&#xff0c;先去读取这个文件里的命令达到恢复目…

K8S-存储-Volume

问题 容器磁盘上的文件的生命周期是短暂的&#xff0c;这就使得在容器中运行重要应用时会出现一些问题。首先&#xff0c;当容器崩溃 时&#xff0c;kubelet 会重启它&#xff0c;但是容器中的文件将丢失——容器以干净的状态&#xff08;镜像最初的状态&#xff09;重新启动。…

IDEA 控制台日志中文乱码解决方案

老白新学JAVA,初用IDEA&#xff0c;控制台打印中文总是乱码&#xff0c;网上找了好多解决方法&#xff0c;都不好用&#xff0c;下面记录解决过程。 1.修改idea64.exe.vmoptions &#xff0c;打开最后一行增加如下代码 idea快捷方式右键->属性->打开文件所有位置&#x…

Redis 性能优化 —— 内存碎片

文章目录一、内存碎片场景描述二、内存碎片概念解析三、内存碎片产生原因四、内存碎片如何判断五、内存碎片解决方案六、内存碎片扩展技能一、内存碎片场景描述 作为内存数据库&#xff0c;内存空间的大小对于 Redis 来说是至关重要的。内存越多意味着存储的数据也会越多&#…

多线程下对象的析构问题

多线程遇上对象析构是个很麻烦的问题&#xff0c;这里我用一个多线程的单例模式去演示一下对象析构的问题 懒汉模式&#xff0c;加锁&#xff0c;线程安全 懒汉模式&#xff1a;需要的时候new一个对象&#xff0c;不需要的时候delete &#xff08;线程安全的懒汉&#xff09;单…

服务注册配置中心Nacos

文章目录一. 前言二. 下载安装1. 下载安装包2. Windows环境安装3. Linux环境安装1. 单击模式启动2. 集群模式启动3. 远程web控制4. 注册为系统服务三. 基本使用1. 添加依赖2. 服务注册3. 配置实例集群属性4. 实例权重负载均衡5. 环境隔离6. 临时实例与非临时实例四. Nacos配置管…

Gradle学习笔记之文件操作

文章目录本地文件文件集合文件树文件拷贝归档文件Gradle中的文件操作方式有五种&#xff1a;本地文件、文件集合、文件树、文件拷贝和归档文件。 本地文件 比较简单&#xff0c;API跟java中的完全一致&#xff1a; task("test_file") {doFirst {def f1 file(&quo…

史上最强,这份在各大平台获百万推荐的Java核心手册实至名归

又逢“金九银十”&#xff0c;年轻的毕业生们满怀希望与忐忑&#xff0c;去寻找、竞争一个工作机会。已经在职的开发同学&#xff0c;也想通过社会招聘或者内推的时机争取到更好的待遇、更大的平台。 然而&#xff0c;面试人群众多&#xff0c;技术市场却相对冷淡&#xff0c;…

再学C语言13:字符串(4)——scanf函数

一、scanf函数的使用 scanf函数功能&#xff1a;把输入的字符串转换成各种形式&#xff08;整数、浮点数、字符、字符串&#xff09; scanf函数是printf函数的逆操作 scanf函数与printf函数一样使用控制字符串和参数列表 控制字符串指出输入将被转换成的格式 主要区别在参…

Qt实现表格控件

一、概述 最近在研究QTableView支持多级表头的事情&#xff0c;百度了下网上资料还是挺多的。实现的方式总的来说有2种&#xff0c;效果都还不错&#xff0c;最主要是搞懂其中的原理&#xff0c;做到以不变应万变。 实现多级表头的方式有以下两种方案 行表头和列表头都是用一…

网络空间安全——利用 CVE-2017-0213 提权

利用 CVE-2017-0213 提权 VE-2017-0213 是一个比较冷门的COM 类型混淆 (Type Confusion)漏洞。巧妙的利用该漏洞&#xff0c;可以实现本地的提权。该漏洞由著名的Google Project zero 发现。 下面就简单演示一下利用CVE-2017-0213漏洞简单提权&#xff0c; 首先下载CVE-2017…