代码如下
package day15.thread;
public class RunnableAccess {
String name = null;
public RunnableAccess(String name) throws InterruptedException {
super();
this.name = name;
System.out.println(name);
init();
Thread.sleep(1880);
System.out.println(name);
}
public void init(){
new Thread(new Run(this)).start();
}
public static void main(String [] args) throws InterruptedException
{
new RunnableAccess("main");
}
}
class Run implements Runnable{
private RunnableAccess r = null;
public Run(RunnableAccess r){
this.r = r;
}
@Override
public void run() {
// TODO Auto-generated method stub
r.name = "run";
}
};
结果如下:
main
main
java中新建线程访问主线程的的变量并修改,主线程中变量未改变?静态也不行最好能够详细解释内存状态
答案:1 悬赏:80 手机版
解决时间 2021-03-16 02:39
- 提问者网友:沉默菋噵
- 2021-03-15 17:17
最佳答案
- 五星知识达人网友:时间的尘埃
- 2021-03-15 18:14
System.out.println(name);修改为
System.out.println(this.name); 你在百构造方法度中输出name,先是使用问本作用域的变量,再使用更大范围的答变量,直接就找到你构造方法中的name了,所以两次都是name
System.out.println(this.name); 你在百构造方法度中输出name,先是使用问本作用域的变量,再使用更大范围的答变量,直接就找到你构造方法中的name了,所以两次都是name
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