发布网友 发布时间:2023-08-22 14:29
共5个回答
热心网友 时间:2024-11-24 07:17
首先,输出语句打印的a和b都是成员变量,在执行静态方法operate()后,改变的是方法类的局部变量x和y。执行输出语句时输出的a是执行了aperate方法后的a,而输出的b是原来成员变量的b。这题的迷惑性在于,输出语句是写在main()方法里的,而不是写在operate()里面。楼主认为打印的b应该为AB是因为变量的类型没有搞清楚。图1 为原结果,图2 为修改代码后的结果
热心网友 时间:2024-11-24 07:17
x,y是operate(...)的局部变量,在调用完方法之后,就释放了!因此b取得是B。而a 是因为调用了append()方法。。所以AB追问a的话就不是局部变量调用的了么调用追答a,b 也是 ,不过他们是main 方法中的,与x,y不同x,y会在方法执行完就释放掉!而a,b在main 方法中依然有效!!当整个main执行完才会释放,作用域不同!
热心网友 时间:2024-11-24 07:18
题目没有错,我刚才在Java里面调试了一个,在主函数里面的a,b,的id是不同的,执行完oprate这个函数后,局部变量y就被回收了,只在局部起作用,因此主函数里面的b还是初始的id.追问那么参数x不会被回收么
热心网友 时间:2024-11-24 07:18
应该是StringBuilder属于指针引用,无法引用到值热心网友 时间:2024-11-24 07:19
题目好像错了