Java的求值策略

Posted Ermiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java的求值策略相关的知识,希望对你有一定的参考价值。

形参和实参

java在定义方法时可以设置参数,参数分为形参和实参,形参是指在定义函数时用于接收外部传入数据的参数,而实参是指在调用方法时主调函数向被调函数传递的数据参数。
例如:

public class Main {
    public static void main(String[] args) {
        int a = 2;
        int b = 3;
        System.out.println(sum(a,b));//5
    }
    private static int sum(int i1,int i2){
        return i1+i2;
    }
}

其中,a,b是传入sum方法的数据为实参,i1,i2是定义方法时接收数据的参数为形参。

求值策略

实参在向形参传递值的时候有多种方法,即求值策略。求值策略分为严格求值、非严格求值和非确定求值。
其中严格求值内包含我们常见的值传递(传值)、引用传递(传引用)和地址传递(传址)。

  • 传值:将实参的值复制副本后传给形参
    image
  • 传引用:将实参的引用直接传给形参
    image
  • 传址:将实参的引用复制副本后传给形参
    image
Java的求值策略

地址传递可以看成值传递的一种特殊情况,java的基础类型传值为值传递,引用类型的传值是地址传递,因此可以说java中的求值策略为传值

以上是关于Java的求值策略的主要内容,如果未能解决你的问题,请参考以下文章

霍纳规则解决多项式的求值问题

Thunk函数的使用

深入理解JavaScript系列(19):求值策略(Evaluation strategy)

练习4.3

如果表达式的求值需要对引用求值,为啥它不是“核心常量表达式”?

if 括号 if(...) 中语句的求值顺序是啥? [复制]