鍍金池/ 問答/Java/ java 單實(shí)例,屬性共享

java 單實(shí)例,屬性共享

java實(shí)例實(shí)現(xiàn)屬性共享,比如我現(xiàn)在有一千萬詞循環(huán),我需要修改一個實(shí)例中的屬性為i

代碼如下

List<OrderInfo> orderInfos = new ArrayList<OrderInfo>();
OrderInfo orderInfo=null;
for(int i=0;i<10000000;i++){
    orderInfo = new OrderInfo();
    orderInfo.setOrderState(i);
    orderInfos.add(orderInfo);
}

如果把orderInfo提出去,那么將會引用一個對象

orderInfo = new OrderInfo();
for(int i=0;i<10000000;i++){
    orderInfo.setOrderState(i);
    orderInfos.add(orderInfo);
}

問題很簡單,假如我對象中的屬性很復(fù)雜,很重,那么其余的屬性就是浪費(fèi)的,有沒有辦法做到其他屬性共享,orderState 獨(dú)立,這樣可以節(jié)省很大內(nèi)存,初入java,請大家指教一下,謝謝

回答
編輯回答
念舊

static,靜態(tài)變量,了解一下。

2018年2月21日 20:52
編輯回答
別瞎鬧

static或通過包面包裝一層。

for(int i=0;i<10000000;i++){
    OrderInfoWrapper orderWrapper = new OrderInfoWrapper(i, orderInfo);
}

class OrderInfoWrapper {
    int i;
    OrderInfo orderInfo;
}
2017年1月8日 06:49
編輯回答
離殤

共享屬性存在線程安全問題,需要注意!

2017年1月20日 04:16
編輯回答
舊城人

將需要共享的屬性用static修飾就行

2017年8月11日 01:24