JAVA语言中引用和调用有区别吗

区别是定义不同。引用是说变量保存内容的,变量保存了一堆内存数据,我们把变量叫做对数据的引用。调用指的是编写代码的时候使用定义好的代码块(函数/方法),这个叫做调用方法或调用函数,通常来说引用是在栈里建立的内存,该内存的内容是堆里的对象的地址。

两者定义

不要因为后面都有个”用”字就以为他俩是类似的东西,实际上这两个词完全没有关系。引用是说变量保存内容的,变量保存了一堆内存数据,我们把变量叫做对数据的引用。调用指的是编写代码的时候使用定义好的代码块(函数/方法),这个叫做调用方法或调用函数。

通常来说引用是在栈里建立的内存,该内存的内容是堆里的对象的地址。而调用值得是执行某个函数, 对应的是cpu 指令。两者是完全不同的东西。另外引用还有一种常见a引用了b,这时引用值得是按使用了b的东西,也可能使用调用了b的方法。也可能是把b作为自己的成员或者使用了b的成员等等。

强引用,软引用,弱引用,虚引用。不同的引用类型主要体现在GC上。

强引用

如果一个对象具有强引用,它就不会被垃圾回收器回收。即使当前内存空间不足,JVM也不会回收它,而是抛出 OutOfMemoryError 错误,使程序异常终止。如果想中断强引用和某个对象之间的关联,可以显式地将引用赋值为null,这样一来的话,JVM在合适的时间就会回收该对象。

软引用

在使用软引用时,如果内存的空间足够,软引用就能继续被使用,而不会被垃圾回收器回收,只有在内存不足时,软引用才会被垃圾回收器回收。

弱引用

具有弱引用的对象拥有的生命周期更短暂。因为当 JVM 进行垃圾回收,一旦发现弱引用对象,无论当前内存空间是否充足,都会将弱引用回收。不过由于垃圾回收器是一个优先级较低的线程,所以并不一定能迅速发现弱引用对象。

虚引用

顾名思义,就是形同虚设,如果一个对象仅持有虚引用,那么它相当于没有引用,在任何时候都可能被垃圾回收器回收。

延伸阅读:

什么是Java

Java具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的”形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种”以对象为导向”的方式。使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。

Java是Sun微系统公司在1995年推出的,推出之后马上给互联网的交互式应用带来了新面貌。最常用的两种互联网浏览器软件中都包括一个Java虚拟机。几乎所有的操作系统中都增添了Java编译程序。

使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。

文章标题:JAVA语言中引用和调用有区别吗,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37811

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月12日 下午4:26
下一篇 2023年2月12日 下午4:29

相关推荐

  • devops史诗是什么

    开篇即进入主题,DevOps史诗是指DevOps运动自诞生之初的演进过程,涵盖了自动化、持续集成、持续部署、协作文化等诸多实践的合集,其目的在于缩短软件开发的生命周期,提高交付速度与质量。1、DevOps协作文化的形成与发展、2、技术工具的进步、3、市场对DevOps的反响与接纳,它们构成了这一史诗…

    2024年3月26日
    6800
  • 项目计划如何写

    步骤:1.明确项目目标;2.识别项目任务和活动;3.编制工作分解结构(WBS);4.确定项目时间表和里程碑;5.分配资源和负责人;6.评估风险和制定风险管理计划;7.编写项目计划文档。项目目标是项目成功实现的关键要素。 1.明确项目目标 项目目标是项目成功实现的关键要素。在撰写项目计划之前,需确保明…

    2023年2月27日
    51400
  • 哪款办公软件好用不收费

    办公软件好用不收费有:1、钉钉;2、WPS Office;3、企业微信;4、网易邮箱大师;5、speedoffice;6、OpenOffice.org;7、FreeOffice;8、LibreOffice。钉钉是阿里巴巴集团打造的数字经济时代的企业组织协同办公和应用开发平台。 一、钉钉 钉钉(Din…

    2023年4月21日
    1.3K00
  • 为什么要做应用性能监控

    为什么要做应用性能监控:1、及时获取应用错误信息;2、及时预警和数据分析;3、提升用户的满意度。及时获取应用错误信息是指,不管开发人员前期如何准备,在完成应用程序的开发之后,问题总是会存在的,因为开发过时依据的是一些设想的数据,和真实的用户体验并不完全相同。 一、及时获取应用错误信息 不管开发人员前…

    2023年5月9日
    38100
  • 高校宿舍管理系统的设计与实现

    高校宿舍管理系统设计与实现的核心在于1、提高宿舍管理效率、2、加强宿舍安全和服务质量、3、简化日常管理工作、4、优化资源分配。其中,提高宿舍管理效率是系统设计的主要目标,通过信息化手段汇集与处理宿舍相关信息,包括学生信息、宿舍信息、床位信息等,从而实现快速响应、便捷管理。 一、系统需求分析 实施高校…

    2024年1月9日
    45300
  • EPC总承包项目如何进行技术管理

    在EPC总承包项目中进行技术管理,主要包括项目规划与设计管理、工程质量控制、变更管理和技术创新等四个方面。其中,工程质量控制是保证项目成功的核心环节。它要求从项目开始到完工的整个过程中,对工程建设的各个阶段实施全面的质量监控,确保施工质量满足合同约定的标准。通过建立一套完善的质量管理体系、执行严格的…

    2024年4月11日
    4700
  • Python的list[int]是什么意思

    list[int]表示一种特殊的list,它只能包含整数类型的元素。在Python中,list是一种非常重要的数据类型。它是一种可变序列类型,可以包含任意数量的元素,这些元素可以是不同类型的数据,包括整数、浮点数、字符串、元组、列表等等。 在Python中,list是一种非常重要的数据类型。它是一种…

    2023年2月28日
    2.1K00
  • 完全免费oa办公系统

    办公自动化(OA)系统为企业提供高效、协调的工作流程管理。1、免费开源OA系统,2、基于云服务的免费OA产品,3、限制性免费OA版本。其中,免费开源OA系统因其成本效益和高度可定制的特点而备受青睐。比如Odoo和OnlyOffice,它们提供了一个完整的办公解决方案,可供企业调整以满足独特需求。 详…

    2024年1月15日
    36700
  • devops为什么要自己构建服务

    DevOps构建服务的理由:1. 提升软件交付的速度与频率、2. 保障开发与运维之间的紧密协作、3. 加强代码至生产环境的持续集成与持续部署、4. 提高服务的可靠性与可监控性、5. 实现自动化,降低人为错误、6. 灵活应对市场和客户需求的快速变化。 在这些理由中,特别值得关注的是提升软件交付的速度与…

    2024年3月26日
    5900
  • cad系统硬件主要有哪些

    cad系统硬件主要有:1、计算机主机;2、信息存储设备;3、输入设备;4、输出设备;5、网络设备;6、多媒体设备。计算机主机是指,用于CAD系统的计算机,一般可分为大型机,小型机、工作站及个人计算机。 1、计算机主机 计算机主机是指,用于CAD系统的计算机,一般可分为大型机,小型机工作站及个人计算机…

    2023年1月9日
    1.1K00

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部