【Java笔试强训 2】

news2024/10/7 5:31:38

🎉🎉🎉点进来你就是我的人了
博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!

欢迎志同道合的朋友一起加油喔🤺🤺🤺


目录

一、选择题 

二、编程题

🔥排序子序列

🔥倒置字符串



一、选择题 

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

A a0=new A();
A a1=new B();
A a2=new C();
问以下哪个说法是正确的?()
A 只有第一行能通过编译
B 第1、2行能通过编译,但第3行编译出错
C 第1、2、3行能通过编译,但第2、3行运行时出错
D 第1行,第2行和第3行的声明都是正确的
正确答案: D
参考答案:都可以示例化子类的对象

class A{
}
class B extends A{
}
class C extends B{
}
public class Main{
  public static void main(String[] args){
    A a1=new A();
    A a2=new B();
    A a3=new C();
  }
}

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

public class SystemUtil{
public static boolean isAdmin(String userId){
return userId.toLowerCase()=="admin";
}
public static void main(String[] args){
System.out.println(isAdmin("Admin"));
}
}

A true
B false
C 1
D 编译错误
正确答案: B
参考答案:
本题考查==的含义,对于两个引用变量,只有他们指向同一个引用时,==才会返true。题目中"admin"指向堆内存字符串常量池里admin的地址,而String类的方法都是通过创建新的对象也就是new String()的方式返回的,因此userId.toLowerCase()指向的是这个字符串对象在堆内存中的地址。如果题目中isAdmin方法返回值更改为return userId.toLowerCase().equals("admin");,输出结果将变为true。

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

package NowCoder;
class Test {
  public static void hello() {
  System.out.println("hello");
  }
}
public class MyApplication {
  public static void main(String[] args) {
  // TODO Auto-generated method stub
  Test test=null;
  test.hello();
  }
}

A 能编译通过,并正确运行
B 因为使用了未初始化的变量,所以不能编译通过
C 以错误的方式访问了静态方法
D 能编译通过,但因变量为null,不能正常运行
正确答案: A
参考答案:
Test test=null;会出现空指针异常,但是hello方法是一个静态的方法,静态方法的调用不依赖于任何对象,所以能正常运行。

4、在使用super和this关键字时,以下描述正确的是()
A 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
B super()和this()不一定要放在构造方法内第一行
C this()和super()可以同时出现在一个构造函数中
D this()和super()可以在static环境中使用,包括static方法和static语句块
正确答案: A
参考答案:
静态方法不依赖于对象

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

class Base {
Base() {
System.out.print("Base");
}
}
public class Alpha extends Base {
public static void main( String[] args ) {
new Alpha();
//调用父类无参的构造方法
new Base();
}
}

A Base
B BaseBase
C 编译失败
D 代码运行但没有输出
E 运行时抛出异常
正确答案: B
参考答案:
Alpha 没有提供构造方法,系统会默认提供一个不带参数的构造方法。

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

public class Test {
public int aMethod(){
static int i = 0;
i++;
return i;
}
public static void main(String args[]){
Test test = new Test();
test.aMethod();
int j = test.aMethod();
System.out.println(j);
}
}

A 0
B 1
C 2
正确答案: D
参考答案:
static不能定义局部变量,可以定义成员变量;一个变量被static修饰是类变量,只能放在类里面,不能放在方法中。

7、下列哪一种叙述是正确的()
A abstract修饰符可修饰字段、方法和类
B 抽象方法的body部分必须用一对大括号{ }包住
C 声明抽象方法,大括号可有可无
D 声明抽象方法不可写出大括号
正确答案: D
参考答案:
abstract不能修饰字段

8、下列说法正确的有:()
A class中的constructor不可省略
B constructor必须与class同名,但方法不能与class同名
C constructor在一个对象被new 时执行
D 一个class只能定义一个constructor
正确答案: C
参考答案:
constructor构造方法可以重载

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

public abstract class MyClass {
public int constInt = 5;
//add code here
public void method() {
}
}

A public abstract void method(int a);
B consInt=constInt+5;
C public int method();
D public abstract void anotherMethod(){}
正确答案: A
参考答案:
成员变量可以赋值,但是不能进行运算,运算要放在方法里面;

10、在使用 interface 声明一个外部接口时,只可以使用( )修饰符修饰该接口。
A private
B protected
C private protected
D public
正确答案: D

 


二、编程题

🔥排序子序列

排序子序列_牛客笔试题_牛客网

注意:为了防止在arr[i]>arr[i+1]时数组下标越界,数组大小申请为n+1,由于题目中说给定的都是正数,arr[n]为0,不会影响最终结果

代码如下:

