Java经典笔试题—day11

news2024/11/24 2:56:15

Java经典笔试题—day11

  • 🔎选择题
  • 🔎编程题
    • 🥝最近公共祖先
    • 🥝最大连续bit数
  • 🔎结尾

🔎选择题

(1)下面哪个标识符是合法的?

A.9HelloWorld
B._Hello World
C.Hello*World
D.Hello$World

D

Java中标识符由数字, 字母和下划线( _ ), 美元符号( $ )或人民币符号( ¥ )组成
规定标识符的开头不能是数字, 且标识符不能是关键字

(2)以下java程序代码,执行后的结果是()

java.util.*
HashMap<String, String> map = new HashMap<>();	
map.put("name",null);		
map.put("name","Jack");	
System.out.println(map.size());

A.0
B.null
C.1
D.2

C

map 会将重复出现的 Key 值所对应的 Value 值进行更新
map.put(“name”,null), map 中存放的 Key 值为 name, Value 值为 null
map.put(“name”,“Jack”), map 中已经含有 name, 将其所对应的 Value 值进行更新为 Jack
此时 map 的大小仍然为 1

(3)Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述错误的是()

A.ArrayList和LinkedList均实现了List接口
B.ArrayList的访问速度比LinkedList快
C.添加和删除元素时,ArrayList的表现更佳
D.HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值

C

A.
在这里插入图片描述
图片来自网络
B.ArrayList 是顺序表(数组实现), LinkedList 是链表, 在给定下标的情况下, 顺序表的访问速度 > 链表的访问速度
C.
添加元素时, 如果不是在末尾添加元素, 顺序表需要将要添加元素的位置及其后面的位置挪开, 然后才能添加元素
删除元素时, 顺序表需要将要删除元素的后面的元素逐个向前挪动一位(覆盖前一位置的元素)
对于链表, 添加元素只需将前后两个节点之间断开, 并分别连接需要添加元素的节点即可
对于链表, 删除元素只需将要删除元素的前后节点与该节点断开连接, 再将前后节点进行连接即可
D.HashMap实现Map接口,允许将null用作键或值

(4)以下描述正确的是 ( )

A.CallableStatement是PreparedStatement的父接口
B.PreparedStatement是CallableStatement的父接口
C.CallableStatement是Statement的父接口
D.PreparedStatement是Statement的父接口

B

PreparedStatement是CallableStatement的父接口
Statement是PreparedStatement的父接口在这里插入图片描述

(5)下面有关重载函数的说法中正确的是()

A.重载函数必须具有不同的返回值类型
B.重载函数形参个数必须不同
C.重载函数必须有不同的形参列表
D.重载函数名可以不同

C

重载的特点

  • 方法名相同
  • 参数列表不同(参数类型, 顺序, 个数)

(6)下列关于容器集合类的说法正确的是?

A.LinkedList继承自List
B.AbstractSet继承自Set
C.HashSet继承自AbstractSet
D.WeakMap继承自HashMap

C

在这里插入图片描述
图片来自网络
A. List 是接口, 接口是被实现, 不是继承
B. Set 是接口, 接口是被实现, 不是继承
C.

D.
在这里插入图片描述

(7)ArrayList list = new ArrayList(20);中的list扩充几次 ( )

A.0
B.1
C.2
D.3

A

此处写入的 20 表示初始化容量为 20
若什么都不写, 则使用系统默认的容量 10
在这里插入图片描述
参考 ArrayList 源码
在这里插入图片描述
初始化容量 > 0, new Object 数组, 该操作并未涉及到扩容

(8)以下程序的输出结果是?

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 static 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

B

change() 方法是引用传递
进入 change() 方法的形参 str 最初指向的是 “good” 的地址
当执行到 str = “test ok” 时, 形参 str 指向的是 “test ok” 的地址
而实参 str 仍然指向的是 “good” 的地址
ch[0] = ‘g’ 是将 ch 所指向地址的值进行了修改, 即 char[] ch = {‘g’, ‘b’, ‘c’}
但 ch 所指向的对象未发生改变
在这里插入图片描述
在这里插入图片描述

(9)下面的方法,当输入为2的时候返回值是多少?

public static int getValue(int i) {
        int result = 0;
        switch (i) {
        case 1:
            result = result + i;
        case 2:
            result = result + i * 2;
        case 3:
            result = result + i * 3;
        }
        return result;
}

A.0
B.2
C.4
D.10

D

(10)提供Java存取数据库能力的包是( )

A.java.sql
B.java.awt
C.java.lang
D.java.swing

A

B.包含用于创建用户界面和绘制图形图像的所有分类
C.提供了 Java 中的基础类, 包括基本Object类, Class类, String类, 基本类型的包装类, 基本的数学类等等最基本的类
D.是一个用于开发Java应用程序用户界面的开发工具包

🔎编程题


🥝最近公共祖先


题目描述

将一棵无穷大满二叉树的结点按根结点一层一层地从左往右编号,根结点编号为1。现给定a,b为两个结点。设计一个算法,返回a、b最近的公共祖先的编号。注意其祖先也可能是结点本身

在这里插入图片描述

解题思路

