java每日一练(2)

news2024/12/23 13:40:50

java每日一练(2)

单选部分

1.A 派生出子类 B , B 派生出子类 C ,并且在 java 源代码有如下声明:

  1. A a0=new A();
  2. A a1=new B();
  3. A a2=new C();


问以下哪个说法是正确的()


A 只有第一行能通过编译 B 第1、2行能通过编译,但第3行编译出错

C 第1、2、3行能通过编译,但第2、3行运行时出错 D 第1行,第2行和第3行的声明都是正确的

复习文章 : 继承 Inheritance_


答案 : D

C 的父类 是 B , B的父类是 A ,所以 A 的父类一定是C的父类 , 根据父类引用引用子类对象 推出 3行代码是可以执行的

在这里插入图片描述


2.下面代码将输出什么内容:()

在这里插入图片描述


这里就考到了我们的 toLowerCaSe 方法最后会创建一个新的对象, == 比较的是否为同一个对象, 所以这里就会返回一个 false

在这里插入图片描述


复习文章 : String类 — 上篇_

3.阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有()

在这里插入图片描述


A 能编译通过,并正确运行

B 因为使用了未初始化的变量,所以不能编译通过

C 以错误的方式访问了静态方法

D 能编译通过,但因变量为null,不能正常运行


答案 : 这里我们的 Test3 test = null, 此时 test 指向任何 对象,如果使用就会出现空指针异常,但是 看到我们的 hello() 方法是被 static 修饰 不依赖对象 所以这里 是可以通过 test.hello() 调用, 另外我们要注意这里样调用是不推荐的,这里一般都是直接通过类名调用也就是 Test3.hello()


运行后也能验证我们的答案

在这里插入图片描述

复习文章 : 类和对象


4.在使用super和this关键字时,以下描述正确的是()


A 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过

B super()和this()不一定要放在构造方法内第一行

C this()和super()可以同时出现在一个构造函数中

D this()和super()可以在static环境中使用,包括static方法和static语句块


答案 : A

B : super 和 this 必须放在 构造方法的第一行

C : super 和 this 不能同时出现, 如果能 那么谁放在第一行呢?

D :this 和 super 是不能 在 static 方法 和 static 语句块的,因为 被static 修饰是不需要对象的,而 super 和 this 是需要对象。


复习文章 : 继承 Inheritance_


5.如下代码的 结果是什么 ?

在这里插入图片描述


A Base B BaseBase C 编译失败 D 代码运行但没有输出 E 运行时抛出异常

这里主要考构造方法,我们new子类对象的时候会先去帮助父类构造(调用父类的构造方法 通过 supser() ) ,所以new Alpha 会先调用 Base的构造方法 ,打印一个 Base ,接下来执行到 new Base ,他自己调用字节的构造方法 又打印了一个 Base ,因为 是 print 没有换行 所以 答案 就是 BaseBase

在这里插入图片描述


6.如下代码的输出结果是什么?

在这里插入图片描述


A 0 B 1 C 2 D 编译失败

这里我直接放在 idea上了 很明显 直接编译错误 , 这里如何来真正的判断 ,其实我们的 static定义的变量是不能放在方法里面 , 这里 static 修饰的 是属于类的,而不是属于方法的。 所以 这里直接会报错。另外 定义在 static 修饰的方法里面同样是不能的,同理.


7.下列哪一种叙述是正确的()

A abstract修饰符可修饰字段、方法和类

B 抽象方法的body部分必须用一对大括号{ }包住

C 声明抽象方法,大括号可有可无

D 声明抽象方法不可写出大括号


答案 : abstract是不能 修饰 字段的 , 抽象方法不需要大括号{} 包住的, 写了就是具体实现. 所以答案就是我们的 D

复习文章 : 抽象类 or 接口_


8.下列说法正确的有:()

A class中的constructor不可省略

B constructor必须与class同名,但方法不能与class同名

C constructor在一个对象被new 时执行

D 一个class只能定义一个constructor


这里 constructor 就是构造器的意思 :

A constructor 是可以省略的,编译器是会默认提供一个不带参数的

B 可以看到我们的构造方法就可以跟类同名, 注意构造方法同样也是 方法

在这里插入图片描述


C 正确

D 错误我们的构造方法可为多个构造重载


9.选项中哪一行代码可以替换 //add code here 而不产生编译错误

在这里插入图片描述


A public abstract void method(int a); B consInt=constInt+5;

C public int method(); D public abstract void anotherMethod(){}


A : 可以

B : 这里对成员变量的赋值只能放在方法的内部
在这里插入图片描述


C : method 不是抽象方法, 所以 不能省略{}
在这里插入图片描述


D : 这里我们被 abstract 修饰 所以 是一个抽象方法,这里就可以省略{}

在这里插入图片描述

所以答案 A


10.在使用 interface 声明一个外部接口时,只可以使用( )修饰符修饰该接口。

A private

B protected

C private protected

D public

在这里插入图片描述

所以答案是 D

编程题

