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

相关推荐

  • 什么是SecurePatch

    SecurePatch是一种安全软件补丁,用于修复已知的漏洞和弱点,提高计算机系统的安全性。SecurePatch是由全球领先的安全软件公司开发的,旨在保护用户的计算设备和数据免受黑客攻击和恶意软件的侵害。 SecurePatch是一种安全软件补丁,用于修复已知的漏洞和弱点,提高计算机系统的安全性。…

    2023年5月28日
    200
  • REST API和一般的API有什么区别

    区别:REST API是一组关于如何构建Web应用程序API的架构规则、标准或指导,REST API遵循API原则的架构风格。REST API是API的子集;所有的REST API都是API。在REST API架构中资源标识符不会发生改变。一般的API架构中,资源标识符会发生改变。

    2023年2月14日
    4800
  • 免费ftp服务器空间有哪些

    免费ftp服务器空间有:1、FileZilla;2、FireFTP;3、蒙斯塔FTP;4、赛博鸭;5、智能FTP;6、WinSCP;7、经典FTP;8、单键FTP;9、gFTP。FileZilla是是最有前途和最受欢迎的FTP客户端之一。FileZilla速度很快,可以处理同时传输,并支持跨平台的F…

    2022年12月31日
    62400
  • main函数可以在一个程序的任何位置吗

    在C语言中,main函数可以放在程序的任何位置。不过,如果你将main函数放在其他函数的后面,那么你需要在前面声明该函数。无论你将main函数放在哪里,它都是程序的入口点,会在程序启动时被第一个执行。 main函数是C语言中程序执行的入口点。通常情况下,main函数都被放在程序的开头作为第一个函数。…

    2023年2月28日
    14700
  • 数据类型为什么区分int和long

    原因是:1、存储空间的考虑;2、 精度的考虑;3、程序设计的规范。在计算机中,每个变量都需要占用一定的存储空间。int类型需要占用4个字节的存储空间,而long类型需要占用8个字节的存储空间。 1、存储空间的考虑 在计算机中,每个变量都需要占用一定的存储空间。int类型需要占用4个字节的存储空间,而…

    2023年2月28日
    4300
  • 什么是Web应用程序和API保护(WAAP)

    Web应用程序是指通过Web浏览器进行访问的应用程序。Web应用程序可以是静态的,例如展示公司信息的网站,也可以是动态的。WAAP或Web应用程序和API保护是指旨在保护这些 API 和应用程序的基于云的服务,用于描述为保护易受攻击的API和Web应用程序而创建的基于云的服务。 什么是 Web 应用…

    2023年5月29日
    1500
  • 如何管理时间

    管理时间的方法:1、设定短期和长期目标;2、管理日程;3、确定作业的优先级;4、学会拒绝;5、不要拖延;6、学会委派;7、处理压力;8、积极解决问题。设定短期和长期目标可以帮助您清楚地了解实现某些结果需要完成什么 1、设定短期和长期目标 定期设定目标可以帮助您清楚地了解实现某些结果需要完成什么。要实…

    2023年2月23日
    3200
  • dreamweaver是什么软件

    dreamweaver是一款网页制作软件,是集网页制作和管理网站于一身的所见即所得网页代码编辑器,利用对 HTML、CSS、JavaScript等内容的支持,设计师和程序员可以在几乎任何地方快速制作和进行网站建设。 一、dreamweaver软件简介 Adobe Dreamweaver,简称“DW”…

    2023年3月18日
    11600
  • css3标签选择器有哪些

    css3标签选择器有:1、标签选择器;2、类选择器;3、ID选择器;4、全局选择器;5、复合选择器;6、继承选择器;7、伪类选择器。标签选择器也称为元素选择器,标签选择器的基本形式如下:tagName{property:value},其中tagName是标签名称,property是css的属性。

    2023年1月15日
    10200
  • 防火墙的重要性是什么

    防火墙的重要性体现在:当用户将自己的计算机连接到网络或互联网时,可能会暴露在威胁之下,最常见的威胁包括黑客攻击、身份盗窃、恶意软件和网络欺诈。而防火墙帮助阻止恶意活动并防止专用网络内外的任何人进行未经授权的 Web 活动。

    2022年10月27日
    29400

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部