在这里插入图片描述
以该图为例

  • 因为根节点为 1, 所以子节点 = 父节点 / 2
  • 当a, b 为同一节点时, 其最近公共祖先就是自己
  • 当a, b 在同一侧时
    • a = 2,b = 4, 最近公共祖先为2
    • a = 4, b = 5, 最近公共祖先为2
  • 当a, b 不在同一侧时
    • a = 2, b = 3, 最近公共祖先为1

根据上面的信息, 我们需要判断a, b 节点中较大的节点
通过较大的节点 / 2, 得到该节点的父节点, 并判断父节点是否与a, b 中较小的节点相等
如果相等, 则该节点即为最近公共祖先
如果不等, 则继续下一轮循环

public static int getLCA(int a, int b) {
      // write code here
      while(a != b) {
          if(a > b) {
              a /= 2;
          } else {
              b /= 2;
          }
      }
      return a;
}

📢题目链接
链接: link


🥝最大连续bit数


题目描述

求一个int类型数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1

数据范围:数据组数:1≤t≤5 ,1≤n≤500000

进阶:时间复杂度:O(logn) ,空间复杂度:O(1)

输入描述

输入一个int类型数字

输出描述

输出转成二进制之后连续1的个数

在这里插入图片描述

解题思路

枚举

枚举输入数字的连续1的个数, 记录为 count
当前位的数字不是1时, 比较 count 和 maxCount 中的较大值赋值给 maxCount

//最大连续bit数
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();

        int maxCount = getMAX(num);
        System.out.println(maxCount);
    }

    private static int getMAX(int num) {
        int maxCount = 0,count = 0;
        for (int i = 31; i >= 0; i--) {
            if((num & (1 << i)) != 0) {
                count++;
            } else {
                maxCount = Math.max(maxCount,count);
                count = 0;
            }
        }
        return Math.max(maxCount, count);
    }
}

📢题目链接
链接: link


🔎结尾

创作不易,如果对您有帮助,希望您能点个免费的赞👍
大家有什么不太理解的,可以私信或者评论区留言,一起加油

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

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

相关文章

操作符讲解1---C语言

目录 前言&#xff1a; 1.什么是操作符 2.算术操作符 3.移位操作符 4.位操作符 5.逻辑操作符 5.1逻辑与 5.2逻辑或 5.3练习 5.4逻辑非 前言&#xff1a; 博主这几天都在积累知识&#xff0c;俗话说&#xff1a;”只有多输入才能有输出”。在写博客之前&#xff0c;也…

一文1000字从0到1实现Jenkins+Allure+Pytest的持续集成

一、配置 allure 环境变量 1、下载 allure是一个命令行工具&#xff0c;可以去 github 下载最新版&#xff1a;https://github.com/allure-framework/allure2/releases 2、解压到本地 3、配置环境变量 复制路径如&#xff1a;F:\allure-2.13.7\bin 环境变量、Path、添加 F:\…

【硬核】C语言指针是什么?深入浅出带你掌握C语言指针!

指针与底层硬件联系紧密&#xff0c;使用指针可操作数据的地址&#xff0c;实现数据的间接访问&#xff0c;本文章内容如下 1、C语言指针的作用 2、计算机的存储机制 3、如何定义指针 4、如何操作指针 5、数组与指针的关系 6、指针使用中的一些注意事项 1、C语言指针有什么作用…

企业级架构设计原则(含架构管理原则、业务架构设计原则、应用架构设计原则、数据架构设计原则、技术架构设计原则)

Togaf中的架构原则是一组用于指导企业架构设计和决策的基本准则。这些原则旨在支持组织的目标、价值观和战略&#xff0c;并提供一致性、可持续性和可扩展性的架构方案。 Togaf中提供了一些常见的架构原则&#xff0c;比如&#xff1a;保持一致性&#xff1a;确保架构与组织的目…

MySQL 性能调优及生产实战篇(二)

前言数据结构HASHBinary Search Trees、AVL TreesRed/Black TreesB TreesB Trees 数据存储InnoDBMyISAM 索引优化索引匹配方式哈希索引组合索引聚簇、非聚簇索引覆盖索引 优化细节&#xff08;important&#xff09;数据库勿做计算尽量主键查询前缀索引索引扫描排序子查询范围列…

干货满满---90条简单实用的Python编程技巧

对于Python&#xff0c;想必大家都不陌生&#xff0c;自从它问世以来得到了广大编程爱好者的追捧和喜爱&#xff0c;但是再好的东西都需要讲究技巧和策略方法&#xff0c;才能达到事半功倍的效果&#xff0c;下面是我近几年的学习心得和总结&#xff0c;希望能对大家带来一定帮…

不懂就要问,现在的物联卡还有人用吗?

很多朋友私信小编&#xff0c;现在的物联卡还能买吗&#xff1f; 当然&#xff0c;对于企业设备来讲&#xff0c;物联卡是一直可以使用的&#xff0c;而且非常稳定。 如果是用在个人手机上面&#xff0c;可以说也是可以用的&#xff0c;只不过是使用时间长短的问题。 ​ 下面…

ChatGPT为企业应用赋能

