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

每天都在进步呀

文章目录

  • 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.rhkb.cn/news/246649.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(免费领源码)java#Springboot#mysql旅游景点订票系统68524-计算机毕业设计项目选题推荐

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作…

【C++】C++ 入门 — 命名空间,输入输出,函数新特性

C 1 前言2 命名空间2.1 概念引入2.2 开始使用2.3 投入应用 3 输入与输出3.1 基础知识3.2 开始使用3.3 注意局限 4 函数新特性4.1 缺省参数4.1.1 开始使用4.1.2 注意事项 4.2 函数重载4.2.1 开始使用4.2.2 如何实现 Thanks♪(・ω・)ノ谢谢阅读下…

go-zero 全局异常处理-全局中间件

1、在主入口新增 package mainimport ("flag""fmt""go/application/internal/config""go/application/internal/handler""go/application/internal/middleware""go/application/internal/svc"manage "go/pk…

Hive常见问题汇总

Hive和Hadoop的关系 Hive 构建在 Hadoop 之上, HQL 中对查询语句的解释、优化、生成查询计划是由 Hive 完成的 所有的数据都是存储在 Hadoop 中 查询计划被转化为 MapReduce 任务,在 Hadoop 中执行(有些查询没有 MR 任务,如&…

Linux使用二进制包安装MySQL

目录 一、软件包下载 二、上传软件包到Linux根目录 1、使用xftp将软件包上传到根目录 2、解压缩 三、准备工作 四、初始化软件 五、设置MySQL的配置文件 六、配置启动脚本 一、软件包下载 官网下载:MySQL :: Download MySQL Community Server 二、上传软件…

数学知识第三期 欧拉函数

前言 相信大家在高中的时候接触过欧拉函数,希望大家通过本篇文章能够进一步理解欧拉函数!!! 一、什么是欧拉函数? 欧拉函数是一个在数论中用于描述特定正整数的互质数的概念。具体来说,对于一个正整数n&…

Spring扩展点在微服务应用(待完善)

ApplicationListener扩展 nacos注册服务, 监听容器发布事件 # 容器发布事件 AbstractAutoServiceRegistration#onApplicationEvent # 接收事件吗,注册服务到nacos NacosServiceRegistry#register Lifecycle扩展 #订阅服务实例更改的事件 NamingService#…

Python环境下基于机器学习的NASA涡轮风扇发动机剩余使用寿命RUL预测

本例所用的数据集为C-MAPSS数据集,C-MAPSS数据集是美国NASA发布的涡轮风扇发动机数据集,其中包含不同工作条件和故障模式下涡轮风扇发动机多源性能的退化数据,共有 4 个子数据集,每个子集又可分为训练集、 测试集和RUL标签。其中&…

文心一言 VS ChatGPT :谁是更好的选择?

前言 目前各种大模型、人工智能相关内容覆盖了朋友圈已经各种媒体平台,对于Ai目前来看只能说各有千秋。GPT的算法迭代是最先进的,但是它毕竟属于国外产品,有着网络限制、注册限制、会员费高昂等弊端,难以让国内用户享受。文心一言…

Django从入门到精通(一)

目录 一、Django环境搭建与命令 1.1、安装 1.2、命令行 创建项目 编写代码 运行 app概念 1.3、Pycharm创建项目 1.4、虚拟环境 创建虚拟环境 - 命令行 介绍 操作 基本问题 Pycharm 项目虚拟环境 django虚拟环境【安装django最新版本】 django虚拟环境【安装指…

文件包含漏洞长度截断

长度截断 文件漏洞的利用方式什么是长度截断通过实操理解00截断对版本要求更高一点,而长度截断则是利用了windows的系统漏洞,就是windows文件名(就是文件名后缀之后)之后如果有空格,或者是点都会被忽略掉,也…

【GitHub项目推荐--游戏模拟器(switch)】【转载】

01 任天堂模拟器 yuzu 是 GitHub 上斩获 Star 最多的开源 Nintendo Switch 模拟器 ,使用 C 编写,考虑到了可移植性,该模拟器包括 Windows 和 Linux 端。 如果你的 PC 满足必要的硬件要求,该模拟器就能够运行大多数商业游戏&…

Leetcode 第 111 场双周赛题解

Leetcode 第 111 场双周赛题解 Leetcode 第 111 场双周赛题解题目1:2824. 统计和小于目标的下标对数目思路代码复杂度分析 题目2:2825. 循环增长使字符串子序列等于另一个字符串思路代码复杂度分析 题目3:2826. 将三个组排序思路代码复杂度分…

Jenkins上跑自动化项目,case出现错误时,导致项目运行时间过长,该如何处理?

1、方案一:Jenkins上调整 进入配置: 构建环境: 自行选择超时时间即可~ 2、方案二:代码调整【python】 安装插件:pytest-timeout 选择一:装饰器用法:将单个测试用例标记为超时&…

Linux之安装配置CentOS 7

一、CentOS简介 CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码&#xff0c…

Linux/Academy

Enumeration nmap 首先扫描目标端口对外开放情况 nmap -p- 10.10.10.215 -T4 发现对外开放了22,80,33060三个端口,端口详细信息如下 结果显示80端口运行着http,且给出了域名academy.htb,现将ip与域名写到/et/hosts中,然后从ht…

Procexp64.exe —— 强大的进程管理器

1,简介 Process Explorer 是一款增强型的任务管理器,你可以使用它方便地管理你的程序进程,能强行关闭任何程序。 除此之外,它还详尽地显示计算机信息:CPU、内存使用情况,DLL、句柄信息,很酷的…

redis-4 搭建redis集群

1.为什么需要redis集群? Redis 集群提供了高可用性、横向扩展和数据分片等功能,使得 Redis 能够应对大规模的数据存储和高并发访问的需求。以下是一些需要使用 Redis 集群的常见情况: 高可用性:通过在多个节点之间进行数据复制和…

【动态规划】【逆向思考】【C++算法】960. 删列造序 III

作者推荐 【动态规划】【map】【C算法】1289. 下降路径最小和 II 本文涉及知识点 动态规划汇总 LeetCode960. 删列造序 III 给定由 n 个小写字母字符串组成的数组 strs ,其中每个字符串长度相等。 选取一个删除索引序列,对于 strs 中的每个字符串&a…

虹科数字化与AR部门升级为安宝特AR子公司

致关心虹科AR的朋友们: 感谢您一直以来对虹科数字化与AR的支持和信任,为了更好地满足市场需求和公司发展的需要,虹科数字化与AR部门现已升级为虹科旗下独立子公司,并正式更名为“安宝特AR”。 ”虹科数字化与AR“自成立以来&…