【Java面试八股文宝典之基础篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day10

news2024/10/7 18:31:42

  大家好,我是陶然同学,软件工程大三明年实习。认识我的朋友们知道,我是科班出身,学的还行,但是对面试掌握不够,所以我将用这100多天更新Java面试题🙃🙃。

  不敢苟同,相信大家和我一样,都有一个大厂梦,作为一名资深Java选手,深知面试重要性,接下来我准备用100天时间,基于Java岗面试中的高频面试题,以每日3题的形式,带你过一遍热门面试题及恰如其分的解答。当然,我不会太深入,因为我怕记不住!!

  因此,不足的地方希望各位在评论区补充疑惑、见解以及面试中遇到的奇葩问法,希望这100天能够让我们有质的飞越,一起冲进大厂!!,让我们一起学(juan)起来!!!

String、StringBuffer、StringBuilder的区别

1. String是不可变的,如果尝试去修改,会新⽣成⼀个字符串对象,StringBuffer和StringBuilder是
可变的
2. StringBuffer是线程安全的,StringBuilder是线程不安全的,所以在单线程环境下StringBuilder效
率会更⾼

重载和重写的区别

1. 重载: 发⽣在同⼀个类中,⽅法名必须相同,参数类型不同、个数不同、顺序不同,⽅法返回
值和访问修饰符可以不同,发⽣在编译时。
2. 重写: 发⽣在⽗⼦类中,⽅法名、参数列表必须相同,返回值范围⼩于等于⽗类,抛出的异常
范围⼩于等于⽗类,访问修饰符范围⼤于等于⽗类;如果⽗类⽅法访问修饰符为private则⼦类就不
能重写该⽅法。
public int add(int a,String b)
public String add(int a,String b)
//编译报错

接⼝和抽象类的区别

  • 抽象类可以存在普通成员函数,⽽接⼝中只能存在public abstract ⽅法。
  • 抽象类中的成员变量可以是各种类型的,⽽接⼝中的成员变量只能是public static final类型的。
  • 抽象类只能继承⼀个,接⼝可以实现多个。
接⼝的设计⽬的,是对类的⾏为进⾏约束(更准确的说
是⼀种“有”约束,因为接⼝不能规定类不可以有什么⾏为),也就是提供⼀种机制,可以强制要求
不同的类具有相同的⾏为。它只约束了⾏为的有⽆,但不对如何实现⾏为进⾏限制。

 

⽽抽象类的设计⽬的,是代码复⽤。当不同的类具有某些相同的⾏为(记为⾏为集合A),且其中⼀
部分⾏为的实现⽅式⼀致时(A的⾮真⼦集,记为B),可以让这些类都派⽣于⼀个抽象类。在这
个抽象类中实现了B,避免让所有的⼦类来实现B,这就达到了代码复⽤的⽬的。⽽A减B的部分,
留给各个⼦类⾃⼰实现。正是因为A-B在这⾥没有实现,所以抽象类不允许实例化出来(否则当调
⽤到A-B时,⽆法执⾏)。
抽象类是对类本质的抽象,表达的是 is a 的关系,⽐如: BMW is a Car 。抽象类包含并实现⼦类
的通⽤特性,将⼦类存在差异化的特性进⾏抽象,交由⼦类去实现。⽽接⼝是对⾏为的抽象,表达
的是 like a 的关系。⽐如: Bird like a Aircraft (像⻜⾏器⼀样可
以⻜),但其本质上 is a Bird 。接⼝的核⼼是定义⾏为,即实现类可以做什么,⾄于实现类主体
是谁、是如何实现的,接⼝并不关⼼。
使⽤场景:当你关注⼀个事物的本质的时候,⽤抽象类;当你关注⼀个操作的时候,⽤接⼝。
抽象类的功能要远超过接⼝,但是,定义抽象类的代价⾼。因为⾼级语⾔来说(从实际设计上来说
也是)每个类只能继承⼀个类。在这个类中,你必须继承或编写出其所有⼦类的所有共性。虽然接
⼝在功能上会弱化许多,但是它只是针对⼀个动作的描述。⽽且你可以在⼀个类中同时实现多个接
⼝。在设计阶段会降低难度

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

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

相关文章

锐捷RLDP理论及实验讲解

RLDP概念 RLDP(Rapid Link Detection Protocol)是一个用于快速检测以太网链路故障的链路协议,包括环路链路故障、单向链路故障、双向链路故障等 工作原理 RLDP定义了两种协议报文:探测报文(Probe)和探测响…

【Java第32期】:Spring 中普通Maven项目的创建

作者:有只小猪飞走啦 博客地址:https://blog.csdn.net/m0_62262008?typeblog 内容:Spring 中普通Maven项目的创建 文章目录前言一,创建Spring项目1.创建一个普通的Maven项目2,添加Spring框架3,添加启动类…

【数据库系统概论】关系数据理论、范式

数据库一二三范式简单解释 第一范式 一个关系模式应当是一个五元组。 R(U,D,DOM,F)R(U,D,DOM,F)R(U,D,DOM,F) 这里: 关系名RRR是符号化的元组语义UUU为一组属性DDD为属性组UUU中的属性所来自的域DOMDOMDOM为属性到域的映射FFF为属性组UUU上的一组数据依赖 由于D…

RabbitMQ_概述

RabbitMQ大致工作流程图 解释 Producer:生产者 Consumer:消费者 Connection:AMQP协议连接 Channel:信道,进行消息读写的通道,RabbitMQ的绝大部分操作在信道完成;客户端可以建立多个信道&…

