局部变量:一般指方法参数,或者方法中定义的变量
成员变量:class类对象具备的对象,比如student类,有name、age、sex、各类学科的分数score等,属于个人的信息。
多个线程访问成员变量,可能出现线程1修改了成员变量,线程2也修改了成员变量,但是线程2修改后的值不生效,和线程1的值一样,存在执行时序先后顺序,导致返回值错误,不是自己想要的。
android postdelay必须要使用局部变量,不能使用成员变量。局部变量默认final的,不能修改。

神奇的打印,for循环中主线程延迟打印,数据一样的,只会打印2次,猜测handle postdelay,队列中做了优化处理。

多个子线程方式:

handle postdelayed做个优化处理,相同的返回最多输出2次:





成员变量,只有最后1次的修改生效,多个相同打印2次




内部类访问 成员变量

多线程访问成员变量,非final 存在线程安全问题,数据被修改:

多线程局部变量,没有安全问题:

本文探讨了局部变量与成员变量的区别,特别是在多线程环境下它们的行为差异。局部变量通常用于方法参数或方法内部,而成员变量则属于类实例的一部分。文章还讨论了在Android开发中使用postDelayed时为何要选择局部变量而非成员变量的原因。

被折叠的 条评论
为什么被折叠?



