【牛客刷题】笔试选择题整理(day1-day2)

news2024/11/23 22:37:57

每天都在进步呀

文章目录

  • 1. 小数求模运算
  • 2. 进程的分区,这里说的不是JVM的分区。进程中,方法存放在方法区。
  • 3. 访问权限控制
  • 4. 继承与多态
  • 5.== 与equals()
  • 6. 类加载顺序
  • 7. super()与this()
    • 7.1 super
      • 7.1.1 super调用父类构造方法
      • 7.1.2 super调用父类属性和方法
  • 7.2 this
  • 8. 抽象类
  • 9. 接口


1. 小数求模运算

public class Test{
	public static void main(String args[]){
		System.out.println(100%3);
		System.out.println(100%3.0);
	}
}

在这里插入图片描述

2. 进程的分区,这里说的不是JVM的分区。进程中,方法存放在方法区。

在这里插入图片描述

3. 访问权限控制

在这里插入图片描述

public权限,是同类内,同包内,包外子类,包外非子类都能访问。
protected,同类内,同包内,包外子类。
default,是同类内,同包内可以。
private,只能是同类内。

4. 继承与多态

在这里插入图片描述
Java中允许的继承方式有,单继承A—>B,多层继承A->B->C,不同的类继承一个类A->B,C->B,但是不允许多继承,也就是A->B,A->C.
多态的实现条件
a. 必须在继承体系下
b. 子类重写父类方法
c. 通过父类的引用调用重写的方法。

如下图,通过父类father的引用,调用两个子类重写的方法,会有不同的状态。

	public static void main(String[] args) {
        father f = new day2_1_1(2003, 8, 28);
        father f1 = new sun2(2001, 8, 28);
        f.speak();
        f1.speak();
    }

5.== 与equals()

在这里插入图片描述
“==”,如果是两个基本数据类型,比较的是值是否相等。如果是引用类型,比较的是两个对象的地址是否相等。
userId.toLowCase()会重新new一个String对象,在堆上开辟一块空间,和常量池中的"admin"地址是不同的。
如果要比较两个字符串的值是否相等,要用 userId.toLowerCase() .equals(“admin”);

6. 类加载顺序

在这里插入图片描述
由于hello()是静态方法,在实例化对象之前就已经被加载,属于类对象。只要是使用到了Test类,都会加载静态hello方法,所以test数据中包含Test类的静态初始化数据。但test无法调用类的非静态方法,会有空指针异常。

我们来猜一下,下面代码的执行结果吧

public class Day2_1_3 {
    public static void say(){
        System.out.println("hello");
    }
    static{
        System.out.println("我是静态代码块");
    }
    {
        System.out.println("我是实例代码块");
    }
    public void sayYes(){
        System.out.println("yes");
    }
    public static void main(String[] args) {
        Day2_1_3 d = null;
        System.out.println("我是第几条呢");
        Day2_1_3 d1 = new Day2_1_3();
        d.say();
        d.sayYes();
    }
}

在这里插入图片描述
静态代码块要先执行,实例代码块会在实例化对象的时候执行。

7. super()与this()

在这里插入图片描述
以下为super()和this()的主要用法

7.1 super

7.1.1 super调用父类构造方法

调用父类构造方法,有super(),及super(参数列表)两种写法,如下几种情况

  1. 父类未定义任何构造方法,则编译器默认为父类定义一个无参构造方法,子类构造方法中可通过不写super()语句,或在构造方法第一行写super()语句,都能在调用子类构造方法之前,调用父类构造方法。
  2. 父类定义了一个有参构造方法,和一个无参构造方法,子类可在构造函数第一行,用super(),或super(参数)两种语句,调用父类的构造方法,都是不会出错的
  3. 父类只定义了有参构造方法,未定义无参构造方法,这时,子类必须在构造方法第一行用super(参数列表)得方式,调用父类构造方法,使用super()的方式会报错

7.1.2 super调用父类属性和方法

  1. super.父类属性,调用父类非私有属性,可调用父类重名的,被隐藏的属性
  2. super.父类方法,可调用父类重名方法。

7.2 this

this主要用于在一个构造方法中调用另一个构造方法,如下图,在无参构造函数中,调用有参构造函数,可在构造函数开始之间,为对象设置默认值。
注意,super与this不能在同一个构造方法中使用。

class Person {
    private String name;
    private int age;

    // 构造函数1:无参构造函数
    public Person() {
        this("Unknown", 0); // 调用构造函数2
    }

    // 构造函数2:有参构造函数
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

8. 抽象类

在这里插入图片描述
抽象类中至少要有一个抽象方法,可以包含普通类能定义的所有类型。如成员属性,构造方法,静态成员变量,普通方法,抽象方法。以下为抽象方法的注意事项。

