当前位置: 首页 > news >正文

Java-面向对象

15.面向对象和面向过程的区别?

面向对象是将问题分解成一系列步骤,然后按照一定的顺序执行。面向过程是将解决问题的参与者,封装成一个个对象,每个对象完成自己的操作。面向对象的三大特征就是封装、继承和多态。

  1. 封装就是隐藏内部实现细节,仅向外提供必要的属性和方法。
  2. 继承就是子类继承父类的方法和属性,主要是代码复用和扩展。
  3. 多态就是同一方法在不同的对象中有不同的实现

16.对象实体与对象引用的区别?

对象实体是内存中真实存在的对象实例,对象引用是指向对象实体的指针。

17.对象相等与引用相等的区别?

对象相等比较的是值是否相等,引用相等比较的是内存地址是否相等。

18.Java中的hashCode和equal方法是什么?

hashcode()在object类中基于内存地址计算哈希值,可以快速比较两个对象是否相等,如果两个对象的哈希值不相等,那么这两个对象一定不相等,常用于hashmap中判断元素的存储位置。
equals()方法用于判断两个对象是否相等,默认使用==比较对象的内存地址,可以重写equals()方法定义自己的相等逻辑。如果重写了equals()方法,通常还需要重写hashCode方法,以保证相等的对象具有相同的哈希值。

19.Java中为什么不支持多继承?

多继承会产生菱形继承,假如B和C继承了A,但是对A中的方法有不同的实现,此时D同时继承了B和C。那么D要想调用A中的方法就会产生歧义,不知道调用B的实现还是C的实现。

20.深拷贝和浅拷贝区别了解吗?

浅拷贝只拷贝对象的引用不创建新的对象实例,新旧对象仍然指向同一块内存空间。深拷贝创建一个全新的对象实例,并将原始对象的所有属性复制到新对象中。浅拷贝性能开销较小,仅复制对象的引用,深拷贝性能开销大,因为要创建新的对象实例。

http://www.dtcms.com/a/132252.html

相关文章:

  • ffprobe是如何处理命令行参数的.
  • BFD:网络链路检测与联动配置全攻略
  • 易境通WMS系统代理仓解决方案:让代理仓管理无后顾之忧!
  • 07软件测试需求分析案例-修改用户信息
  • 手机端可部署的开源大模型; 通义千问2.5训练和推理需要的内存和外存
  • 【DDR 内存学习专栏 1.4 -- DDR 的 Bank Group】
  • 机器学习:让数据开口说话的科技魔法
  • 网络基础和socket
  • 面试宝典(C++基础)-01
  • AlexNet神经网络详解及VGGNet模型和
  • 深度学习中的数学基础:从向量到概率的全面解析
  • 测试第三课-------自动化测试相关
  • 第十九讲 XGBoost 二分类模型案例(遥感数据识别玉米与小麦地块)
  • HTML:网页的骨架 — 入门详解教程
  • Python heapq模块
  • 【Pandas】pandas DataFrame items
  • AIGC工具平台-建筑平面图3D渲染
  • Android studio Unknown Kotlin JVM target: 21
  • macOS 上使用 Homebrew 安装和配置 frp 客户端
  • 【C++】——lambda表达式
  • 数据资产保护与数据知识产权保护有何不同?
  • JavaScript中的Transferable对象教程
  • 企业级硬盘的测试流程
  • L2TP实验(无图后补)
  • 老旧测试用例生成平台异步任务与用户通知优化
  • OOM问题排查和解决
  • Java工厂模式解析:灵活对象创建的实践指南
  • Java LinkedList深度解析:双向链表的实现艺术与实战指南
  • 【Python爬虫】简单介绍
  • 16bit转8bit的常见方法(图像归一化)