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

Java 方法总结篇

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

Java 方法总结篇

Java 方法总结篇 Java方法无法修改基本数据类型
//方法定义
public static void addOne(int num){
	num = num + 1;
	System.out.println(num);//11
}

//调用
Integer num = 10;
addOne(num);
System.out.println(num);//10

自己试了,确实无法修改值。JVM运行时将基本数据类型的值拷贝一份,传入方法参与计算,计算结束后释放拷贝值。

Java方法可以修改对象值
class Person{
	public Integer age;
	public String name;
	public Person(Integer age,String name){
		this.name = name;
		this.age = age;
	}
}
// 方法定义
public static void addOne(Person person){
	person.age = person.age+ 1;
	System.out.println(person.age);//11
}

//调用
Person person = new Person(20,"jack");
addOne(person);
System.out.println(person.age);//11

想要了解原因,需要深入Java运行时的堆栈上分别存入的什么数据

JVM仅有一个堆,被所有线程共享;堆中存放着所有类的实例化对象 和 数组对象

存放所有对象的名称,这些名称指向堆中对应的对象以及基本数据类型

所以,类实例作为参数进入方法,修改的是堆中的数据,这是长久的,主程序中定义的基本数据类型,存放在栈中,使用时JVM并不会去刻意修改它。
未完待续…

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

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

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