chatgpt-on-wechat和bot-on-anything两个项目都支持企业微信部署&#xff0c;其中前者功能比较丰富&#xff0c;推荐&#xff01; 如需帮助&#xff0c;可以搜索wx&#xff1a;Youngerer 找到我&#xff01; 功能展示&#xff1a; ![在这里插入图片描述](https://img-blog.csd…

【Linux升级之路】3_Linux进程概念

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【Linux升级之路】 ✒️✒️本篇内容&#xff1a;认识冯诺依曼系统&#xff0c;操作系统概念与定位&#xff0c;深入理解进程概念&#xff08;了解PCB&…

C语言函数大全-- m 开头的函数(2)

C语言函数大全 本篇介绍C语言函数大全-- m 开头的函数 1. mkdirat 1.1 函数说明 函数声明函数功能int mkdirat(int dirfd, const char *pathname, mode_t mode);它是一个 Linux 系统下的系统调用函数&#xff0c;用于在指定目录下创建新的子目录 参数&#xff1a; dirfd &a…

推荐一个一键AI抠图网站

一键去除图片背景 在这个数字化的世界里&#xff0c;我们经常需要处理各种图片&#xff0c;无论是用于个人的社交媒体&#xff0c;还是用于商业的广告设计。 然而&#xff0c;图片处理往往需要专业的技能和复杂的软件&#xff0c;这对许多人来说可能是个挑战。但现在&#xf…

3. Python字符串

文章目录 一、修改字符串大小写1.1 将字符串中每个单词的首字母改为大写1.2 将字符串中所有的字母改为大写1.3 将字符串中所有的字母改为小写 二、拼接字符串三、添加空白3.1 使用制表符添加空白3.2 使用换行符添加空白3.3 制表符和换行符同时使用 四、删除空白4.1 仅去掉字符串…

redis单机安装

1. 安装gcc 2.下载并编译redis wget http://download.redis.io/releases/redis-7.0.4.tar.gz 直接下载到虚拟机中解压 编译 安装redis 执行命令&#xff1a; make install PREFIX/usr/local/redis/ &#xff0c;会将redis安装到指定目录下,在这个目录下会生产bin目录 在安…

《花雕学AI》人类推理能力对AI来说是什么?用ChatGPT来检验一下

”这里有一本书、九个鸡蛋、一台笔记本电脑、一个瓶子和一个钉子&#xff0c;请告诉我如何把它们稳定地堆叠在一起&#xff1f;“ 这是去年提出的一道测试推理能力的题目&#xff0c;当微软的计算机科学家开始试验一种新的AI系统时&#xff0c;他们要求AI解决这个难题&#xf…

【Java 并发编程】CAS 原理解析

CAS 原理解析 1. 什么是 CAS&#xff1f;1.1 悲观锁与乐观锁1.2 CAS 是什么&#xff1f; 2. CAS 核心源码3. CAS 实现原子操作的三大问题3.1 ABA 问题3.2 循环性能开销3.3 只能保证一个变量的原子操作 4. synchronized、volatile、CAS 比较 1. 什么是 CAS&#xff1f; 1.1 悲观…

物业企业多种类型合同,用泛微今承达实现统一数字化管理

随着物业业务的不断发展&#xff0c;物业服务越来越精细化、专业化&#xff0c;旨在为居民社区提供更便利的服务。 物业企业提供多种形态、全方位、立体式的综合服务&#xff0c;包括基础物业服务、业主增值服务(空间运营收入、房屋经纪、电商服务、社区金融、家政服务及养老服…

手撕-扫雷

一、前言-认识扫雷 二、打印菜单 三、创建棋盘并初始化 四、打印棋盘 五、布置雷 六、排查雷&#xff08;统计坐标周围雷的个数&#xff09; 七、扫雷代码全析&#xff08;game.h game.c test.c&#xff09; 铁汁们&#xff0c;今天给大家分享一篇扫雷游戏的实现&#…

Python快速批量修改图片尺寸

之前我们写过快速批量获取图片的大小&#xff0c;该文章链接在这里&#xff1a;Python每日一个知识点9----批量输出图片尺寸 今天我们分享一个快速批量修改图片尺寸的小脚本&#xff0c;我们一下看一下 先看一下目录结构&#xff1a; 文件夹&#xff1a;【原始图片】&#xf…

在阿里做了6年软件测试,4月无情被辞,想给划水的兄弟提个醒

先简单交代一下背景吧&#xff0c;某不知名 985 的本硕&#xff0c;17 年毕业加入阿里&#xff0c;以“人员优化”的名义无情被裁员&#xff0c;之后跳槽到了有赞&#xff0c;一直从事软件测试的工作。之前没有实习经历&#xff0c;算是6年的工作经验吧。 这6年之间完成了一次…

RabbitMQ 运维备忘录(一)

文章目录 1. 基础信息参考一些官方的链接单节点安装 RabbitMQ开启 web 端管理界面 2. 一些基本操作应用管理服务端口开放信息用户管理虚拟主机 vhost 管理web 界面管理队列信息查询交换器信息查询绑定关系的信息查询TCP/IP 连接信息查询信道信息查询消费者信息查询服务状态查询…