不多说,直接上干货!

//基本数据类型参数传递
class Demo
{
public static void main(String[] args)
{ int x = ;
show(x);
System.out.println("x="+x);
}
public static void show(int x)
{
x = ;
}
} //引用数据类型参数传递
class Demo
{
int x = ;
public static void main(String[] args)
{
Demo d = new Demo();
d.x = ;
show(d);
System.out.println(d.x);
}
public static void show(Demo d)
{
d.x = ;
}
}

一、对于基本数据类型参数传递代码的运行过程分析:

  1、main方法进栈内存,main方法中有基本数据类型变量int x;

  2、为main方法中的变量x赋值为3;

  3、调用change(x)方法,则change方法进栈;

  4、为change方法变量x赋值为4;

  5、跳出change方法,同时change方法出栈,释放所有change方法和change方法中的x,即把x=4释放掉;

  6、执行打印语句,些时的栈中只有main方法中的x,那么打印出的x=3;

  7、跳出main方法,结束程序。

二、对于引用数据类型参数传递代码的运行过程分析:

  1、main方法进栈内存,main方法中有一个类类型变量Demo d;

  2、new创建Demo对象,在堆内存中开辟一个空间,并把空间地址传给d(我们这里假设为0x0078),并为该地址中的x初始化为0,然后把3赋给x;

  3、把d所指堆内存(0x0078)中的x赋为9;

  4、调用change(d)方法,change方法进栈,change方法中的对象d就是main方法中的d,指向之前的堆内存地址(0x0078);

  5、把d所指堆内存(0x0078)中的x赋为4;

  6、跳出change方法,同时change方法出栈,释放change方法和方法中的对象d;

  7、执行打印语句,些时的栈中也是只有main方法,并且d指向堆内存(0x0078),该地址中的x就是步骤5中的值4;

  8、跳出main方法,结束程序。

牛客网Java刷题知识点之基本数据类型参数传递和引用数据类型参数传递图解的更多相关文章

  1. 牛客网Java刷题知识点之为什么HashMap和HashSet区别

    不多说,直接上干货! HashMap  和  HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的 ...

  2. 牛客网Java刷题知识点之为什么HashMap不支持线程的同步,不是线程安全的?如何实现HashMap的同步?

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  3. 牛客网Java刷题知识点之Map的两种取值方式keySet和entrySet、HashMap 、Hashtable、TreeMap、LinkedHashMap、ConcurrentHashMap 、WeakHashMap

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  4. 牛客网Java刷题知识点之ArrayList 、LinkedList 、Vector 的底层实现和区别

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  5. 牛客网Java刷题知识点之垃圾回收算法过程、哪些内存需要回收、被标记需要清除对象的自我救赎、对象将根据存活的时间被分为:年轻代、年老代(Old Generation)、永久代、垃圾回收器的分类

    不多说,直接上干货! 首先,大家要搞清楚,java里的内存是怎么分配的.详细见 牛客网Java刷题知识点之内存的划分(寄存器.本地方法区.方法区.栈内存和堆内存) 哪些内存需要回收 其实,一般是对堆内 ...

  6. 牛客网Java刷题知识点之HashMap的实现原理、HashMap的存储结构、HashMap在JDK1.6、JDK1.7、JDK1.8之间的差异以及带来的性能影响

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

  7. 牛客网Java刷题知识点之UDP协议是否支持HTTP和HTTPS协议?为什么?TCP协议支持吗?

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

  8. 牛客网Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤

    福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟   ...

  9. 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合

    不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...

  10. 牛客网Java刷题知识点之泛型概念的提出、什么是泛型、泛型在集合中的应用、泛型类、泛型方法、泛型接口、泛型限定上限、泛型限定下限、 什么时候使用上限?泛型限定通配符的体现

    不多说,直接上干货! 先来看个泛型概念提出的背景的例子. GenericDemo.java package zhouls.bigdata.DataFeatureSelection; import ja ...

随机推荐

  1. 查看,修改,上传monmap命令

    标签(空格分隔): ceph,ceph运维,monmap 查看集群monmap命令 从集群获取monmap: # ceph mon getmap -o monmap 查看上一步下载的monmap: # ...

  2. Ruby中的include

    Ruby中的include语句应注意以下两个问题: 1.include与文件无关.C语言中,#include预处理指令在编译期将一个文件的内容插入到另一个文件中.Ruby语句只是简单地产生一个指向指定 ...

  3. 韩顺平循序渐进学JAVA从入门到精通 视频全套,需要的联系我

    0讲-开山篇.avi 10讲-访问修饰符.重载.覆盖.avi 11讲-约瑟夫问题.avi 12讲-多态.avi 13讲-抽象类.接口.avi 14讲-final.作业评讲.avi 15讲-作业.测试题 ...

  4. ubuntu部署supersor

     1.安装pip $ sudo apt-get install python-pip –y $ sudo pip install - -upgrade pip //升级pip 2.安装supervis ...

  5. JSP注释

    ------------------siwuxie095                                 在 JSP 文件中可以使用 HTML 注释     HTML 注释使用 < ...

  6. Dockerfile设置apt-get install tzdata的noninteractive方法

    在Ubuntu系统中,执行命令apt-get install -y tzdata以安装tzdata软件包.但是,最近发现,在Ubuntu 18.04 (Bionic Beaver)上无法自动安装该软件 ...

  7. Entity Framework Code-First(9.5):DataAnnotations - MaxLength Attribute

    DataAnnotations - MaxLength Attribute: MaxLength attribute can be applied to a string or array type ...

  8. ES Docs-1:Installation Elasticsearch-2.3.1

    installation Elasticsearch requires at least Java 7. Specifically as of this writing, it is recommen ...

  9. ERROR: JDWP Unable to get JNI 1.2 environment的解决方法

    当执行如下代码时: //从控制台获取输入 InputStream is = System.in; Scanner scanner = new Scanner(is); System.out.print ...

  10. spring framework 源码

    spring framework 各版本源码下载地址 现在spring的源码下载地址真是不好找,这次终于找到了.记录一下,以帮助需要的朋友. https://github.com/spring-pro ...