每日一练Day11

news2024/10/7 8:29:42

一、单选

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

A 9HelloWorld

B _Hello World

C Hello*World

D Hello$World

答案

D

解析:

  • Java标识符由字母、数字、_(下划线)、美元符号或人民币符号组成。
  • 不能由数字开头。
  • 关键字不能作为标识符

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

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

A 0

B null

C 1

D 2

答案

C

解析:map.size()返回 map 中元素的数量


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

A ArrayList和LinkedList均实现了List接口

B ArrayList的访问速度比LinkedList快

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

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

答案

C

解析:

ArrayList 插入和现有项的删除开销很大时间复杂度 O(n),除非在尾部 O(1)
LinkedList 插入和删除开销很小 时间复杂度 O(n),头部和尾部 O(1)
HashMap可以用null值和空字符串作为K,不过只能有一个


4. 以下描述正确的是

A CallableStatement是PreparedStatement的父接口

B PreparedStatement是CallableStatement的父接口

C CallableStatement是Statement的父接口

D PreparedStatement是Statement的父接口

答案

B

解析:

PreparedStatement 继承 Statement,CallableStatement 继承 PreparedStatement

PreparedStatemen 是用来执行sql语句的与创建Statement不


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

A 重载函数必须具有不同的返回值类型

B 重载函数形参个数必须不同

C 重载函数必须有不同的形参列表

D 重载函数名可以不同

答案

C


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

A LinkedList继承自List

B AbstractSet继承自Set

C HashSet继承自AbstractSet

D WeakMap继承自HashMap

答案

C

解析:

LinkedList 实现 List 接口
AbstractSet 实现 Set 接口


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

A 0

B 1

C 2

D 3

答案

A

解析:

  • ArrayList()构造一个初始容量为 10 的空列表。
  • ArrayList(Collection<? extends E> c)构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
  • ArrayList(int initialCapacity)构造一个具有指定初始容量的空列表。

调用的是第三个构造函数,直接初始化为大小为20的list,没有扩容,所以选择A


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

解析:输出 str 和 ch,此时 str 还是指向 "good" 的,ch 还是指向之前的数组,但是数组内容已经被改变, str 是按值传递的,而 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

解析:case 2、3 都没有 break,所以 2、3 都会进。


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

A java.sql

B java.awt

C java.lang

D java.swing

答案

A

解析:

A java.sql 包提供Java存取数据库能力
B java.awt 包是java图形界面的包
C java.lang 是java语言的核心好,lang是language的简写
D java.swing 是经过java封装的与操作系统无关的图形界面包


二、编程

1. 完善核心代码 标题:最近公共祖先 | 时间限制:3秒 | 内存限制:32768K | 语言限制:[Python, C++,

C#, Java]

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

测试样例:

2,3

返回:1

答案

满二叉树的子节点与父节点之间的关系为 root = child / 2,利用这个关系,如果 a != b,就让其中的较大数除以2, 如此循环直到 a == b。满二叉图,如下图所示

import java.util.*;

public class LCA {
    public int getLCA(int a, int b) {
        while(a != b){
            if(a > b){
                a /= 2;
            }else {
                b /= 2;
            }
        }
        return a;
    }
}

2. ACM编程题 标题:求最大连续bit数 | 时间限制:1秒 | 内存限制:32768K

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

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

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

输入描述:

输入一个int类型数字

输出描述:

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

示例1:

输入

200

输出

2

说明

200的二进制表示是11001000,最多有2个连续的1。

答案

方法 1: Java 直接用位运算符 &,用当前数字和 1 做“&”操作,如果结果是1,说明此时的二进制第一位为1,然后右移一位,直至数字为0。
注意java的 >> 是有符号右移,也就是说,负数用 >> 右移的话,会在左侧补1而不是0,这就会影响最终对1的计数。所以这里我们要使用无符号右移 >>>

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // 用位运算符& 1&1 = 1 一位一位的与1比较,比较后将n右1位
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int count = 0;
        int max = 0;
        while( n != 0){
            if( (n & 1) == 1){
                 count ++;
                 max = Math.max(max,count);
            }else{
                count = 0;
            }
             n >>>= 1;
        }
        System.out.print(max);
    }
}

