Java 基础面试题

文章目录

  • 重载与重写
  • 抽象类与接口
  • 面向对象
  • a = a + b 与 a += b 的区别
  • final、finalize、finally
  • String、StringBuild、StringBuffer
  • 位运算
  • 反射

重载与重写

重载:是在同一个类中,方法名相同,方法参数类型,个数不同,返回类型不同。

重写:子类重写父类的方法,方法名,参数等等都一致。主要用于面向对象多态的实现条件之一。就是父类的引用指向子类的对象。

抽象类与接口

抽象类:用 abstract 修饰的类为抽象类,里面可以定义抽象方法,普通方法,局部变量,如果子类不是抽象类继承抽象父类需要重写抽象父类的方法。

接口:Interface 关键字,里面只能定义公共抽象的方法,局部变量也一定为公共静态常量,实现该接口的实现类必须重写该接口的全部方法。

一个类可以实现多个接口,但是只能继承一个类。

面向对象

面向对象三个特性

第一封装:就是将方法和变量,封装在类中,对外展现需要暴露的方法,隐藏内部实现的细节。使用时通过创建一个对象来调用类中的方法,创建一个一个类似于模块化的结构,每个类各司其职,便于管理与维护,也起到代码复用的效果。

第二继承:通过继承,子类可以获取父类私有以外的方法和变量。实现了代码的复用。

第三多态:

第一种是编译时多态,主要通过方法的重载实现。

第二种是运行时多态,对象引用的具体类型在运行时才确定,通过子类继承父类并重写父类的方法,然后使用父类的引用指向子类的对象实现。

a = a + b 与 a += b 的区别

a += b 会自动转化类型,比如 bype a = 127 , bype b = 127 , a += b , a 的类型转为 int 型。

a = a + b 时,,比如 bype a = 127 , bype b = 127 , a = a + b,会报错,超出类型的范围。

final、finalize、finally

final,关键字修饰的方法,变量,在初始化后就不能修改。

finalize()方法,是在内存对象被垃圾回收算法清除之前调用的方法,可以重写用来做一些清理工作。

finally是try-catch 异常处理的结构,finally是一定会被执行的,一般用于释放数据等等。

String、StringBuild、StringBuffer

String 是不可变的字符串,每当修改它时,都会创建一个新的字符串。

StringBuilder 和 StringBuffer 是可变的字符串,每当修改它时,都是在原来的字符串上修改。两者的区别在于:StringBuilder 是线程不安全的,但是效率比较快,StringBuffer 是线程安全的,但是效率比较慢。

所以如果需要使用频繁修改的字符串,建议使用 StringBuilder 和 StringBuffer,这样可以避免资源造成的浪费。如果是在并发的情况下,使用 StringBuffer 保证线程安全。

位运算

左移符 x >> 1,等同于 x 乘 2 ,位运算中,低位补 0

右移符 x << 1 ,等同与 x 除 2 ,位运算中,高位补 0,低位补 1

无符号右移 >>>,忽略符号位,空位都以 0 补齐。

反射

程序在运行时的时候,通过反射来获取类信息,用类来调用方法与属性,或者通过反射获取对象,用对象来调用方法与属性。

我是小辉,24 届毕业生。当下是找工作ing,欢迎关注,持续分享。

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

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

相关文章

苹果不会在WWDC 2024中推出任何搭载M4芯片的Mac电脑

虽然苹果公司已在上月推出了首搭 M4 芯片的 iPad Pro&#xff0c;不过彭博社的马克・古尔曼在最近的实时通讯中透露苹果公司不会在即将进行的 WWDC 2024 开发者大会中推出任何搭载 M4 芯片的 Mac 电脑&#xff08;不会推出任何硬件产品&#xff09;。 此前报道&#xff0c;苹果…

linux命令别名与shell函数

# 修改网卡配置 alias vinetwork"vi /etc/sysconfig/network-scripts/ifcfg-ens33" 1. 方法和调用在同一个文件 # 定义shell函数,返回值通过$?获取 function say_hello(){ echo "hello shell" return 1 } # 使用shell函数 say_hello # 执行脚本后接收返…

源代码防泄密是什么?

1.源代码防泄密的概念 源代码防泄密是指采取一系列措施和技术手段&#xff0c;以防止源代码被未授权的访问、复制、传播或篡改&#xff0c;从而保障软件的知识产权和系统的安全性。 2.源代码防泄密的重要性 源代码是软件的核心部分&#xff0c;一旦泄露&#xff0c;可能会被…

fastjson序列化对象后属性变更问题

使用fastjson进行JSON序列化存储到数据库后&#xff0c;发现JSON字符串“莫名其妙地”多了一些属性。 public class MyClass {// boolean 类型的属性private boolean isActive;private boolean valid;// int 类型的属性private int id;// 默认构造器public MyClass() {}// 带有…

前端框架之 MVVM

MVVM vue 是典型的 MVVM 框架&#xff0c;v-model 实现了 VM 部分 MVVM 的理解 M&#xff1a;模型层、数据层&#xff0c;简单理解就是定义在 data 中的变量 V&#xff1a;视图层&#xff0c;就是浏览器展示的页面 M > V&#xff1a;数据的改变&#xff0c;需要同步更新…

公寓远程抄表系统:智能管理方法新的篇章

