25-30天每日强训选择题改错解析

news2024/10/1 12:11:48
int i=5; int s=(i++)+(++i)+(i–)+(–i); s=( )//s 的值是什么?

A 28 B 25 C 21 D 26 E 24 F 23

正确答案: E

5+7+7+5 = 24

++ 或者 --在后先不变化数值  ++ -- 在前先变化再运算

以下哪项不属于java类加载过程?

A 生成java.lang.Class对象

B int类型对象成员变量赋予默认值

C 执行static块代码

D 类方法解析

他的回答: B (正确)

正确答案: B

类加载过程:

1, JVM会先去方法区中找有没有相应类的.class存在。如果有,就直接使用;如果没有,则把相关类的.class加载到方法区

2, 在.class加载到方法区时,会分为两部分加载:先加载非静态内容,再加载静态内容

3, 加载非静态内容:把.class中的所有非静态内容加载到方法区下的非静态区域内

4, 加载静态内容:

4.1、把.class中的所有静态内容加载到方法区下的静态区域内

4.2、静态内容加载完成之后,对所有的静态变量进行默认初始化

4.3、所有的静态变量默认初始化完成之后,再进行显式初始化

4.4、当静态区域下的所有静态变量显式初始化完后,执行静态代码块

5,当静态区域下的静态代码块,执行完之后,整个类的加载就完成了。

9、如果一个方法或变量是"private"访问级别,那么它的访问范围是:

A 在当前类,或者子类中

B 在当前类或者它的父类中

C 在当前类,或者它所有的父类中

D 在当前类中

正确答案: D

参考答案:

Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。

default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

public : 对所有类可见。使用对象:类、接口、变量、方法

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

我们可以通过以下表来说明访问权限:

 

10、java中下面哪个能创建并启动线程()

public class MyRunnable implements Runnable {

    public void run() {

    //some code here

    }

}

A new Runnable(MyRunnable).start()

B new Thread(MyRunnable).run()

C new Thread(new MyRunnable()).start()

D new MyRunnable().start()

正确答案: C

参考答案:

创建并启动线程的过程为:定义线程->实例化线程->启动线程。

定义线程有两种方式,一种是继承java.lang.Thread类,一种是实现java.lang.Runnable接口。这两种方式实例化线程区别在于,如果是继承了Thread类,直接new一个对象就可以了,如果是实现了Runnable接口的类,则需要用Thread的构造方法:

Thread(Runnable target)

Thread(Runnable target, String name) Thread(ThreadGroup group, Runnable target)

Thread(ThreadGroup group, Runnabletarget, String name)

Thread(ThreadGroup group, Runnable target, String name, long stackSize)

因此A、D两个选项实例化线程存在错误。B选项中new Runnable(MyRunnable)中的MyRunnable还没有实例化,会导致编译不通过,该选项无论后面是调用run()还是start()都是错误的。

 在Java中,以下关于方法重载和方法重写描述正确的是?

A 方法重载和方法的重写实现的功能相同

B 方法重载出现在父子关系中,方法重写是在同一类中

C 方法重载的返回值类型必须一致,参数项必须不同

D 方法重写的返回值类型必须相同或相容。

答案:D

解析:重载是发生在同一个类中,方法名相同,参数列表不同的方法,为的是在处理不同的数据类型时,为调用者提供了一个同意的入口。重载遵循编译期绑定。

重写是指,子类中的方法与父类的方法方法签名相同。从而覆盖父类中的方法的现象。重写是多态的基础,通过重写,子类可以表现出与父类不同的行为。重写时要,遵循“两同两小一大”的原则,即:方法名相同,参数列表相同,返回值类型要小于或等于父类,抛出的异常要小于或等于父类,访问权限要大于等于父类。

下列那个说法是正确的(D)

A ConcurrentHashMap使用synchronized关键字保证线程安全

B HashMap实现了Collction接口

C Array.asList方法返回java.util.ArrayList对象

D SimpleDateFormat是线程不安全的

解答:

A:HashMap线程不安全,而ConcurrentHashMap就线程安全

ConcurrentHashMap运用各类CAS操作,将扩容操作的并发性能实现最大化,在扩容过程中,就算有线程调用get查询方法,也可以安全的查询数据,若有线程进行put操作,还会协助扩容,利用sizeCtl标记位和各种volatile变量进行CAS操作达到多线程之间的通信、协助,在迁移过程中只锁一个Node节点,即保证了线程安全,又提高了并发性能。

B:

 

C:Arrays的asList方法使用的ArrayList类是一个内部定义的类,而不是java.util.ArrayList类。

public static <T> List<T> asList(T... a) {  

    return new ArrayList<T>(a);  

}

8、(单选题)给定代码: public class SwitchTest{//1

public static void main(String[] args) {//2

System.out.println("value="+switchit(4));//3

}//4 public static int switchit(int x) {

int j=1; switch (x) {

case 1:j++;

case 2:j++;

case 3:j++;

case 4:j++;

case 5:j++;

default:j++;

} return j+x; } } 第三行将输出什么?()

