栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java是值传递

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java是值传递

Java是值传递 传的是地址值

eg.下列代码的输出是什么?

public static void main(String[] args) {
		StringBuffer a = new  StringBuffer("A");
		StringBuffer b = new  StringBuffer("B");
		change(a, b);
		System.out.println(a+","+b);
	}
	
	public static void change(StringBuffer x,StringBuffer y) {
		x.append(y);
		y = x;
	}

变量ab入栈,在堆内存开辟内存空间,将AB存入字符串常量池,ab指向堆内存的内存空间,内存空间指向字符串常量池里的AB

调用change方法 参数xy入栈 并将ab地址值分别赋给xy;xy也指向了AB字符串常量

调用append拼接AB x指向AB

赋值 y指向拼接后的字符串AB

方法调用完后出栈 xy销毁 但堆内存里不变,ab指向对应的堆内存,堆内存分别指向AB,B

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771216.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号