【Java每日一练】day11_ 4月23日_错题总结

以下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  
他的回答: D (错误)
正确答案: C

HashMap可以插入null的key或value,插入的时候,检查是否已经存在相同的key,如果不存在,则直接插入,如果存在,则用新的value替换旧的value,

第一条put语句,会将key/value对插入HashMap,

第二条put语句,要替换为(name,jack)。所以,size为1.


以下描述正确的是
A CallableStatement是PreparedStatement的父接口
B PreparedStatement是CallableStatement的父接口
C CallableStatement是Statement的父接口
D PreparedStatement是Statement的父接口
他的回答: D (错误)
正确答案: B
 

Statement 对象用于将 SQL 语句发送到数据库中。
实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQL语句的包容器:

  1. Statement、
  2. PreparedStatement(它从 Statement 继承而来)和
  3. CallableStatement(它从 PreparedStatement 继承而来)。

它们都专用于发送特定类型的 SQL 语句:

  1. Statement 对象用于执行不带参数的简单 SQL 语句;
  2. PreparedStatement 对象用于执行带或不带 IN参数的预编译 SQL 语句;
  3. CallableStatement 对象用于执行对数据库已存储过程的调用。
  • Statement 接口提供了执行语句和获取结果的基本方法。
  • PreparedStatement 接口添加了处理 IN 参数的方法;
  • 而CallableStatement 添加了处理 OUT 参数的方法。

下列关于容器集合类的说法正确的是?
A LinkedList继承自List
B AbstractSet继承自Set
C HashSet继承自AbstractSet
D WeakMap继承自HashMap
他的回答: A (错误)
正确答案: C

ArrayList list = new ArrayList(20)中的list扩充几次
A 0
B 1
C 2
D 3
正确答案:A

ArrayList list=new ArrayList(); 
这种是默认创建大小为10的数组,每次扩容大小为1.5倍 
ArrayList list=new ArrayList(20); 

使用的ArrayList的有参构造函数  

这种是指定数组大小的创建,创建时直接分配其大小,没有扩充。 
一次性为创建了传入的数字的长度的数组 
所以,扩充为0次

 

下列关于Java并发的说法中正确的是()
A CopyOnWriteArrayList适用于写多读少的并发场景
B ReadWriteLock适用于读多写少的并发场景
C ConcurrentHashMap的写操作不需要加锁,读操作需要加锁
D 只要在定义int类型的成员变量i的时候加上volatile关键字,那么多线程并发执行i++这样的操作的时候就是线程安全的了
正确答案: B

标题:求最大连续bit数 | 时间限制:1秒 | 内存限制:32768K | 语言限制: 不限
【求最大连续bit数】
功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
输入: 一个byte型的数字
输出: 无

 

import java.util.Scanner;
/**
 * Created by JiaLe on 2021/4/22 22:08
 */

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int a = in.nextInt();
            StringBuilder str = new StringBuilder("");
            while(a > 0) {
                int n = a & 1;
                str.append(n);
                a >>= 1;
            }
            int count = 0;
            int max = 0;
            for(char ch : str.toString().toCharArray()) {
                if(ch == '0') {
                    count = 0;
                } else {
                    count++;
                    max = Math.max(count,max);
                }
            }
            System.out.println(max);
        }
    }
}

 

标题:最近公共祖先 | 时间限制:3秒 | 内存限制:32768K | 语言限制: [Python, C++, C#, Java]
【最近公共祖先】
有一棵无穷大的满二叉树,其结点按根结点一层一层地从左往右依次编号,根结点编号为1。现在有两个结点a,b。请设计一个算法,求出a和b点的最近公共祖先的
编号。
给定两个int a
, b
。为给定结点的编号。请返回 a
b
的最近公共祖先的编号。注意这里结点本身也可认为是其祖先。

 

 
 
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_RailGun_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值