gpt4 book ai didi

java - java中字符串是如何传入方法的(就内存而言)

转载 作者:行者123 更新时间:2023-12-01 21:54:40 25 4
gpt4 key购买 nike

当我们调用方法时,如果您传入原始类型,则在调用方法时该值将被放入堆栈帧中。如果您传入引用类型,如果它不为 null,则您可能已经在堆上的某个位置创建了它,并且放入堆栈的内容是对它的引用。

但是当我做类似的事情时,堆栈上会发生什么

person.setName("Jack");

它是否首先在堆上创建一个字符串对象,然后将对该字符串的引用放在堆栈上?

最佳答案

根据您的代码,“Jack” 是一个字符串常量,因此它位于 run-time constant pool 中。该池驻留在 JVM 中称为方法区的区域中。

但是,如果代码更改为:

Person.SetName(new String("Jack"));

然后传递的引用指向堆上的对象,就像任何引用类型一样。

关于java - java中字符串是如何传入方法的(就内存而言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34558414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com