一些基础面试题

重写和重载的区别:

方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求,不能根据返回类型进行区分。

Java三大特征:


封装、继承、多态

封装:

一个类把自己内部的实现细节进行隐藏,只暴露对外的接口。

提高安全性

继承:

子类可以拥有父类的成员变量以及成员方法,但是不一定能访问或者调用,父类中private私有的成员变量以及方法不能访问和调用。

能提高代码的复用性

多态:

继承

方法重写 

父类引用指向子类对象

抽象和接口的区别:

接口是一种特殊的抽象类,比抽象还抽象。

接口是行为的抽象,是一种行为规范。抽象是对类的抽象,是一种模板设计。

接口可以多实现,抽象只能单继承

深拷贝和浅拷贝:

深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型的

浅拷贝:复制某个对象的地址,不复制对象本身,和原对象 共享同一块内存,一个对象改变了地址,会影响另一个对象

深拷贝:会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会影响原对象

String的理解:

1、String类中的数据是不可变的,如果要改变则需要重新创建新的String对象

2、字符串缓冲区支持可变的字符串

3、String类为final类修饰,则不能继承

为什么String不可变:

一个String对象被创建以后,包含这个对象中的字符串序列是不可改变的,当final修饰基本类型变量时,不能对基本类型变量重新赋值,对引用类型变量来说,final只保证这个引用变量所引用的地址不会改变。指向数组的final引用,数组的内容可以通过反射来改变,但引用地址不可变。

Java中Stringbuilder与Stringbuffer区别及应用场景:

StringBuilder:非线程安全,StringBuffer:线程安全

速度:StringBuilder > StringBuffer

StringBuffer在修改时会改变对象自身,不会生成新的对象

StringBuilder 适用于单线程操作

 StringBuffer适用于多线程操作

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

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

相关文章

访问ipv6的坑

如何访问ipv6站点 本机ipv6回环地址: http://[0:0:0:0:0:0:0:1]:8080/index.html 类似ipv4的127.0.0.1 查看本机的ipv6地址 使用ipconfig命令查看 ac900::27bf:9999:6950:dfa7%15需要去掉%符号后面的内容 ac900::27bf:9999:6950:dfa http://[ac900::27bf:9999:6950:dfa]:80…

Java对象的内存分布(一)

一、概览 在Hotspot虚拟机中,java对象在内存中分布如下图所示: --------------------------------------------- | 对象头 | 实例数据 | 对齐填充 | --------------------------------------------- 对象大小 对象头 实例数据 [填…

docker部署微信小程序自动构建发布和更新

通过 Jenkins 和 Docker 部署微信小程序,并实现自动构建、发布和版本更新,主要涉及以下几个步骤: 设置 Jenkins 环境配置 GitLab 与 Jenkins 的集成构建 Docker 镜像部署和发布微信小程序配置 Jenkins 自动构建 以下是详细的步骤说明&#…

RY2200 One Cell Li-ion and Li-poly Battery Protection IC

1、Features Protection ofCharger Reverse Connection 50mΩ Low RssoN) Internal Power MOSFET Protection of Battery Cell Reverse Connection Delay Times are generated inside Over-temperature Protection …

鼎盛合|高转速无刷风扇方案设计开发

在现代科技飞速发展的时代,人们对于电器设备的性能要求越来越高。风扇作为一种常见的电器,在日常生活和工业生产中都有着广泛的应用。而高转速无刷风扇以其高效、低噪、长寿命等优点,逐渐成为了市场的宠儿。本文将详细探讨高转速无刷风扇的方…

H3C MPLS跨域optionB

实验拓扑 实验需求 如图,VPN1 和 VPN2 分别通过运营商 MPLS VPN 连接各自分支机构按照图示配置 IP 地址,VPN1 和 VPN2 连接同一个 PE 设备的私网 IP 网段存在地址复用,使用多 VRF 技术来防止 IP 冲突AS 100 和 AS 200 内部的公共网络中各自运行 OSPF 使 AS 内各设备的 Loo…

harmony动画属性

属性动画 显式动画 转场动画

【day16】Java开发常用API

模块15回顾 在深入探讨模块16之前,让我们回顾一下【day15】中的重点内容: String类: 构造方法:String(), String(String s), String(char[] chars), String(byte[] bytes), String(char[] chars, int offset, int count), String…

申请腾讯混元的API Key并且使用LobeChat调用混元AI

