java方法的参数的执行顺序是从左到右还是从右到左呢?

写出一下测试程序:

 1 import java.util.*;
2 import java.io.*;
3 public class Test {
4
5 public static void main(String[] args) {
6 int i = 0;
7 test(++i, ++i);
8 ArrayList<Integer> list = new ArrayList<Integer>();
9 list.add(1);
10 list.add(2);
11 test2(list, list.remove(0));
12 System.out.println(list);
13 }
14 public static void test(int x, int y){
15 System.out.println(x);
16 System.out.println(y);
17 }
18 public static void test2(ArrayList<Integer> list,Integer integer){
19 System.out.println(list);
20 }
21 }
22 /**
23 *输出结果:
24 *1
25 *2
26 *[2]
27 *[2]
28 */

由test测试得出参数的执行顺序是由左到右,但是从test2我刚上来得出参数的执行顺序是由右到左,因为如果是test2中参数1 先传递list的引用l,然后是参数2进行remove(0),那么输出的list应为[1,2];

但是这是我想错了,参数的执行顺序确实是由左到右,test2 中先传递list的引用,也就是在实参中函数1 既为list的引用,然后参数2对引用的内容做了修改,以至于方法test2输出的是修改以后的内容

java 方法参数的执行顺序的更多相关文章

  1. 图解java方法的简单执行步骤

    图解java方法的简单执行步骤 1,找到该方法 2  传入对应的参数 3 执行方法体 4 返回结果

  2. Java Object 构造方法的执行顺序

    Java Object 构造方法的执行顺序 @author ixenos 为了使用类而做的准备工作包括三个步骤 1)加载:类加载器查找字节码(一般在classpath中找),从字节码创建一个Class ...

  3. java方法参数传递方式只有----值传递!

    在通常的说法中,方法参数的传递分为两种,值传递和引用传递,值传递是指将实际参数复制一份传递到方法中, 在方法中的改动将不会影响到实际参数本身,而引用传递则是指传递的是实际参数本身,在方法中的改动将会影 ...

  4. java中代码块和构造方法以及普通方法的代码执行顺序总结

    说实话,这块真的不好理解啊~都怪jvm  执行顺序搞这么复杂,哼╭(╯^╰)╮ 但是  我们能怎么办,只能研究呗!!! !:首先,毫无置疑的,静态代码块在加载时就执行了,所以肯定是最先执行的.... ...

  5. java中静态代码执行顺序

    1.Java中静态变量只能在类主体中定义,不能在方法中定义. 静态变量属于类所有而不属于方法. 2. 静态块:用static申明,JVM加载类时执行,仅执行一次 构造块:类中直接用{}定义,每一次创建 ...

  6. 夯实Java基础系列7:一文读懂Java 代码块和执行顺序

    目录 Java中的构造方法 构造方法简介 构造方法实例 例 1 例 2 Java中的几种构造方法详解 普通构造方法 默认构造方法 重载构造方法 java子类构造方法调用父类构造方法 Java中的代码块 ...

  7. 夯实Java基础系列7:Java 代码块和执行顺序

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  8. java 方法参数-值调用,引用调用问题

    (博客内容来自于core java卷一) 1. xx调用:程序设计语言中方法参数的传递方式: 引用调用(call by reference):表示方法接收的是调用者提供的变量地址. 值调用(call ...

  9. (转)java for循环的执行顺序和几种常用写法

    算是温习吧.问题比较基础,但是也比较重要.(虽然是C,但是很经典) for循环可以说在每个程序中都少不了的,语句头包括三个部分:初始化,判读条件,一个表达式. 但是这三个部分的执行顺序是什么,这是我们 ...

随机推荐

  1. springMVC-5-视图解析器

    视图和视图解析器工作流程 第一步:获取到ModelAndView对象 请求处理方法执行完成后,无论返回是String,View 还是 ModeMap 类型,Spring MVC 也会在内部将它们装配成 ...

  2. DOS 常用命令集

    net use $">\\ip\ipc$Content$nbsp;" " /user:" " 建立IPC空链接 net use $"& ...

  3. pytest框架运用

    import pytest ''' 运行方式 1. pytest -s test01.py 把print信息打印出来运行用例 2. 通过main运行 前置后置方法 1. 函数级 setup teard ...

  4. 福利!Python制作动态字符画(附源码)

    字符画,一种由字母.标点.汉字或其他字符组成的图画.简单的字符画是利用字符的形状代替图画的线条来构成简单的人物.事物等形象,它一般由人工制作而成:复杂的字符画通常利用占用不同数量像素的字符代替图画上不 ...

  5. SpringBoot Aop 详解和多种使用场景

    前言 aop面向切面编程,是编程中一个很重要的思想本篇文章主要介绍的是SpringBoot切面Aop的使用和案例 什么是aop AOP(Aspect OrientedProgramming):面向切面 ...

  6. nuxt服务部署到云上全程记录

    首先,在使用脚手架nuxt-app中创建项目时,箭头选用不起作用,这是因为git bash在windows中交互问题,临时的解决办法是换用cmd 登录云服务器后,首先安装nodejs yum inst ...

  7. 【LeetCode】841. 钥匙和房间

    841. 钥匙和房间 知识点:图:递归 题目描述 有 N 个房间,开始时你位于 0 号房间.每个房间有不同的号码:0,1,2,...,N-1,并且房间里可能有一些钥匙能使你进入下一个房间. 在形式上, ...

  8. JOY靶机

    仅供个人娱乐 靶机信息 下载地址:https://www.vulnhub.com/entry/digitalworldlocal-joy,298/ 一.主机扫描 二.信息收集和漏洞利用     FTP ...

  9. Jenkins插件安装失败

    插件安装失败 通常要下载国外的软件插件之类的时候,链接到国外会太慢或者被墙,这就需要我们去换镜像源 修改配置文件 我们在jenkins里更改升级站点的url后 若安装插件时还是一直卡在"安装 ...

  10. 大数据学习(19)—— Flume环境搭建

    系统要求 Java1.8或以上 内存要足够大 硬盘足够大 Agent对源和目的要有读写权限 Flume部署 我这8G内存的电脑之前搭建Hadoop.Hive和HBase已经苟延残喘了,怀疑会卡死,硬着 ...