当前位置: 首页 > 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.深拷贝和浅拷贝区别了解吗?

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

相关文章:

  • 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表达式
  • 特朗普:泽连斯基的言论对和平谈判非常有害
  • 经济日报刊文:如何破除“内卷式”竞争
  • 打造“朋友圈”,“淘书乐”为旧书找“新朋友”
  • 几百元的工资优势已不能吸引人才流动,江苏多地探讨“抢人”高招
  • 上海34年“老外贸”张斌:穿越风暴,必须靠过硬的核心竞争力
  • 电影“名场面”被制成表情包在网站上传播,网站运营者被判赔5500元