import java.util.*;
public class Main{
    
    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++;
             }
             //当前的非递减序列遍历完了,需要划分的数+1
             count++;
             //进入下一个序列
             i++;
         }else if(arr[i]>arr[i+1]){
         //当前遍历到的数比下一个大,进入非递增序列
            while(i<n && arr[i]>arr[i+1]){
                i++;  
            }
            //当前的非递增序列结束,count++;
             count++;
             //进入下一个序列
             i++;
         }else {
          //如果当前数和下一个数相等,i就继续向后遍历
             i++;
         }
        }
        System.out.println(count);
   }
}

🔥倒置字符串

倒置字符串_牛客题霸_牛客网

思路:

  1. 先将整个字符串逆置
  2. 再将每个单词分别逆置

代码如下:

import java.util.*;
public class Main{
    
    public  static void reverse(char[] str,int l,int r){
        
         while(l<r){
             char tmp=str[r];
             str[r]=str[l];
             str[l]=tmp;
             l++;
             r--;
        }
    }
    
    public static void main(String[] args){
        
        Scanner scanner=new Scanner(System.in);
        String s=scanner.nextLine();

        char[] str=s.toCharArray();
        reverse(str,0,str.length-1);
        int begin=0;
        for(int i=0;i<str.length;i++){
            if(str[i]==' '){
                reverse(str,begin,i-1);
                begin=i+1;
            }
            
        }
        //此处是将最后一个单词进行逆置,因为当i遍历当字符串末尾时,会跳出循环
        //这就倒置最后一个字符串没能在for循环中进行逆置
        reverse(str,begin,str.length-1);
   StringBuilder sb=new StringBuilder();
       for(int i=0;i< str.length;i++){
         sb.append(str[i]);
       }
       System.out.println(sb.toString());
    }
}

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

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

相关文章

Linux-03目录管理

注意&#xff1a; 在下面的讲解中&#xff0c;每个命令都有很多的参数说明&#xff08;选项&#xff09;&#xff0c;我们只讲其中的几个&#xff0c;关键是让学生掌握命令的语法&#xff1b;学生学习完语法后&#xff0c;就可以自己按照参数书写各种命令&#xff0c;这也是我们…

UEngine运行器2.0.1——修复部分问题

介绍 新版本Deepin/UOS发布后&#xff0c;可以在应用商店安装部分官方已适配的安卓应用&#xff0c;对爱好者来说&#xff0c;不能自己安装APK软件包始终差点意思&#xff0c;本程序可以为Deepin/UOS上的UEngine安卓运行环境安装自定义APK软件包&#xff0c;并能发送安装的APK包…

语义分割学习笔记(五)U-net网络

推荐课程&#xff1a;U-Net网络结构讲解(语义分割)_哔哩哔哩_bilibili 感谢博主霹雳吧啦Wz 提供视频讲解和源码支持&#xff0c;真乃神人也&#xff01; 目录 1. U-net网络模型 2. 分割效果 3. U-Net源码解析(Pytorch版) 4. 测试结果 1. U-net网络模型 U-Net网络由两部分…

【Leetcode -147.对链表进行插入排序 -237.删除链表中的节点】

Leetcode Leetcode -147.对链表进行插入排序Leetcode - 237.删除链表中的节点 Leetcode -147.对链表进行插入排序 题目: 给定单个链表的头 head &#xff0c;使用 插入排序 对链表进行排序&#xff0c;并返回 排序后链表的头 。 插入排序 算法的步骤 : 插入排序是迭代的&…

设计模式-三种工厂模式的优缺点和使用场景

本文参考&#xff1a; 常见设计模式解析,应用场景以及优点(一)单例,工厂,抽象工厂,构造者_口怪物口的博客-CSDN博客_简述常见的工厂模式以及单例模式的使用场景 轻松理解工厂模式&#xff01;就等面试官问了&#xff01;_牛客网 (nowcoder.com) 工厂模式 工厂模式&#xff08;…

4.29补题记录

昨天做了俩道补题&#xff0c;感觉很自己有点无脑了 一、镜像最短距离 思路 首先这道题我最开始想的是bfs记录步数来做的&#xff0c;当时测试的时候没写出来&#xff0c;后来&#xff0c;看补题的时候&#xff0c;才发现这个就是简单的数学问题&#xff0c;我们只要计算出初…

项目管理软件可以用来做什么?这篇文章说清楚了

项目管理软件是用来干嘛的&#xff0c;就得看对项目的理解。项目是为创造独特的产品、服务或成果而进行的临时性工作。建造一座大楼可以是一个项目&#xff0c;进行一次旅游活动、日常办公活动、期末考试复习等也都可以看成一个项目。 项目管理不善会导致项目超时、超支、返工、…

javascript-算法基础-01

时间复杂度 O(1) O(n) O(n) O(2ⁿ) 记得有次面试, 让我求1 … n, 我说用for循环. 当时竟然都忘了等差数列公式了… 一个简单的求和 let res 0 // 1 for(let i; i < arr.length; i){ // 1res arr[i] // n }let res 0 for(const …