申请腾讯混元的API Key并且使用LobeChat调用混元AI 之前星哥写了一篇文章《手把手教拥有你自己的大模型ChatGPT和Gemini等应用-开源lobe-chat》搭建的开源项目,今天这篇文章教大家如何添加腾讯云的混元模型,并且使用LobeChat调用腾讯混元AI。 申请腾讯混…

es 中使用update 、create 、index的区别

文章目录 1. index 操作示例:index 操作Bulk 示例中的 index 操作: 2. create 操作示例:create 操作Bulk 示例中的 create 操作: 3. update 操作示例:update 操作Bulk 示例中的 update 操作: 4. 区别总结总…

3D几何建模引擎Parasolid功能解析

一、什么是Parasolid? Parasolid是由Siemens PLM Software开发的高精度精密几何建模引擎。它全面评估CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAE(计算机辅助工程)、PLM(产品生…

【深度学习-调参】Batch 大小与类别数到底有没有潜在的关系?

文章目录 深度学习中的 Batch 概念为什么关注批次内的类别分布?合理的类别分布策略1. 保持与整体数据集的类别比例一致2. 固定每个类别的采样数量3. 动态采样(自适应采样)不同场景下的选择Batch 大小与类别数之间的关系结语使用 PyTorch 的 `WeightedRandomSampler` 来平衡批…

QT开发【常用控件1】-Layouts Spacers

在 Qt 中,布局(Layouts)和间距(Spacers)是创建用户界面的关键组成部分。它们帮助开发者在窗口或对话框中组织和排列控件,以实现灵活和美观的界面设计。 1. 布局(Layouts) 布局是 Q…

flink sink doris

接上文&#xff1a;一文说清flink从编码到部署上线 网上关于flink sink drois的例子较多&#xff0c;大部分不太全面&#xff0c;故本文详细说明&#xff0c;且提供完整代码。 flink doris版本对照表 1.添加依赖 <!--doris cdc--><!-- 参考&#xff1a;"https…

【EthIf-14】EthIfGeneral容器配置-02

1.实际EthIfGeneral的配置实例 关闭DET接口开启发送确认中断开启接收中断主周期接收timeout主周期 2. 代码实例参考 阅读此部分代码,搞清楚代码分为几个section,大概瞄一眼就好,不用深究其含义,只需有一个宏观的层次结构的映像即可。 //Appl/GenData/EthIf_Cfg.h #

修炼内功之函数栈帧的创建与销毁

修炼内功之函数栈帧的创建与销毁 一 前置知识&#xff08;1&#xff09;栈&#xff08;2&#xff09;相关寄存器和汇编指令 二 函数栈帧三 代码演示函数栈帧的创建&#xff08;1&#xff09;代码演示&#xff08;2&#xff09;函数栈帧逐帧分析 四 对开篇问题的解答 相信来CSDN…

QT用Enigmavb 打包成单独exe

QT用这个工具打包成单个exe&#xff0c;然后再用winrar打包成zip可以发给别人 在之前需要用QT的release打包 之前的文章QTrelease打包【非单个exe】 Enigmavb 打包流程&#xff1a; 安装过程&#xff1a; next-》i accept -》选择安装位置 -》next -》Create a desktop ic…

云原生后端开发(一)

云原生后端开发 云原生&#xff08;Cloud-Native&#xff09;是指一种构建和运行应用程序的方式&#xff0c;它充分利用了云计算的特点&#xff0c;比如弹性伸缩、自动化部署、容器化等。在云原生的架构下&#xff0c;后端应用通常具备高度可扩展、可维护、易于自动化管理的特…

图的最短路径(C++实现图【4】)

目录 1. 最短路径 1.1单源最短路径--Dijkstra算法 代码实现 1.2 单源最短路径--Bellman-Ford算法 代码实现 1.3 多源最短路径--Floyd-Warshall算法 代码实现 1. 最短路径 最短路径问题&#xff1a;从在带权有向图G中的某一顶点出发&#xff0c;找出一条通往另一顶点的最短路径&…

udp tcp协议

文章目录 1. UDP协议1.1 端口号1.2 UDP协议格式1.3 UDP特性1.4 报文的封装 2. TCP协议2.1 TCP协议格式2.2 TCP策略2.2.1 确认应答机制(ACK)序号与确认序号6个标志位序号的理解 2.2.2 超时重传机制2.2.3 连接管理机制三次握手四次挥手理解三次握手理解四次挥手 2.2.4 流量控制2.…