题目一 : 排序子序列_牛客笔试题_牛客网 (nowcoder.com)

图一 :

在这里插入图片描述

图二 :

在这里插入图片描述

图三 :

在这里插入图片描述

附上代码 :


    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        // 注意这里后面我们会修改这里 
        int[] arr = new int[n + 1];
        for (int i = 0; i < n; i++) {
            arr[i] = scanner.nextInt();
        }

        int i = 0;
        int count = 0;
        while (i < n) {
            if (arr[i] < arr[i + 1]) {
                while (i < n && arr[i] < arr[i + 1]) {
                    i++;
                }
                // 此时 相当于 出现了 arr[i] >= arr[i+1] 的情况
                // 相当于结束了递增的情况 , 那么 让计数器++, 让 i++到新的起点
                count++;
                i++;
            } else if (arr[i] == arr[i + 1]) {
                i++;
            } else {
                // arr[i] > arr[i + 1]
                while (i < n&& arr[i] > arr[i + 1]) {
                    i++;
                }
                count++;
                i++;
            }
        }
    }

题目二 : 倒置字符串__牛客网 (nowcoder.com)


图一 :

在这里插入图片描述


附上法二代码 :

  public static void reverse(char[] c, int start, int end) {
        while (start < end) {
            char tmp = c[start];
            c[start] = c[end];
            c[end] = tmp;
            start++;
            end--;
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
//        System.out.println(str);
        char[] c = str.toCharArray();
        int n = str.length() ;
        reverse(c, 0, str.length() - 1);
//        System.out.println(Arrays.toString(c));
        int i = 0;
        while (i < n) {
            // i 用来保留 翻转的首字母
            int j = i;
            // j 用来找空格
            while (j < n && c[j] != ' ') {
                // 此时 没找到
                j++;
            }
            // 另外这里最后一组的情况 a b c d e 后面是遇不到空格的 那么我们的 j 就会 == n
            // 此时我们同样是 对 i 到 j - 1 进行 翻转,所以这里可以省略

            // 此时找到了那么我们对当前 i - j - 1 进行翻转
            reverse(c, i, j - 1);
            //此时更新新的翻转起点 j下标为空格
            i = j + 1;

        }
        str = new String(c);
        System.out.println(str);
    }

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

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

相关文章

【Servlet】6:一篇文章搞懂Servlet对象的相互调用、数据共享

目录 | 请求对象和响应对象 生命周期 | Servlet之间的相互调用 Servlet调用 基本概述 重定向Servlet调用 请求转发Servlet调用 | Servlet之间的数据共享 Servlet数据共享 基本概述 ServletContext接口 数据共享 Cookie类 数据共享 HttpSession接口 数据共享 HttpServletRequest…

2022亚太A题赛题分享

序列图像特征提取及模具熔融结晶建模分析 连铸过程中的模具通量对钢半月板进行热绝缘&#xff0c;防止液态钢连铸过程中液态钢再氧化&#xff0c;控制传热&#xff0c;提供链润滑&#xff0c;吸收非金属夹杂物。模具通量的冶金功能主要由温度控制曲线下的熔化速率和结晶速率决定…

【论文简述及翻译】MVSNet:Depth Inference for Unstructured Multi-view Stereo(ECCV 2018)

一、论文简述 1. 第一作者&#xff1a;Yao Yao 2. 发表年份&#xff1a;2018 Oral 3. 发表期刊&#xff1a;ECCV 4. 关键词&#xff1a;MVS、端到端网络、代价体、深度图、可微分单应变换 5. 探索动机&#xff1a;传统方法存在一些常见的局限性&#xff0c;很难处理场景的…

1100亩烟台深耕水稻 国稻种芯·中国水稻节:山东盐碱地水稻

1100亩烟台深耕水稻 国稻种芯中国水稻节&#xff1a;山东盐碱地水稻 &#xff08;YMG全媒体记者 庞磊 通讯员 包刚先 李敏 摄影报道&#xff09;新闻中国采编网 中国新闻采编网 谋定研究中国智库网 中国农民丰收节国际贸易促进会 国稻种芯中国水稻节 中国三农智库网-功能性农业…

LinuxHadoop环境

Hadoop环境Hadoop集群拓扑1、集群拓扑2、角色分配一、虚拟机安装二、虚拟机克隆1、克隆类型&#xff08;1&#xff09;完整克隆&#xff08;2&#xff09;链接克隆2、克隆步骤&#xff08;1&#xff09;克隆出master虚拟机&#xff08;2&#xff09;克隆出slave1虚拟机&#xf…

线性回归实战---Abalone鲍鱼年龄预测

线性回归实现Abalone鲍鱼年龄预测 文章目录线性回归实现Abalone鲍鱼年龄预测一、环境准备数据集简介二、线性回归基础知识什么是线性回归?“最小二乘法” 求解线性回归问题三、Python代码四、结果分析前面我们使用手动编写,后面通过sklearn第三方库来与我们手写的模型进行对比…

Mysql——使用字符集以及校对

一、字符集 1、查看mysql支持的所有字符集 show character set; 2、查看指定数据库的字符集 show variables like ‘character%’; 这八种情况分别对应&#xff1a; 1&#xff09;设置客户端使用的字符集 2&#xff09;设置链接数据库时的字符集 3&#xff09;设置创建数据库…

2、Pinpoint-Server端安装

0、本章节简介 安装Pinpoint服务端 采用Docker安装所以需要提前安装 docker和 docker-compose 本文使用的版本是Pinpoint:2.1版本 ps 由于Pinpoint依赖了很多的基础镜像&#xff0c;所以推荐不要在已经部署了程序的机器上部署&#xff0c;以免造成端口号冲突&#xff0c;推荐使…

HTML5期末大作业——HTML+CSS+JavaScript平遥古城旅游景点介绍(6页)

&#x1f468;‍&#x1f393;学生HTML静态网页基础水平制作&#x1f469;‍&#x1f393;&#xff0c;页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码&#xff0c;这是一个不错的旅游网页制作&#xff0c;画面精明&#xff0c;排版整洁&#xff0c;内容…

【笔试强训】Day2

&#x1f308;欢迎来到笔试强训专栏 (꒪ꇴ꒪(꒪ꇴ꒪ )&#x1f423;,我是Scort目前状态&#xff1a;大三非科班啃C中&#x1f30d;博客主页&#xff1a;张小姐的猫~江湖背景快上车&#x1f698;&#xff0c;握好方向盘跟我有一起打天下嘞&#xff01;送给自己的一句鸡汤&#x…

Vue常用知识点汇总

1. Vue常见的指令有哪些&#xff0c;有什么用 &#xff08;1&#xff09;v-text&#xff1a; 会替换掉元素里的内容&#xff1b; &#xff08;2&#xff09;v-html&#xff1a; 可以渲染html界面&#xff1b; &#xff08;3&#xff09;v-clock&#xff1a; 防止界面闪烁&…

[附源码]java毕业设计学校缴费系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Activity的启动模式

文章目录Activity的启动模式standardsingleTopsingleTasksingleInstanceActivity的启动模式 在实际的项目当中,我们应该根据特定的需求给每个Avtivity指定恰当的启动模式启动模式一共包含四种:standard,singleTop,singleTask,singleInstance指定启动模式的方法:在AndroidManif…

SELECT 1 FROM DUAL ,未找到要求的 FROM 关键字

1. 解决方案 背景描述&#xff1a; 项目需要将mysql数据库换成Oracle数据库&#xff0c;配置好数据源后&#xff0c;启动报错&#xff1a; 解决方案&#xff1a; application.yml 中修改&#xff08;配置了多数据源&#xff09;&#xff1a; spring:datasource:dynamic:dr…

web前端网页制作课作业:使用HTML+CSS技术制作中华传统文化网站【文房四宝】学生网页设计作品 简单静态HTML网页作品

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

Linux上:安装、网络配置

文章目录第一章&#xff1a; Linux概述1.1 操作系统1.2 操作系统的发展史1.3 Linux发行版第二章WSL安装linux2.1 WSL简介2.2安装Ubuntu2.3 Ubuntu功能设置2.4 ubantu环境设置第三章&#xff1a; 使用VM安装Linux3.1安装VMware3.2 配置安装系统环境3.3 安装Centos系统3.4 基本配…

C++入门基础05:表达式(表达式基础、算术运算符与赋值运算符、逻辑关系运算符、成员访问运算符与条件运算符、位运算符、移位运算符与类型转换)

C入门基础05&#xff1a;表达式(表达式基础、算术运算符与赋值运算符、逻辑关系运算符、成员访问运算符与条件运算符、位运算符、移位运算符与类型转换) 一、表达式基础 #include <iostream> //系统定义头文件一般是尖括号 #include<fstream> #include<string…

Linux从入门到精通(九)——Linux编程

文章篇幅较长&#xff0c;建议先收藏&#xff0c;防止迷路 文章跳转Linux从入门到精通&#xff08;八&#xff09;——Linux磁盘管理goLinux从入门到精通&#xff08;九&#xff09;——Linux编程goLinux从入门到精通&#xff08;十&#xff09;——进程管理goLinux从入门到精…

教程一 Energy 构建简单的Windows、Linux、MacOSX桌面应用

Golang的Energy使用命令行工具安装开发环境&#xff0c;并运行一个应用。 环境安装 Energy 命令行工具 使用命令行工具自动安装Energy框架的所有依赖(CEF)&#xff0c;支持Window、Linux、MacOSX 安装过程从网络下载CEF和Energy库 获取命令行工具 一、预编译命令行工具 下载地…

银行业国产数据库现状

数据库发展历程 数据库经历了单机数据库、集中式数据库、非关系型数据库、新型数据库四阶段。 单机数据库&#xff1a;单机数据库就是只能运行在单机上&#xff0c;不提供网络功能的数据库。 集中式数据库&#xff1a;数据库是一种经典、传统的数据库结构&#xff0c;多台机…