方法 2:将数字转为二进制字符串,再将二进制字符串按 "0" 分割

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
         while (in.hasNextInt()) {
            int n = in.nextInt();
            // 转为二进制字符串
            String binaryStr = Integer.toBinaryString(n);
            // 分割
            String[] str = binaryStr.split("0");
            int max = 0;
            for(int i = 0; i < str.length;i++ ){
                if(str[i].length() > max){
                    max = str[i].length();
                }
            }
            System.out.print(max);
         }
    }
}

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

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

相关文章

#1024 程序员节 大图像中的小目标检测——基于YOLOV8+OnnxRuntime部署+滑动窗口+Zbar的条码检测研究

文章目录 前言1 训练一个YOLOV8的一维码检测模型2 创建滑动窗口2.1 模块导入与测试图片展示2.2 创建滑动窗口检测&#xff0c;窗口大小为&#xff08;640,640&#xff09;&#xff0c;滑动距离为640。对不足&#xff08;640&#xff0c;640&#xff09;的窗口进行填充 3 创建on…

并发编程-并发三大特性

并发三大特性 并发编程Bug源头&#xff1a;原子性、可见性和有序性问题。 原子性 一个或多个操作&#xff0c;要么全部执行且在执行过程中不被任何因素打断&#xff0c;要么全部不执行。 注意&#xff1a;不采取任何的原子性保障措施的自增操作并不是原子性的&#xff0c;比…

【题解 树形dp 拆位】 树上异或

「KDOI-06-S」树上异或 题目描述 给定一棵包含 n n n 个节点的树&#xff0c;第 i i i 个点有一个点权 x i x_i xi​。 对于树上的 n − 1 n-1 n−1 条边&#xff0c;每条边选择删除或不删除&#xff0c;有 2 n − 1 2^{n-1} 2n−1 种选择是否删除每条边的方案。 对于…

Vue中的响应式原理是如何实现的?

Vue中的响应式原理是通过使用Vue的响应式系统来实现的。这个系统依赖于JavaScript的Object.defineProperty方法&#xff0c;以及ES6的Proxy对象&#xff08;在Vue 3中&#xff09;。 下面是Vue中响应式原理的概述&#xff1a; 1&#xff1a;数据初始化&#xff1a; 在Vue组件…

【面试HOT100】链表树

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于LeetCodeHot100进行的&#xff0c;每个知识点的修正和深入主要参考…

Java面向对象(基础)--方法应用

文章目录 一、方法的重载介绍案例&#xff08;1&#xff09;案例1 练习&#xff08;1&#xff09;练习1&#xff08;2&#xff09;练习2&#xff08;3&#xff09;练习3&#xff08;4&#xff09;练习4 二、可变个数形参的方法介绍举例&#xff08;1&#xff09;举例1&#xff…

计算机组成原理 new07 真值和机器数 无符号整数 定点整数 定点小数 $\color{red}{Δ}$

文章目录 真值和机器数 无符号整数无符号整数的定义无符号整数的特征无符号整数的表示范围无符号整数的加法无符号数的减法 有符号整数(定点整数)有符号整数的定义原码原码的特点反码反码的特点补码补码的特点快速求解n位负数补码的方法为什么补码能够多表示一个范围(重点)变形…

java1.8新特性流

案例描述 今天跟着黑马程序员的视频&#xff0c;完成“瑞吉外卖”项目的菜品信息管理模块的时候&#xff0c;遇到了一个比较陌生的写法 用到了Java8的新特性 stream().map((item) -> {}).collect() List<DishDto> collect records.stream().map((item) -> {DishDt…

人工智能(5):深度学习简介

1 深度学习 —— 神经网络简介 深度学习&#xff08;Deep Learning&#xff09;&#xff08;也称为深度结构学习【Deep Structured Learning】、层次学习【Hierarchical Learning】或者是深度机器学习【Deep Machine Learning】&#xff09;是一类算法集合&#xff0c;是机器学…

