首页 > 编程语言 > 详细

java 当中的值传递和引用传递

时间:2020-11-13 18:28:12      阅读:34      评论:0      收藏:0      [点我收藏+]

一. 首先java中的基础数据类型byte,short,int,long,float,double,boolean,char

 1. 通过基本数据类型声明的局部都是存储java虚拟机栈当中

 2. 非基本数据类型,存储于java 堆内存当中

 

二 基本类型 和 引用类型的不同之处

int num = 10;
String str = "hello";

1. 如图所示,num是基本类型,值就直接保存在变量中。而str是引用类型,变量中保存的只是实际对象的地址。一般称这种变量为"引用",引用指向实际对象,实际对象中保存着内容。

技术分享图片

 

 

 三:赋值运算符(=)的作用

num = 20;
str = "java";
1. 对于基本类型 num ,赋值运算符会直接改变变量的值,原来的值被覆盖掉。
2. 对于引用类型 str,赋值运算符会改变引用中所保存的地址,原来的地址被覆盖掉。但是原来的对象不会被改变(重要)。
3. 如上图所示,"hello" 字符串对象没有被改变。(没有被任何引用所指向的对象是垃圾,会被垃圾回收器回收)
技术分享图片
 

 三. 调用方法时发生了什么?参数传递基本上就是赋值操作。

public static void main(String[] args) {
ParamTest pt = new ParamTest();
pt.sout("Hollis");//实际参数为 Hollis
}

public void sout(String name) { //形式参数为 name
System.out.println(name);
}
形式参数为 name的值在执行的过程当中,会拷贝一份  实际参数为 Hollis栈内存中的值一个副本
 

java 当中的值传递和引用传递

原文:https://www.cnblogs.com/chihirotan/p/13970720.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!