1.界定和功能 公寓远程抄表系统是一种前沿的自动化控制&#xff0c;它允许物业管理管理人员在远离现场部位收集和分析公寓里的电力能源使用数据&#xff0c;似水、电、气等。根据集成传感器、物联网产品和云计算&#xff0c;系统能实时检测并记录公寓的能耗状况&#xff0c;大…

OCR行驶证识别介绍

OCR行驶证识别是一种基于光学字符识别&#xff08;OCR&#xff09;技术的应用&#xff0c;专门用于识别机动车行驶证上的关键字段信息。以下是关于OCR行驶证识别的详细解释&#xff1a; 定义与原理 OCR行驶证识别通过扫描或拍摄行驶证图片&#xff0c;利用计算机视觉和模式识别…

可视化数据科学平台在信贷领域应用系列三:特征组合

现代各企业都提倡“降本增效”&#xff0c;所以越来越多优秀的工具诞生了。若想在特征加工这块工作上提升效率&#xff0c;建模人员也能有更多时间“偷懒”&#xff0c;都 “Sora”时代了&#xff0c;为啥不巧用工具呢&#xff1f;RapidMiner在信贷风控特征加工组合中是一把利器…

17 - 项目员工 I(高频 SQL 50 题基础版)

17 - 项目员工 I select-- round(sum(e.experience_years)/count(*),2) p.project_id,round(avg(e.experience_years),2) average_years from Project p left join Employee e on p.employee_ide.employee_id group by p.project_id;

智能座舱车载数字人解决方案,低资源占用

随着智能汽车的快速发展&#xff0c;人们对汽车的需求已经超越了单纯的交通工具定义&#xff0c;而是更加追求个性化、智能化的出行体验。在这样的背景下&#xff0c;美摄科技凭借其卓越的技术实力和创新能力&#xff0c;推出了面向企业的智能座舱车载数字人解决方案&#xff0…

Qt Creator常用的快捷键和常用功能

常用快捷键 新建项目&#xff0c;ctrl n 运行项目&#xff0c;ctrl r 构建项目&#xff0c;ctrl b 改变编辑器界面字体显示比例大小&#xff0c;ctrl 鼠标滚轮 对齐代码&#xff0c;ctrl a; ctrl i 跳转到上一行&#xff0c;ctrl shift enter 跳转到下一行&#xff0c;…

nn.GRU和nn.GRUCell区别

nn.GRU和nn.GRUCell在PyTorch中都是用于实现门控循环单元(Gated Recurrent Unit, GRU)的模块,但它们之间存在一些区别: 输入维度: nn.GRU是一个完整的GRU层,它接受一个3D输入张量(batch_size, seq_length, input_size),输出也是一个3D张量(batch_size, seq_length, hidden_si…

Error Domain=com.google.admob Code=1 “Request Error: No ad to show.“

Error Domaincom.google.ads Code1 "Request Error: No ad to show." UserInfo{NSLocalizedDescriptionRequest Error: No ad to show., NSLocalizedFailureReasonRequest Error: No ad to show.}啊&#xff0c;家人们&#xff0c;同事注册谷歌开发者后&#xff0c;给…

PhpStorm 2024 激活码 - JetBrains 高效智能PHP IDE

各位程序员&#xff0c;每天敲代码真的需要一款好用的 IDE&#xff0c;大名鼎鼎的 JetBrains 值得信赖&#xff01;PHP 开发看过来&#xff0c;PhpStorm 个人版首年订阅 618 限时特惠 7.1 折&#xff0c;有需要的朋友一定不要错过&#xff01; PhpStorm 汇集了众多效率功能和集…

Kaggle——Deep Learning(使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络)

1.单个神经元 创建一个具有1个线性单元的网络 #线性单元 from tensorflow import keras from tensorflow.keras import layers #创建一个具有1个线性单元的网络 modelkeras.Sequential([layers.Dense(units1,input_shape[3]) ]) 2.深度神经网络 构建序列模型 #构建序列模型 …

排序题目:多数元素

文章目录 题目标题和出处难度题目描述要求示例数据范围进阶 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 解法三思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;多数元素 出处&#xff1a;169. 多数元素 难度 2 级 题目描述 要求 给定…

Windows系统的——终端命令行进入文件夹、打开程序或文件、返回路径、切换磁盘、查看路径包含的所有内容和配置环境变量操作

一、Windows系统的一些基础操作 Windows系统的一些基础操作(通过运行命令方式打开)https://blog.csdn.net/xiaochenXIHUA/article/details/122782021?ops_

GLM-4-9B VLLM 推理使用;openai接口调用

参考: https://huggingface.co/THUDM/glm-4-9b-chat 直接运行vllm后端服务: from transformers import AutoTokenizer from vllm import LLM, SamplingParams# GLM-4-9B-Chat-1M # max_model_len, tp_size

Redis常见异常及优化方案

Redis常见异常及优化方案 Redis集群&#xff08;redis-cluster&#xff09;中的三主三从或者哨兵&#xff08;sentinel&#xff09;模式配置是一种常见的高可用架构&#xff0c;用于解决单点故障和提高数据可靠性。然而&#xff0c;即使在这样的配置下&#xff0c;仍然可能会遇…

vue中SKU实现

通过发送请求获取商品详情数据&#xff0c;包括商品规格(specs)和库存信息(skus)。 选中状态更新&#xff1a;根据当前状态进行激活或取消激活的逻辑&#xff0c;通过为每个规格项添加的“selected”字段来标识是否激活&#xff0c;同时利用样式处理&#xff0c;通过动态类属性…