`

Java 方法引用

    博客分类:
  • JAVA
 
阅读更多

一个对象的引用本质上是一个很强的完整和安全方面约束能力的对象指针。

对象的引用提供两种信息:

1 指向对象实例的信息---数据的指针

2 指向对象类的信息---运行类型和方法表的指针

注意:这些指针尽管存在于java中,但是不能直接操作它。

 

值传递:传递变量,对象值的拷贝

引用传递:传递地址

 

值调用:在参数传递过程中,形参和实参占用了两个完全不同的内存空间。形参所存储的内容是实参存储内容的一份拷贝。

引用调用:在参数传递的过程中,形参和实参完全是同一块内存空间,两者不分彼此。

Java是值调用 ,引用传递,见下面例子:

# swap 
public void swap(A a,A b){
}

#change
public void chang(A ,a){
}

 在main函数中,实例化 A A1 A2,

swap(A1,A2) 不能交换A1 , A2 而chang(A1) 则能改变A1,前者可解释值调用,后者可解释引用传递,见下图:



 自己理解去,注意变量名位于Java栈中,具体变量实例则在堆中。

关于Java 虚拟机的内容详见附件。

  • 大小: 82.4 KB
分享到:
评论

相关推荐

    Java8 Lamda方法引用和构造引用原理

    Java8 Lambda 方法引用和构造引用原理 Java8 中引入了 Lambda 表达式,方法引用和构造引用是 Lambda 表达式的一种简写形式。方法引用就是将 Lambda 表达式转换为方法调用,构造引用是将 Lambda 表达式转换为构造...

    浅析Java引用类型和方法参数传递

    ### 浅析Java引用类型和方法参数传递 #### 一、引言 在Java编程语言中,理解数据类型的处理方式对于编写高效、可维护的代码至关重要。本文将深入探讨Java中的引用类型及其如何影响方法参数的传递机制。通过具体实例...

    java的Stream和方法引用

    Stream和方法引用 1. Stream流 1.1. Stream流引入 Stream流完全不是I/O流,按照流水线处理方式来考虑代码中的思想。 JDK1.8 之后,我们拥有了Lambda表达式,让代码的中心偏向解决实际问题,直到重点,可以提高效率。...

    Java Lambda表达式的方法引用和构造器引用实例分析

    Java Lambda表达式的方法引用和构造器引用实例分析 Java Lambda表达式是Java 8中引入的一种新的编程模型,它允许开发者使用函数式编程的方式来编写代码。Lambda表达式可以用来简化代码,提高代码的可读性和可维护性...

    Java的引用和函数参数传递

    ### Java的引用与函数参数传递详解 #### 一、Java中的引用基础 在Java中,对象的引用扮演着类似于其他编程语言(如C/C++)中指针的角色,但是Java的引用比传统的指针更加安全且易于管理。这是因为Java的设计者们...

    java中的引用问题

    Java中的引用问题主要涉及到对象作为参数传递时的行为。在Java中,有两类数据类型:基本类型(如int、char)和引用类型(如类实例、数组)。对于基本类型,Java采用值传递的方式,而对于引用类型,则是传递引用的...

    Java中对象与引用

    ### Java中对象与引用 在Java编程中,深入理解对象与引用的概念对于掌握面向对象编程至关重要。本文将从以下几个方面详细解析对象与引用的基本概念及其相互间的关系。 #### 一、对象与引用的基础概念 **对象**: ...

    java方法的参数传递其二.docx

    Java 方法参数传递之引用类型 Java 方法参数传递是 Java 编程语言中的一种基本机制,在方法调用时将参数传递给方法体内的变量,但是在传递过程中,参数的类型会对传递结果产生影响。在本文中,我们将讨论 Java 方法...

    Java中的基本类型和引用类型变量的区别

    这里的 today 变量存储的是对 MyDate 对象的引用,并且可以通过 today 变量访问 MyDate 对象的成员变量和方法。 在 Java 中,引用类型的变量可以通过赋值操作来改变其指向的对象,例如 MyDate a, b; a = new MyDate...

    java弱引用

    Java 弱引用 Java 弱引用是一种特殊类型的引用,它允许垃圾回收器在某些情况下回收对象,而不是像强引用那样坚持对象的存在。弱引用是 Java.lang.ref.WeakReference 类的实例,它们提供了一种方式来引用对象,而不...

    Java是传值还是传址引用

    ### Java是传值还是传址引用 #### 一、简单类型是按值传递的 Java在处理简单数据类型(如int、boolean等)时采用的是按值传递的方式。这意味着当你将一个简单类型的值作为参数传递给一个方法时,实际上传递的是这...

    Java对象及其引用的理解

    在Java编程语言中,对象和引用的理解是至关重要的,它们构成了Java程序的基础。本文将深入探讨Java中的对象、引用以及它们之间的关系,并结合值传递的概念进行解析。 首先,我们需要理解什么是Java对象。在Java中,...

    Java:按值传递还是按引用传递详细解说

    ### Java中的按值传递与按引用传递详解 #### 一、引言 在Java编程语言中,关于参数传递的方式一直存在两种观点:一种认为Java仅支持按值传递,另一种则指出Java同时支持按值传递和按引用传递。实际上,这两种观点...

    java中传值与传引用

    在Java编程语言中,函数调用时的参数传递方式有两种:传值(Passing by Value)和传引用(Passing by Reference)。虽然Java官方文档中并未明确指出有传引用这一概念,但在实际操作中,Java的行为类似于传引用,尤其...

    java创建类和类的引用文档.doc

    Java 创建类和类的引用文档 本文档主要介绍了 Java 中的类和类的引用,通过一个学生信息系统的...本文档展示了 Java 中类的定义、实例化和引用,介绍了 Java 中的构造方法、Setter/Getter 方法、封装和多态等概念。

    java8 探讨与分析匿名内部类、lambda表达式、方法引用的底层实现的测试用例

    在Java 8中,匿名内部类、Lambda表达式和方法引用是重要的新特性,它们极大地简化了代码,提升了代码的可读性和效率。下面将详细探讨这三个知识点,并结合提供的测试用例进行分析。 1. **匿名内部类**: 匿名内部类...

    java 之方法调用 方法传参 值传递还是引用传递字节码

    本文将深入探讨Java中的方法调用、值传递与引用传递,并通过字节码分析来进一步理解这些概念。 首先,我们来看方法调用。在Java中,方法是一组完成特定任务的代码块,可以通过方法名来调用执行。方法调用的基本语法...

    Java8方法引用和构造引用代码实例

    Java8方法引用和构造引用代码实例 Java8中引入了方法引用和构造引用,简化了Lambda表达式的编写,提高了代码的可读性和维护性。本文将详细介绍Java8方法引用和构造引用代码实例,并提供了多个示例代码,以便读者更...

Global site tag (gtag.js) - Google Analytics