肝一肝设计模式【四】-- 建造者模式

系列文章目录 肝一肝设计模式【一】-- 单例模式 传送门 肝一肝设计模式【二】-- 工厂模式 传送门 肝一肝设计模式【三】-- 原型模式 传送门 肝一肝设计模式【四】-- 建造者模式 传送门 文章目录 系列文章目录前言一、什么是建造者模式二、举个栗子三、静态内部类写法四、开源框…

Golang-常见数据结构Map

Map map 是一种特殊的数据结构&#xff1a;一种元素对&#xff08;pair&#xff09;的无序集合&#xff0c;pair 的一个元素是 key&#xff0c;对应的另一个元素是 value&#xff0c;所以这个结构也称为关联数组或字典。这是一种快速寻找值的理想结构&#xff1a;给定 key&…

5 款 AI 老照片修复工具的横向比较

在大语言模型和各类 AI 应用日新月异的今天&#xff0c;我终于下定决心&#xff0c;趁着老照片们还没有完全发黄褪色、受潮粘连抑或损坏遗失&#xff0c;将上一代人实体相册里的纸质胶卷照片全部数字化&#xff0c;并进行一次彻底的 AI 修复&#xff0c;好让这些珍贵的记忆能更…

宽带IPTV单线复用

宽带IPTV单线复用 中国联通类&#xff1a; 1、前言 为了解决家里电视墙只预留了一个网口&#xff0c;IPTV无法与路由器共存的问题。 网络环境&#xff1a;中国联通 作者使用的路由器&#xff1a;云易家AX18C 2、光猫获取超管密码 黑龙江&#xff1a;hljcuadmin 重庆&…

HTML基础 + 实例解析

我们的目标: 认识HTML语言学会常用的HTML标签 目录 HTML的框架结构 HTML常见标签使用 1.注释标签 2. 标题标签 3. 段落标签 4. 换行标签 5. 格式化标签 6. 图片标签 7. 超链接标签 8. 表格标签 9. 表格标签-单元格合并 10. 列表标签 无序列表标签 有序标签 11. 表单标签 inp…

将 Quicker 搜索功能打造成专属于你的 Windows 启动器

在 macOS 平台上&#xff0c;有许多优秀的启动器&#xff0c;如老牌双雄 Alfred、Launchbar 和新秀 Raycast。反观 Windows 平台&#xff0c;则有 uTools、Listary、Wox 等应用&#xff0c;它们在基础功能上表现不错&#xff0c;但受限于应用生态&#xff0c;可拓展性都较弱。Q…

Java——Java面向对象

该系列博文会告诉你如何从入门到进阶&#xff0c;一步步地学习Java基础知识&#xff0c;并上手进行实战&#xff0c;接着了解每个Java知识点背后的实现原理&#xff0c;更完整地了解整个Java技术体系&#xff0c;形成自己的知识框架。 概述&#xff1a; Java是面向对象的程序…

【C++】类与对象(1)

【C】类与对象&#xff08;1&#xff09; 作者&#xff1a;爱写代码的刚子 时间&#xff1a;2023.4.29 本篇博客是有关C类与对象的知识&#xff0c;学习了类与对象就相当于一只脚踏进了C的大门&#xff0c;本篇博客会深入讲解C中的类与对象&#xff08;重点为this指针&#xff…

C++知识点 -- 异常

C知识点 – 异常 文章目录 C知识点 -- 异常一、异常概念二、异常的使用1.异常的抛出和捕获2.异常的重新抛出3.异常安全4.异常规范 三、自定义异常体系四、C标准库的异常体系五、C异常的优缺点 一、异常概念 当一个函数发现自己无法处理错误时&#xff0c;就可以抛出异常&#…

Python超矩形

文章目录 距离函数矩形分割 Rectangle是 scipy.spatial中封装的类&#xff0c;其构造函数只需输入最小值和最大值的数组即可&#xff0c;并且可通过内置的 volume方法计算广义的体积。 from scipy.spatial import Rectanglerec Rectangle((0,0), (5,5)) print(rec.maxes) …

java-会话技术

1.1 会话管理概述 1.1.1 什么是会话 这里的会话&#xff0c;指的是web开发中的一次通话过程&#xff0c;当打开浏览器&#xff0c;访问网站地址后&#xff0c;会话开始&#xff0c;当关闭浏览器&#xff08;或者到了过期时间&#xff09;&#xff0c;会话结束。 举个例子&am…

py_rabbitmq

安装 服务端 https://www.jianshu.com/p/2fb6d5ac17b9 客户端 pip install pika文档 https://rabbitmq.com/tutorials/tutorial-one-python.html 简单示例 生产者 import pika import rabbitmq_study.settings as settingscredentials pika.PlainCredentials(settings…