MySQL表操作—存储

建表&#xff1a; mysql> create table sch( -> id int primary key, -> name varchar(50) not null, -> glass varchar(50) not null -> ); Query OK, 0 rows affected (0.01 sec) 插入数据&#xff1a; mysql> insert into sch (id,name,…

【微信小程序】6天精准入门(第5天:利用案例与后台的数据交互)附源码

一、什么是后台交互&#xff1f; 在小程序中&#xff0c;与后台交互指的是小程序前端与后台服务器之间的数据通信和请求处理过程。通过与后台交互&#xff0c;小程序能够获取服务器端的数据、上传用户数据、发送请求等。 小程序与后台交互可以实现数据的传输、用户认证、实时消…

Babylonjs学习笔记(一)——搭建基础场景

React typescript umi Babylonjs 搭建基础场景 yarn add --save babylonjs babylonjs-loaders 1、封装基础场景 import { Engine, Scene } from "babylonjs"; import { useEffect,useRef,FC } from "react"; import "./index.less"type Prop…

自用bat脚本,命令

redis配置环境变量后 关机脚本 redis-server --service-stop启动脚本 :: 注释 rem echo off cd /d d:\\Redis :: redis-cli :: shutdown :: exit :: netstat -ano |findstr "6639" :: taskkill /pid {pid} /F redis-server redis.windows.conf pausecmd中替代gr…

BFS专题8 中国象棋-马-无障碍

题目&#xff1a; 样例&#xff1a; 输入 3 3 2 1 输出 3 2 1 0 -1 4 3 2 1 思路&#xff1a; 单纯的BFS走一遍即可&#xff0c;只是方向坐标的移动变化&#xff0c;需要变化一下。 代码详解如下&#xff1a; #include <iostream> #include <vector> #include…

上次的那段代码后续

之前写了一篇文章&#xff0c;说是一个要修改一个代码&#xff0c;很多人评论说代码说得不清不楚&#xff0c;不过在评论说又解释了一波之后&#xff0c;大家至少对这个代码有理解了&#xff0c;至少知道这个代码是做什么事情了。 如果是你&#xff0c;会不会修改这段代码&…

数据结构初阶——时间复杂度

朋友们我们又见面了&#xff0c;今天我们来学习数据结构的时间复杂度&#xff0c;在讲数据结构之前&#xff0c;大家可能只知道我们学习的是数据结构&#xff0c;但是还是不知道数据结构的具体定义&#xff0c;其实就是在内存上的数据。然后我们就像通讯录一样对它进行增删查改…

Qt 目录操作(QDir 类)及展示系统文件实战 QFilelnfo 类介绍和获取文件属性项目实战

一、目录操作(QDir 类) QDir 类提供访问系统目录结构 QDir 类提供对目录结构及其内容的访问。QDir 用于操作路径名、访问有关路径和文件的信息以及操作底层文件系统。它还可以用于访问 Qt 的资源系统 Qt 使用“/”作为通用目录分隔符&#xff0c;与“/”在 URL 中用作路径分…

istio介绍(一)

1. 概念 1.1 虚拟服务 虚拟服务提供流量路由功能&#xff0c;它基于 Istio 和平台提供的基本的连通性和服务发现能力&#xff0c;让您配置如何在服务网格内将请求路由到服务 示例&#xff1a; apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata:nam…

高项.项目管理经验、理念、教训

一、项目管理的一些经验 管项目重在管理&#xff0c;而不是死抠无关紧要的技术细节等等。 真正的团队一定是11>2&#xff0c;要把重心放在凝聚团队协力&#xff0c;共同完成目标上。 项目的推进永远都是不确定性的&#xff0c;真正考验项目经理的是不断出现的需求变更和状…

vue重修之路由【上】

文章目录 单页应用程序: SPA - Single Page Application路由简介Vue Reouter简介VueRouter的使用&#xff08;52&#xff09;组件的存放目录问题组件分类存放目录 路由的封装抽离 单页应用程序: SPA - Single Page Application 单页面应用(SPA): 所有功能在 一个html页面 上 单…