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

相关推荐

  • 为什么vscode底下有紫色

    VS Code底部的紫色条表示当前工作区已经被置于Git版本控制下,用于提供一个直观的视觉参考,以表明您正在使用源代码控制。这一设计旨在帮助用户迅速识别工作环境的状态、加强源代码管理的易用性。特别需要注意的是,紫色条上还可能展示有关当前分支的信息、更改数以及同步状态,进一步增强了其实用性。 在源代码…

    2024年4月3日
    9600
  • xdf oa系统

    标题:XDF OA系统的关键特性与实施效益 直击关键点:XDF(新东方)在线办公自动化(OA)系统集成了1、任务自动化管理、2、流程电子化优化、3、协同工作平台、4、数据安全保障。在其中流程电子化优化对提升工作效率、减少人为错误做出巨大贡献,通过将传统纸质流程转为电子流程,既提高了处理速度,又增强了…

    2024年1月15日
    57000
  • 会展项目管理的方法有哪些

    会展项目管理的方法有:一、瀑布模型;二、敏捷模型;三、增量模型;四、融合模型。瀑布模型是传统的项目管理方法,也被称为“线性顺序模型”。在这个模型中,项目被分为一系列顺序阶段,每个阶段的工作必须在下一个阶段开始之前完成。 一、瀑布模型 瀑布模型是传统的项目管理方法,也被称为“线性顺序模型”。在这个模型…

    2023年4月30日
    58800
  • 车间管理系统的设计与实现

    车间管理系统的设计与实现是为了优化生产流程、提高生产效率以及保证产品质量。车间管理系统应包括生产计划编制、现场作业管理、数据采集与分析、设备维护等模块,且需要与企业的其他管理系统如ERP、SCM等无缝对接。在这些模块中,实时数据采集与分析功能至关重要,它能够为管理层提供生产过程中的实时信息,辅助决策…

    2024年1月9日
    34500
  • 为什么现在企业都开始用SAAS了

    为什么现在企业都开始用SAAS了:SaaS使企业能够更好地自动化其流程并降低运营成本。SaaS提供商致力于提供卓越的服务,因此管理人员不必考虑实施硬件更新或购买本地服务器硬件。该软件通过Web浏览器进行配置、安装和访问,因此不需要在整个组织的计算机上实施。 一、为什么现在企业都开始用SAAS了 Sa…

    2023年4月29日
    33900
  • 项目管理都有哪些软件

    开门见山地说明:项目管理领域内的软件众多,常见的项目管理软件包括1、Microsoft Project;2、Asana;3、Trello;4、JIRA;5、Basecamp;6、Monday.com;7、Smartsheet以及8、Wrike。这些软件提供不同程度的项目规划、资源分配、时间追踪、协作…

    2024年1月8日
    21400
  • 从哪些写测试用例

    在软件工程实践中,编写测试用例是保证产品质量的关键步骤。本文讨论了编写测试用例的关键方面,并提出了5个核心要点。这些要点包括1、理解需求文档,2、采用不同测试设计技术,3、考虑用户的角度,4、确保功能完整性,5、支付风险评估。文章将围绕这些要点展开详细讨论,指导如何从多个视角出发,有效地编写测试用例…

    2023年11月13日
    37700
  • 工业机器人用什么语言编程的

    工业机器人用以下语言编程:1、硬件描述语言(HDLs);2、Assembly;3、MATLAB;4、C#/.NET;5、Java;6、Python;7、C/C++。硬件描述语言一般是用来描述电气的编程方式。这些语言对于一些机器人专家来说是相当熟悉的,因为他们习惯FPGAs编程。 1、硬件描述语言(H…

    2023年1月27日
    1.0K00
  • 软件研发安全管理

    软件研发安全管理确保软件开发过程与其产出符合安全标准与最佳实践。这涉及1、认证与审核流程的执行、2、代码审查的制度化、3、数据保护与隐私遵循、4、应用安全漏洞的定期扫描及修复等环节。特别是代码审查,它是识别与修复潜在安全隐患的关键步骤。通过对源代码的细致审查,可以在软件发布前发现与解决安全问题,大幅…

    2024年1月10日
    30400
  • 什么是 KRACK

    KRACK 是 Key Reinstallation Attack(密钥重新安装攻击)的首字母缩写。KRACK 是针对用于保护 Wi-Fi 连接的 Wi-Fi 保护访问协议 (WPA2) 的一种严重重播攻击。黑客使用 KRACK来破解 WPA2 中的漏洞。 什么是 KRACK KRACK 是 Key…

    2022年11月4日
    90300

发表回复

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

400-800-1024

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

分享本页
返回顶部