永发信息网

Java:共享成员变量是什么意思啊?

答案:5  悬赏:40  手机版
解决时间 2021-03-02 14:43
Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。

谁能深入浅出的解释下这个是什么意思吗?
最佳答案
Java共享成员变量是指在同一个类中或者不同包下的类,使用同一个变量进行操作。示例如下:
public class Car {
        private String color; // 定义汽车颜色,全局变量
        private int numLuntai; // 定义汽车轮胎数,全局变量

        public Car(String color, int numLuntai){
                  super();
                  this.color = color;
                  this.numLuntai = numLuntai;
        }
        public void run() {
                  System.out.println(this.numLuntai+ "个轮子的" +this.color + "轿车在马路上行驶着");
        }
}

public class ClassTest {
        public static void main(String[] args){
                  Car bmw = new Car("黑色", 4);      // 创建一个轿车对象,名字为bmw
                  bmw.run();
        }
}
全部回答
两个线程同时获取变量, 获取之后.第一个线程++操作,然后进入睡眠. 这时,第二个线程,也获取到了,做--操作.睡眠. 第一个线程醒来打印的是做过2次运算的数据(++,--)所以是0 第二线程也一样. 这涉及到多线程安全问题.
没有遇到过这个问题,我理解共享成员变量应该是类变量也就是类静态变量
建议你看看 计算机操作系统 这本书 里面关于进程的这一块,同步进程,共享代码块,共享变量。讲得很详细
成员变量: 如果一个变量是成员变量,那么多个线程对同一个对象的成员变量进行操作,这多个线程是共享一个成员变量的。 局部变量: 如果一个变量是局部变量,那么多个线程对同一个对象进行操作,每个线程都会有一个该局部变量的拷贝。他们之间的局部变量互不影响。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
【勉为其难什么意思】勉为其难什么意思
燕之屋·碗燕(翠微百货)怎么去啊,有知道地址
批处理的应用例子
背景资料某沉箱重力式码头工程,其主要施工工
经济类型有哪些
小百花连锁超市金桥世纪店这个地址在什么地方
20世纪20年代,揭开制碱奥秘的化学家是A. 詹
盈通驱动光盘怎么安装
sheep里的ee和feet里的ee发音相同吗
植物标本怎么做?我想把四叶草做成标本。。
金丽洗车行地址在什么地方,想过去办事
江淮瑞风m5发动机产自哪里
1972年12月14阴历是多少号?
芙蓉兴盛便利超市翠华街便利店在哪里啊,我有
岑参为何成为边塞诗人
推荐资讯
美孚力霸15W-40机油多少钱一瓶。
公司欠我们工资,申请了强制执行,我们怎么想
博学雅苑超市地址在哪,我要去那里办事
朴素妍和李居丽,求长相、人气和才艺排名。
1元换1.5倍是啥意思啊
今王与百姓同乐,则王矣。什么意思?
新街口邮政支局在哪里啊,我有事要去这个地方
从南山站到百鸽笼站地铁?怎么走
12名工作人员(其中包括甲在内的男性3名.女性9
长子已死,长孙是否有继承权。如果其他子女一
《口技》中“便有妇人惊觉欠身”中的“觉”字
在广州国美或苏宁买佳能相机好吗?有保障吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?