用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (4)- 自定义功能块(上)

AWPLC 目前还处于开发阶段的早期,写这个系列文章的目的,除了用来验证目前所做的工作外,还希望得到大家的指点和反馈。如果您有任何疑问和建议,请在评论区留言。 1. 背景 AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源…

PTA题目 两个数的简单计算器

本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。 输入格式: 输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数…

跟艾文学编程《Python基础》(7)pandas数据分析

作者: 艾文,计算机硕士学位,企业内训讲师和金牌面试官,公司资深算法专家,现就职BAT一线大厂。邮箱: 1121025745qq.com博客:https://wenjie.blog.csdn.net/内容:跟艾文学编程《Python…

汉字风格迁移篇---W-net:基于深度神经网络的一次任意风格汉字生成

文章目录一、摘要二、提出原因已有的一些模型解决方案依然存在的限制三、介绍与创新四、模型介绍预处理w-net结构优化策略和损失函数五、实验实验设置用zi2zi作为基线具体实现1、 W-Net训练期间的超参数设置如下:2、一些细节处理模型评估W-net、zi2zi-v1、zi2zi-v2不…

第2-3-7章 个人网盘服务接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

文章目录5.8 导入其他接口代码5.8.1 接口导入-分页查询附件5.8.2 接口导入-根据业务类型/业务id查询附件5.9 导入网盘服务接口5.9.1 导入FileController5.9.2 导入StatisticsController5.9.3 导入FileRestManager5.9.4 导入FileService5.9.5 导入FileServiceImpl5.9.6 扩展File…

面向OLAP的列式存储DBMS-8-[ClickHouse]的常用聚合函数

ClickHouse 中的常用聚合函数 1 聚合函数 ClickHouse 中的聚合函数,因为和关系型数据库的相似性,本来聚合函数不打算说的,但是 ClickHouse 提供了很多关系型数据库中没有的函数,所以我们还是从头了解一下。 1.1 count count&…

Vue3 用src动态引入本地图片

💭💭 ✨: Vue3 用src动态引入本地图片   💟:东非不开森的主页   💜: 躲起来的星星也在努力发光 你也要💜💜   🌸: 如有错误或不足之处,希望可以指正&#…

Qt OpenGL(二十二)——Qt OpenGL 核心模式-VAO和VBO

Qt OpenGL(二十二)——Qt OpenGL 核心模式-VAO和VBO 一、再谈VAO、VBO 上一篇文章,通过VAO、VBO绘制了一个三角形,过程需要创建VAO、VBO和释放。之所以有这些步骤,就是因为OpenGL本质就是一个大的状态机。但是我们如果要继续学习核心模式的OpenGL的话,VAO、VBO是我们必…

Java集合(一):泛型与Collection集合

目录 集合预热:泛型 泛型的优点 自定义泛型类型 自定义泛型类/接口 泛型使用细节 自定义泛型方法 泛型与继承关系 不存在继承关系的情况 通配符与存在继承关系的情况 泛型受限 集合概述 集合的作用与存储内容 集合与数据结构 集合:Collectio…

【基础算法系列】离散化与前缀和算法的运用

⭐️前面的话⭐️ 本篇文章将主要介绍离散化算法,所谓离散化算法,就是将一个无限区间上散点的数,在不改变相对大小的情况下,映射到一个较小的区间当中,然后对这个较小的区间进行操作的过程就是离散化的过程&#xff0…

【C++笔试强训】第二十八天

🎇C笔试强训 博客主页:一起去看日落吗分享博主的C刷题日常,大家一起学习博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。 💦&a…

微信小程序自定义tabBar(实操)

文章目录一、前言二、固定效果图实现步骤实现步骤完整代码-矢量图images图片app.json代码三、自定义效果图实现步骤实现步骤完整代码-矢量图images图片app.json代码custom-tab-bar下的代码使用自定义TaBar一、前言 一般使用tabBar的样式,固定不能改变。如下固定效果…

java计算机毕业设计springboot+vue村委会管理系统

项目介绍 本村委会管理系统是针对目前村委会管理的实际需求,从实际工作出发,对过去的村委会管理系统存在的问题进行分析,完善用户的使用体会。采用计算机系统来管理信息,取代人工管理模式,查询便利,信息准确率高,节省了开支,提高了工作的效率。 本系统结合计算机系统的结构、概…

DPDK-A3: KVM使用SRIOV和虚机使用DPDK

虚拟机基本管理 如下命令可以修改默认网段 sudo virsh net-edit --network default<network><name>default</name><uuid>45ed012c-3933-4f3e-9575-b37bffa21b83</uuid><forward modenat/><bridge namevirbr0 stpon delay0/><ma…

解决javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V异常

文章目录异常&#xff1a;不同jar包的多xml解析器冲突解决其他异常&#xff1a; java.lang.AbstractMethodError:javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)可能原因&#xff1a; 在本地WINDOWS编译测试没问题&#xff0c;只在LINUX服务器上面…

通讯录的实现【涉及动态内存管理和文件操作】【从易到难】【详解】

本期介绍&#x1f356; 主要介绍&#xff1a;如何实现一个通讯录&#xff0c;从静态版通讯录&#xff0c;到动态内存版通讯录&#xff0c;再到文件存储版通讯录&#xff0c;详细讲述了每一个通讯录的实现步骤以及思维逻辑&#xff0c;以及通讯录的完整代码&#x1f440;。 文章…