A.value=6

B.value=8

C.value=3

D.value=5

【正确答案】B

【答案解析】没有break,从case 4(2)开始case 5(3)一直执行到最后default(4),j自加3次变成了4,结果返回8

下面有关JVM内存,说法错误的是?

A、程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的

B、Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的

C、方法区用于存储JVM加载的类信息、常量、静态变量、即使编译器编译后的代码等数据,是线程隔离的

D、原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的

参考答案:C

答案解析:方法区在JVM中也是一个非常重要的区域,它与堆一样,是被 线程共享 的区域。 在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。

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

public class Print{

    static boolean out(char c){

        System.out.print(c);

        return true;

   }

    public static void main(String[] argv){

        int i = 0;

        for(out('A');out('B') && (i<2);out('C')){

            i++;

            out('D');

       }

   }

}

A: ABDCBDCB

B: BCDABCD

C: 编译错误

D: 运行错误

答案解析:A

第一轮循环,out(‘A’)输出 A;out(‘B’)输出 B;i=0 满足进入循环的条件,输出D

所以第一轮循环输出ABD

第二轮循环,先判断out(‘C’)输出 C;只想表达式out(‘B’) && (i<2),输出B,此时i=1; out(‘D’)输出D 所以第二轮循环输出CBD

第三轮循环输出CB 所以最终输出的是ABDCBDCB

下面程序的运行结果:( )

public static void main(String args[]) {

    Thread t = new Thread(){

        public void  run(){

            dianping();    

        }

    };

    t.run();

    System.out.print("dazhong");

}

static void dianping(){

    System.out.print("dianping");

}

A. a和b都有可能

B. dianpingdazhong

C. dazhongdianping

D. dianping循环输出,dazhong夹杂在中间

答案:B。 如果调用run(),选用B;如果调用start(),选C。

因为在main()方法中,没有创建一个新的线程,仅仅是调用了run()方法,程序就只能顺序执行;开启线程是调用start()方法,这样才能并发执行。

有以下类定义:

abstract class Animal{

    abstract void say();

    }

public class Cat extends Animal{

    public Cat(){

        System.out.printf("I am a cat");

    }

    public static void main(String[] args) {

        Cat cat=new Cat();

    }

}

A. Animal不能编译,Cat能编译

B. Animal能编译,Cat不能编译

C. I am a cat

D. 编译能通过,但是没有输出结果

答案:B。 一个实体类继承一个抽象类,必须实现抽象类中的抽象方法。

 

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

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

相关文章

【Vue】day04-组件通信

day04 一、学习目标 1.组件的三大组成部分&#xff08;结构/样式/逻辑&#xff09; scoped解决样式冲突/data是一个函数 2.组件通信 组件通信语法 父传子 子传父 非父子通信&#xff08;扩展&#xff09; 3.综合案例&#xff1a;小黑记事本&#xff08;组件版&#xf…

Windows下达梦数据库图形化安装、初始化数据库及连接

文章目录 前言一、达梦数据库安装1、下载安装包2、解压3、安装 二、初始化数据库三、连接数据库1、客户端工具2、输入连接信息3、成功连接 总结 前言 本节将介绍达梦数据库的图形化界面安装的细节&#xff0c;本节以Win11系统及DM8为基础进行讲解&#xff0c;虽然是图形化安装…

5. Bean 的作用域和生命周期

目录 1. Bean 被修改的案例 2. 作用域定义 2.1 Bean 的 6 种作用域 singleton prototype request session application&#xff08;了解&#xff09; websocket &#xff08;了解&#xff09; 单例作用域&#xff08;singleton&#xff09;VS 全局作用域&#xff08;…

企业知识管理系统安全是重中之重

企业开展知识管理工作的益处是全方位的&#xff0c;效果能从业务的各方面得到体现&#xff0c;最终效果就是企业竞争力的提升与企业经营业绩的提升。 知识管理系统的意义在于&#xff0c;构建系统的知识库&#xff0c;对纷杂的知识内容&#xff08;方案、策划、制度等&#xf…

【业务功能篇51】对象复制的三种方式 工具类Orika、反射、BeanUtils浅拷贝

业务场景&#xff1a; 设计规范前提下&#xff0c;我们数据层传输承载的是用DTO&#xff0c;而到控制层返回给前端会对应定义一个VO对象&#xff0c;比如是一个问题单数据集合list<DTO>,数据层接收的是DTO对对象&#xff0c;到控制层接收后需要转换成list<VO>,这里…

项目中如何使用文件IO?【大学学了好几门语言都有IO,到底怎么用?】

