当前位置: 首页 > 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.mrgr.cn/news/98404.html

相关文章:

  • Uniapp: 大纲
  • One-Hot标签编码方法详解
  • STM32(M4)入门: 概述、keil5安装与模板建立(价值 3w + 的嵌入式开发指南)
  • 《高阶函数:把函数当玩具传来传去》
  • Linux命令-vim编辑
  • 第十六届蓝桥杯大赛软件赛省赛 Python 大学 B 组 满分题解
  • 供应链管理:探索供应链管理的边界
  • android面试情景题详解:android如何处理断网、网络切换或低速网络情况下的业务连续性
  • SomeIP:服务端or客户端发送event或method源码参考via CAPL
  • linux多线(进)程编程——番外1:内存映射与mmap
  • 欧拉服务器操作系统部署deekseep(Ollama+DeekSeep+open WebUI)
  • 数据库索引深度解析:原理、类型与高效使用实践
  • ARCGIS PRO DSK 利用两期地表DEM数据计算工程土方量
  • 在轨道交通控制系统中如何实现μs级任务同步
  • 2025年第十六届蓝桥杯省赛真题解析 Java B组(简单经验分享)
  • cline 提示词工程指南-架构篇
  • [Python基础速成]2-模块与包与OOP
  • Windows系统docker desktop安装(学习记录)
  • java锁机制(CAS和synchronize)的实现原理和使用方法
  • Domain Adaptation领域自适应