【牛客刷题】笔试选择题整理(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.mzph.cn/news/651881.shtml

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

相关文章

私人漫画图书馆:分类管理,一目了然 | 开源日报 No.157

tachiyomiorg/tachiyomi Stars: 26.9k License: Apache-2.0 tachiyomi 是一个免费开源的安卓漫画阅读器。 该项目的主要功能、关键特性、核心优势包括: 从多种来源在线阅读本地阅读已下载内容可配置的阅读器,具有多个查看器、翻页方向和其他设置支持追…

什么叫高斯分布?

高斯分布,也称为正态分布,是统计学中最常见的概率分布之一。它具有钟形曲线的形态,对称分布在均值周围,且由均值和标准差两个参数完全描述。 高斯分布的概率密度函数(Probability Density Function, PDF)可…

[设计模式Java实现附plantuml源码~创建型] 复杂对象的组装与创建——建造者模式

前言: 为什么之前写过Golang 版的设计模式,还在重新写Java 版? 答:因为对于我而言,当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言,更适合用于学习设计模式。 为什么类图要附上uml 因为很…

DevOps系列文章之 GitLabCI汇总

GitlabCI环境搭建 前提 先安装 docker Docker容器化安装 docker pull gitlab/gitlab-ee:12.4.0-ee.0 创建挂载目录 mkdir -p /srv/gitlab mkdir -p /srv/gitlab/config # 映射到 Glitlab 容器中的配置目录 mkdir -p /srv/gitlab/logs # 映射到 Glitlab 容器中的日志目录 m…

mac裁剪图片

今天第一次用mac裁剪图片,记录一下过程,差点我还以为我要下载photoshop了, 首先准备好图片 裁剪的目的是把图片的标题给去掉,但是不能降低分辨率,否则直接截图就可以了 解决办法 打开原始图片(不要使用预览&#xf…

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

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

【开源】基于JAVA语言的二手车交易系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 二手车档案管理模块2.3 车辆预约管理模块2.4 车辆预定管理模块2.5 车辆留言板管理模块2.6 车辆资讯管理模块 三、系统设计3.1 E-R图设计3.2 可行性分析3.2.1 技术可行性分析3.2.2 操作可行性3.2.3 经济…

Java入门——数据类型、自动类型转换、强制类型转换

目录 数据类型 基本数据类型 自动类型转换 表达式的自动类型转换 强制类型转换 计算机中表示数据的最小单元 计算机中表示数据的最小单元:一个字节(byte,简称B,是使用8个二进制位组成的)字节中的每个二进制位就称…

Python进阶第一篇(Python的面向对象)

文章目录 一、初识对象1.案例代码2.读出结果 二、类的成员方法三、类和对象四、构造方法六、其他内置方法1.魔术方法案例代码2.读出结果 七、封装1.封装案例代码2.读出结果 八、继承1.复写与调用2.类型注解 九、多态 在这个探索和学习的旅程中,我们将深入理解一些编…

基于DataKit迁移MySQL到openGauss

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

网络防御保护——防火墙子接口配置

一.实验拓扑图 二.实验要求 1.生产区在工作时间内可以访问服务区,仅可以访问http服务器。 2.办公区全天可以访问服务区,其中,10.0.2.20可以访问FTP服务器和HTTP服务器,10.0.2.10仅可以ping通10.0.3.10。 3.办公区在访问服务区时采…

【软件测试】学习笔记-Nginx 在系统架构中的作用

本篇文章你探讨 Nginx 在应用架构中的作用,并从性能测试角度看如何利用 Nginx 数据统计用户访问量。 Nginx 重要的两个概念 代理 首先要来解释一下什么是代理,正向代理和反向代理是什么意思?各自作用是什么?不少同学经常听到这…

C语言——操作符详解2

目录 0.过渡0.1 不创建临时变量,交换两数0.2 求整数转成二进制后1的总数 1.单目表达式2. 逗号表达式3. 下标访问[ ]、函数调用( )3.1 下标访问[ ]3.2 函数调用( ) 4. 结构体成员访问操作符4.1 结构体4.1.1 结构体的申明4.1.2 结构体变量的定义和初始化 4.2 结构体成…

【Web】小白也能做的RWCTF体验赛baby题部分wp

遇到不会的题,怎么办!有的师傅告诉你完了,废了,寄了!只有Z3告诉你,稳辣!稳辣!都稳辣! 这种CVE复现的题型,不可能要求选手从0到1进行0day挖掘,其实…

Go语言安装及开发环境配置

目录 官网 国内 Linux(CentOS & Ubuntu)安装 环境变量设置 命令行下开发 开发模式执行 编译 IDE下开发 插件安装 安装依赖工具 运行 常见问题 1、dial tcp 172.217.160.113:443: i/o timeout 2、VS Code不能完美显示zsh问题 官网 访问Golang官网的下载链接&a…

【JS基础】事件对象event、环境对象this、事件的高级操作

文章目录 一、事件对象1.1 事件对象是什么?1.2 使用方法 二、环境对象this以及回调函数2.1 它是什么?2.2 演示示例 三、事件的高级操作3.1 事件流3.2 事件捕获3.3 事件冒泡以及阻止冒泡3.4 事件解绑3.5 mouseover和mouseenter事件的区别3.6 事件委托它是…

树莓派基础应用:智能家居监控系统

引言: 随着智能家居的普及,家居安全与监控逐渐成为人们关注的焦点。树莓派作为一种功能强大的迷你计算机,为我们提供了实现智能家居监控系统的可能。在本篇博客中,我们将通过构建一个简单的智能家居监控系统,来探索树莓…

Vue<圆形旋转菜单栏效果>

效果图: 大家不一定非要制成菜单栏,可以看下人家的华丽效果😝,参考地址 https://travelshift.com/ 大佬写的效果可比我的强多了,但是无从下手,所以就自己琢磨怎么写了,只能说效果勉强差不多 可…

thinkadmin列表页工单状态多色显示,操作按钮条件判断

{field: gdtz, title: 工单状态, align: left, minWidth: 140,templet: function (d){if (d.gdtz==1){return "<span class=layui-badge layui-bg-cyan>" + 报装已提交 + "</span>" ;}else if (d.gdtz==2){return "

【开发用苹果电脑选择】MacBook下半部——无头骑士

开发用苹果电脑&#xff0c;16G是最低要求&#xff0c;IDEA开两个窗口内存基本满了&#xff0c;32G的苹果电脑都要2万 下面是我收集的2万苹果电脑的替代品 关键词&#xff1a;MacBook下半部下半套无头骑士 32G内存2T硬盘4300元&#xff0c;优点&#xff1a;白苹果、价格便宜