  1. 抽象类的抽象方法不能使用 private 修饰符,因为这会使得子类无法实现该方法。而对于其他修饰符,其作用和普通类的一样。
  2. 抽象类中的普通方法可以有实现体,子类可以继承这些方法。
  3. 抽象类中可以定义静态成员变量和方法。
  4. 抽象方法不能构造其实例。
  5. 子类必须重写抽象类中的全部抽象方法,否则,这个子类也是抽象类,需要用abstract修饰。

9. 接口

在这里插入图片描述
接口中的访问权限修饰符可以有public和默认两种,默认是可以被包内的其他类或接口访问。

  1. 接口中可以包含抽象方法,接口中的抽象方法与上述抽象类中的使用方法一样。
  2. 在Java 8及其后续版本中,接口中可以定义静态方法。定义一个静态方法需要使用关键字static来修饰,并且必须提供一个方法体。静态方法只能访问接口中的静态变量和其他静态方法。
  3. 在接口中,可以定义常量,这些常量用static final修饰,但从Java 8开始,接口中的常量可以省略public static final这些关键字,直接声明常量即可。Java中,接口中定义的常量默认都是被公开和静态的。这意味着无论哪个类、方法或者代码块都可以直接通过"接口名.常量名"的方式来访问接口中的常量。并且常量值无法被修改,可以在多线程环境下安全地共享。
  4. 从Java 8开始,接口可以包含默认方法,也称为扩展方法,方法用default修饰,这是一种有默认实现的接口方法。实现该接口的类可以选择重写默认方法,否则就会使用默认实现。
default sayYeah(){
	System.out.println("yeah");
}
  1. 接口中可以有内部类,注解和枚举类型。

哒哒


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

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

相关文章

Jabil EDI项目开源介绍

近期为了帮助广大用户更好地使用EDI系统,我们根据以往的项目实施经验,将成熟的EDI项目进行开源。用户安装好知行之桥EDI系统之后,只需要下载我们整理好的示例代码,并放置在知行之桥指定的工作区中,即可开始使用。 今天…

低代码工具库IRenderer『即可体验』上线了

在经历一段时间的折腾后,IRenderer迎来了一次版本更新,除了修复若干bug、优化编辑器性能外,在官网也添加了playground『即刻体验』入口。让您可以在线感受IRenderer可以提供的便利。 官网(github.io打开速度较慢,请稍等忍耐)地址…

SpringBoot——配置文件的分类

简单介绍: 在之前我们写配置文件的时候,我们直接在项目中的resources下面编写的配置文件,其实除了在这个路径下编写配置文件,还可以在其他的地方编写配置文件,并且不同位置的配置文件在启动的时候的优先级也是不一样的…

Srping注解之@Async:SpringBoot 实现异步调用

目录 1:前言 2:如何创建线程池 3:自定义线程池 1:前言 在日常开发过程中,会遇到一些需求是和主业务逻辑低耦合的,不要求和主业务逻辑同步进行,比如记录日志信息、发送消息通知电子邮件、生成…

Elasticsearch:使用 count API 来获得所有文档的个数

在我开始使用 Elasticsearch 的时候,我希望获得给定查询的文档总数。比如我们想对数据进行分页显示。从 Elasticsearch 7.0之后,为了提高搜索的性能,在 hits 字段中返回的文档数有时不是最精确的数值。Elasticsearch 限制了最多的数值为10000…

【开发者指南】如何在MyEclipse中编辑HTML或JSP文件?(一)

MyEclipse v2022.1.0正式版下载 如果您有HTML或JSP文件要编辑,这里将介绍如何编辑。查找以下信息: 编辑源代码大纲和属性视图参数页面 该功能在MyEclipse中是可用的。 一、HTML / JSP编辑器 要编辑HTML或JSP文件,请执行以下操作当中的一…

IPWorks BLE 2022 .NET Edition 22.0.8 Crack

IPWorks BLE 2022 .NET是一个蓝牙低功耗组件库,提供对 BLE 操作的直接访问。IPWorks BLE 组件提供简单的服务发现和对支持 BLE 的设备的访问。 蓝牙库 低功耗蓝牙组件 IPWorks BLE 包括一组功能强大的组件,用于将低功耗蓝牙通信功能集成到 Web、桌面和移…

Liunx 套接字编程(1)UDP协议的操作且实现一个UDP通信客户端

1.套接字编程 主要讲解的就是如何编写一个网络通信程序 1.网络通信的数据中都会包含一个完整的五元组: sip,sport,dip,dport,protocol(源端IP,源端端口,对端IP,对端端口,协议) 五元组完整的描述了数据从哪来,到哪去&am…

平抑风电波动的电-氢混合储能容量优化配置(matlab代码)

目录 1 主要内容 2 部分程序 3 程序结果 4 程序链接 1 主要内容 该程序部分复现电机文章《平抑风电波动的电-氢混合储能容量优化配置》,针对电-氢混合系统协同平抑接入新型电力系统的新能源波动问题,提出考虑碱性电解槽运行特性的电-氢混合储能容量…

D. Array Restoration(st表 O(1)查询区间最值)

Problem - D - Codeforces 给定一个由n个整数组成的初始数组a,位置从1到n编号。 对该数组执行q次查询,每次查询选择一个区间[li, ri](1≤li≤ri≤n),并将该区间内所有元素的值都改为i。查询的顺序不能更改&#xff0c…

企业多个文件存储系统并行使用,IT人员如何统一高效管理?

文件存储系统在企业内部应用广泛,各个企业使用习惯各不相同。很多企业在业务开展中,由于内部业务结构复杂、部门间文件存储习惯差异化、需要与外部合作伙伴进行数据文件交换等原因,会出现企业内部多个文件存储系统并行使用的情况。 对于IT技术…

IPB60R950C6-ASEMI代理英飞凌高压MOS管IPB60R950C6

编辑:ll IPB60R950C6-ASEMI代理英飞凌高压MOS管IPB60R950C6 型号:IPB60R950C6 品牌:Infineon(英飞凌) 封装:TO-263 最大漏源电流:12A 漏源击穿电压:600V RDS(ON)Max&#xff…

关于全志T113开发板接7寸LCD屏幕显示异常问题的解决方案

在入手全志T113之后,第一时间移植好了之前6ull平台的rootfs。但是在测试QT的过程中发现屏幕最右侧有一部分显示不正常,经过初步推测应该是RGB行场同步时序有问题。本以为在设备树里面稍作修改之后就能OK,但是居然前前后后一共花了至少三个星期…

期刊介绍|骨科老牌期刊,无版面费,审稿极速,毕业不二之选!

今天给大家介绍一本中药方面的期刊:JOURNAL OF ORTHOPAEDIC RESEARCH 一、基本信息 1、期刊名称:JOURNAL OF ORTHOPAEDIC RESEARCH; 2、期刊ISSN: 0736-0266; 3、研究方向:医学-整形外科; 4、出版社&#x…

AI怎么把游戏变好玩?米哈游出手了

《原神》发布两年半后,游戏新贵米哈游终于出新,上线了《崩坏:星穹铁道》。新游戏的一大亮点是内置了一个“图生图”的AIGC工具,用户可上传任何图片,生成对应风格的游戏角色“三月七”。 广大玩家脑洞大开,短短一周时间…

专业的图像编辑软件Affinity Photo 2.04版本在win10系统的下载与安装配置教程

目录 前言一、Affinity Photo安装二、使用配置总结 前言 Affinity Photo 是一款专业的图像编辑软件,提供了很多强大的工具和功能。 一些常用工具的介绍: 选择工具 ——矩形选择工具:用于选择矩形区域。 ——椭圆选择工具:用于选…

Android 网络编程基础

Android 网络编程是一个重要的开发技能,可以让我们的应用程序更加丰富、实用。需要开发者根据实际需求选择合适的网络通信方式,并结合安全协议和数据传输加密算法等措施,以保证数据传输的安全性和可靠性。 网络协议 在 Android 网络编程中&a…

虚拟环境中的 CPU 优化技巧

近年来,虚拟化已成为管理计算资源的主流方式,使用户能够在一台机器上运行多个操作系统和应用程序。虚拟化虽然带来了许多好处,例如更好的资源利用和更大的灵活性,但在优化CPU性能方面也带来了挑战。 在本文中,我们将探…

系统分析师:五、系统配置与性能评价

目录 一、性能指标 二、阿姆达尔解决方案 三、性能评价方法 一、性能指标 性能指标总体如下: 主频:也称时钟频率,主频越高,意味着CPU工作速度越快。它的倒数就是时钟周期。 CPI:每条指令执行锁需要的时钟周期数。 …

那些我收藏多年和偷摸使用的工具~~~

作为一个见到好东西,不管有没有用先收藏的我来说,本期活动实在是太有必要写一篇博客了 目录 展示我的收藏癖生活类收藏学习类收藏工具类收藏谷歌插件类收藏 工具推荐效率工具sublime 文件转换工具text转MarkdownMarkdown-Weixin[Cmd Markdown 编辑阅读器…