import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;public class TestFile {public static void main(String[] args) throws IOException {// 通过这个简单的程序, 把一个文件的内容读取出…

Docker Compose 容器编排

Docker compose Docker compose 实现单机容器集群编排管理&#xff08;使用一个模板文件定义多个应用容器的启动参数和依赖关系&#xff0c;并使用docker compose来根据这个模板文件的配置来启动容器&#xff09; 通俗来说就是把之前的多条docker run启动容器命令 转换为docker…

关于云服务器ECS、宝塔的安装配置以及图床的使用

一、阿里云服务器的申请以及宝塔的安装 安装配置服务器的原理&#xff1a; step1&#xff1a;地址栏输入阿里云服务器官网地址 step2&#xff1a;在首页依次点击以下内容&#xff1a; step3&#xff1a;选择立即购买&#xff0c;并填写以下内容&#xff1a; step4&#xff1a…

6.运算符

6.1赋值运算符 ➢已经学过的赋值运算符&#xff1a; ➢其他赋值运算符&#xff1a; 、-、*、/、% 6.2 一元运算符 众多的JavaScript的运算符可以根据所需表达式的个数, 分为一元运算符、二元运算符、三元运算符 ●二元运算符: 例&#xff1a;let num1020 ●一元运算符: 例…

Vue3输入框(Input)

APIs 参数说明类型默认值必传width输入框宽度string | number‘100%’falseaddonBefore设置前置标签string | slot‘’falseaddonAfter设置后置标签string | slot‘’falseallowClear可以点击清除图标删除内容booleanfalsefalsepassword是否启用密码框booleanfalsefalsedisabl…

CSS3 Flexbox

Flex 是 Flexible Box 的缩写&#xff0c;意为弹性盒子布局。 CSS3中一种新的布局模式&#xff1a;W3C在2009年提出的一种布局方案&#xff0c;一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。其目的是提供一种更加有效的方式来对一个容器…

回收站不见了?正确的2个操作方法!

大家有没有遇到回收站不见了的情况啊&#xff1f;真的很崩溃&#xff0c;我误删了一个比较重要的文件&#xff0c;想在回收站中把它还原&#xff0c;才发现我的回收站不见了&#xff01;这可咋整啊&#xff1f; 回收站是电脑操作系统中一个比较重要的功能&#xff0c;它可以帮助…

Ceph简介和特性

Ceph是一个多版本存储系统&#xff0c;它把每一个待管理的数据流(例如一个文件) 切分为一到多个固定大小的对象数据&#xff0c;并以其为原子单元完成数据存取。 对象数据的底层存储服务是由多个主机 (host) 组成的存储集群&#xff0c;该集群也被称之为 RADOS (ReliableAutoma…

DS18B20的原理及实例代码(51单片机、STM32单片机)

一、DS18B20介绍 DS18B20数字温度传感器是DALLAS公司生产的单总线器件&#xff0c;用它来组成一个测温系统具有线路简单&#xff0c;体积小&#xff0c;在一根通信线上可以挂很多这样的数字温度传感器&#xff0c;十分方便。 温度传感器种类众多&#xff0c;应用在高精度、高可…

快排、二路归并疑难杂症

蒟蒻小♥复习机试&#xff0c;记录一些疑点和注意点。 细节见代码注释 快排 快排中的边界条件判断需保证i<j&#xff0c;即满足label基准左边的数均小于右边的数。<的判断可能让子问题求解陷入死循环。 #include <iostream> #include <stdio.h> #include …

C++笔记之STL的sort使用第三个参数来自定义排序

C笔记之STL的sort使用第三个参数来自定义排序 code review! 文章目录 C笔记之STL的sort使用第三个参数来自定义排序1.方法一&#xff1a;使用比较函数(其实是使用函数指针)作为std::sort()的第三个参数来排序2.方法二&#xff1a;使用lambda表达式作为std::sort()的第三个参数…

IO进程线程day1(2023.7.25)

一、Xmind整理&#xff1a; 什么是IO&#xff1a; 文件IO函数与标准IO函数&#xff1a; 二、课上练习&#xff1a; 练习1&#xff1a;标准IO函数的简单示例 scanf: if(OS Linux) {去调用Linux的文件IOread(); } else if(OS windows) {去调用windows的文件IOfread(); …

垃圾回收回收阶段算法

当成功区分出垃圾的对象和存活的对象后&#xff0c;下面就是要开始回收了&#xff0c;目前在JVM中的垃圾回收阶段的算法有三种&#xff1a;标记——复制算法、标记——清除算法、标记——压缩算法。 1.标记——复制算法 将可用内存按照容量分为大小相等的两块&#xff0c;每次…

国标GB28181视频监控平台EasyGBS视频无法播放,抓包返回ICMP是什么原因?

国标GB28181视频平台EasyGBS是基于国标GB/T28181协议的行业内安防视频流媒体能力平台&#xff0c;可实现的视频功能包括&#xff1a;实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。国标GB28181视频监控平台部署简单、可拓展性强&#xff0c;支持将…

【软件测试】webdriver常用API演示(Java+IDEA+chrome浏览器)

1.元素定位方法 对象的定位应该是自动化测试的核心&#xff0c;要想操作一个对象&#xff0c;首先应该识别这个对象。一个对象就是一个人一样&#xff0c;他会有各种的特征&#xff08;属性&#xff09;&#xff0c;如比我们可以通过一个人的身份证号&#xff0c;姓名&#xf…