java关于栈和堆的线程私有和公有的分析

2026-07-19 08:43:23   今晚世界杯预测

在java里面, 每运行一个方法就会创建一个栈,属于线程私有, 当方法结束以后栈也会随之弹出, 所以当方法传递过来的引用进行改变的时候是不生效的, 但是如果对传递过来的对象里面的值进行改变即使方法运行结束,所做的更改仍然保留, 因为对象是是存储在堆里面,属于线程之间共享, 即使方法运行结束,所做的更改仍然保留, 如下代码便展示这个问题

public static void main(String[] args) {

Test test = new Test();

test.setA(2);

int b = 1;

changeValue(b, test);

System.out.println("b的值为 " + b + ", test的值为 "+test.getA());

}

private static void changeValue(Integer a, Test test) {

a = 6;

int b = 7;

test.setA(b);

}

运行结果为:

b的值为 1, test的值为 7

关于入围2026年世界杯的 伊朗 队的一切。
cf复仇者和堕天使哪个好?(cf手游复仇者与堕天使的对比)