【案例演示】JVM之強引用、軟引用、弱引用、虛引用

1.背景

想要理解對象什麼時候回收,就要理解到對象引用這個概念,於是有了下文

2.java中引用對象結構圖

3.引用詳解

3.1.什麼是強引用

a.當內存不足,JVM開始垃圾回收,對於強引用的對象,就算是出現了00M也不會對該對象進行回收,死都不收。

b.強引用是我們最常見的普通對象引用,只要還有強引用指向一個對象,就能表明對象還“活着”,垃圾收集器不會碰這種對象。

在Java中最常見的就是強引用,把一個對象賦給一個引用變量,這個引用變量就是一個強引用。

當一個對象被強引用變量引用時,它處於可達狀態,它是不可能被垃圾回收機制回收的,即使該對象以後永遠都不會被用到JVM也不會回收。

因此強引用是造成Java內存泄漏的主要原因之一

c.對於一個普通的對象,如果沒有其他的引用關係,只要超過了引用的作用域或者顯式地將相應(強)引用賦值為null,一般認為就是可以被垃圾收集的了〈當然具體回收時機還是要看垃圾收集策略)。

案例:

package com.wfd360.demo03GC.referDemo;

/**
 * @author 姿勢帝-博客園
 * @address https://www.cnblogs.com/newAndHui/
 * @WeChat 851298348
 * @create 06/20 12:12
 * @description
 */
public class StrongRefer {
    /**
     * 強引用的理解
     *
     * @param args
     */
    public static void main(String[] args) {
        Object obj1 = new Object();
        // 建立強引用
        Object obj2 = obj1;
        // 觀察obj1 和 obj2 的各種內存地址
        System.out.println("obj1=" + obj1);
        System.out.println("obj2=" + obj2);
        // obj1創建可以回收的條件
        obj1 = null;
        // gc回收
        System.gc();
        // 觀察各對象情況
        System.out.println("obj1=" + obj1);
        System.out.println("obj2=" + obj2);
    }
}

View Code

 從測試結果課程看出,obj1的實際對象別沒有回收;

3.2.什麼是軟引用

a.軟引用是用來描述一些還有用但並非必需的對象,需要用java.lang.ref.SoftReference類來實現。

b.對於軟引用關聯着的對象,在系統將要發生內存溢出異常之前,將會把這些對象列進回收範圍之中進行第二次回收。如果這次回收還沒有足夠的內存,才會拋出內存溢出異常。在JDK1.2之後,提供了Soft Reference類來實現軟引用。

c.軟引用通常用在對內存敏感的程序中,比如高速緩存就有用到軟引用,內存夠用的時候就保留,不夠用就回收!

案例:

package com.wfd360.demo03GC.referDemo;

import java.lang.ref.SoftReference;

/**
 * @author 姿勢帝-博客園
 * @address https://www.cnblogs.com/newAndHui/
 * @WeChat 851298348
 * @create 06/20 12:12
 * @description
 */
public class SoftRefer {

    /**
     * 軟引用的理解
     * 通過設置jvm參數,在不同的條件下觀察
     *
     * @param -Xms5m -Xmx5m -XX:+PrintGCDetails
     * @param args
     */
    public static void main(String[] args) {
        // 測試內存充足(不回收軟引用)
        //testSoftReferNOGc();
        // 測試內存不充足(回收軟引用)
        testSoftReferGc();
    }

    /**
     * 模擬內存充足的情況
     */
    public static void testSoftReferNOGc() {
        Object obj1 = new Object();
        // 建立軟引用
        SoftReference softRefer = new SoftReference<>(obj1);
        // 觀察內存地址
        System.out.println("obj1=" + obj1);
        System.out.println("softRefer=" + softRefer.get());
        // obj1創建可以回收的條件
        obj1 = null;
        // gc回收
        System.gc();
        // 再次觀察內存地址
        System.out.println("obj1=" + obj1);
        System.out.println("softRefer=" + softRefer.get());
    }

    /**
     * 模擬內存不足
     * 1.設置較小的堆內存
     * 2.創建大對象
     * 3.jvm參
     * -Xms5m -Xmx5m -XX:+PrintGCDetails
     */
    public static void testSoftReferGc() {
        Object obj1 = new Object();
        // 建立軟引用
        SoftReference softRefer = new SoftReference<>(obj1);
        // 觀察內存地址
        System.out.println("obj1=" + obj1);
        System.out.println("softRefer=" + softRefer.get());
        // obj1創建可以回收的條件
        obj1 = null;
        try {
            byte[] bytes = new byte[6 * 1024 * 1024];
        } catch (Throwable e) {
            System.out.println("===============>error:" + e.getMessage());
        } finally {
            // 再次觀察內存地址
            System.out.println("obj1=" + obj1);
            System.out.println("softRefer=" + softRefer.get());
        }
    }
}

View Code

內存充足測試結果:

 內存不充足測試結果:

 實際案例

假如有一個應用需要讀取大量的本地數據(圖片、通訊率、臨時文件等):

如果每次讀取數據都從硬盤讀取則會嚴重影響性能,

如果一次性全部加載到內存中又可能造成內存溢出。

此時使用軟引用可以解決這個問題。

設計思路是:用一個HashMap來保存數據的路徑和相應數據對象關聯的軟引用之間的映射關係,在內存不足時,

JVM會自動回收這些緩存數據對象所佔用的空間,從而有效地避免了00M的問題。

Map<String,SoftReference>imageCache=new HashMap<String,SoftReference>();

 3.3.什麼是弱引用

a.弱引用也是用來描述非必需對象的,但是它的強度比軟引用更弱一些,被弱引用關聯的對象只能生存到下一次垃圾收集發生之前。

b..當垃圾收集器工作時,無論當前內存是否足夠,都會回收掉只被弱引用關聯的對象。在JDK1.2之後,提供廣Weak Reference類來實現弱引用。

c.弱引用需要用Java.lang.ref.WeakReference類來實現,它比軟引用的生存期更短.

案例:

package com.wfd360.demo03GC.referDemo;

import java.lang.ref.WeakReference;

/**
 * @author 姿勢帝-博客園
 * @address https://www.cnblogs.com/newAndHui/
 * @WeChat 851298348
 * @create 06/20 12:12
 * @description
 */
public class WeakRefer {

    /**
     * 弱引用的理解
     *
     * @param args
     */
    public static void main(String[] args) {
        Object obj1 = new Object();
        // 建立弱引用
        WeakReference softRefer = new WeakReference<>(obj1);
        // 觀察內存地址
        System.out.println("obj1=" + obj1);
        System.out.println("softRefer=" + softRefer.get());
        // obj1創建可以回收的條件
        obj1 = null;
        // gc回收
        System.gc();
        // 再次觀察內存地址
        System.out.println("obj1=" + obj1);
        System.out.println("softRefer=" + softRefer.get());
    }

}

View Code

 擴展知識-WeakHashMap

查看API介紹:

 測試代碼:

package com.wfd360.demo03GC.referDemo;

import java.util.HashMap;
import java.util.WeakHashMap;

/**
 * @author 姿勢帝-博客園
 * @address https://www.cnblogs.com/newAndHui/
 * @WeChat 851298348
 * @create 06/20 5:10
 * @description <p>
 * 弱引用引用之:WeakHashMap
 * 以弱鍵 實現的基於哈希表的 Map。在 WeakHashMap 中,當某個鍵不再正常使用時,將自動移除其條目。
 * 更精確地說,對於一個給定的鍵,其映射的存在並不阻止垃圾回收器對該鍵的丟棄,這就使該鍵成為可終止的,被終止,
 * 然後被回收。丟棄某個鍵時,其條目從映射中有效地移除,因此,該類的行為與其他的 Map 實現有所不同。
 * </p>
 */
public class WeakReferMap {
    /**
     * 測試 HashMap 與 WeakHashMap 區別
     * 測試邏輯:
     * 1.創建不同的map
     * 2.創建key  value值
     * 3.放入各自的map,並打印結果
     * 4.將key設置為null,並打印結果
     * 5.手動GC,並打印結果
     *
     * @param args
     */
    public static void main(String[] args) {
        hashMapMethod();
        System.out.println("--------華麗的分割線--------");
        weakHashMapMethod();
    }

    /**
     * HashMap測試(強引用)
     */
    private static void hashMapMethod() {
        HashMap<String, String> map = new HashMap<>();
        String key = "key1";
        String value = "HashMap-value";

        map.put(key, value);
        System.out.println(map);

        key = null;
        System.out.println(map);

        System.gc();
        System.out.println(map);
    }

    /**
     * 若引用(WeakHashMap測試)
     */
    private static void weakHashMapMethod() {
        WeakHashMap<String, String> map = new WeakHashMap<>();
        // 注意這裏的new一個字符串與直接寫key="key2"對測試結果是有區別的,詳細原因可以看之前講的內存分配
        String key = new String("key2");
        String value = "WeakHashMap-value";

        map.put(key, value);
        System.out.println(map);

        key = null;
        System.out.println(map);

        System.gc();
        System.out.println(map);

    }

}

View Code

測試結果:

 從測試結果可以看出:弱引用的map數據已經被回收。

 擴展知識-ReferenceQueue引用隊列

 代碼:

package com.wfd360.demo03GC.referDemo;

import java.lang.ref.ReferenceQueue;
import java.lang.ref.WeakReference;

/**
 * @author 姿勢帝-博客園
 * @address https://www.cnblogs.com/newAndHui/
 * @WeChat 851298348
 * @create 06/20 7:23
 * @description
 */
public class QueueRefer {
    /**
     * 測試弱引用回收前,把數據放入隊列中
     *
     * @param args
     * @throws InterruptedException
     */
    public static void main(String[] args) throws InterruptedException {
        Object obj1 = new Object();
        ReferenceQueue<Object> referenceQueue = new ReferenceQueue();
        // 當GC釋放對象內存的時候,會將引用加入到引用隊列
        WeakReference<Object> weakReference = new WeakReference<>(obj1, referenceQueue);

        System.out.println(obj1);
        System.out.println(weakReference.get());
        System.out.println(referenceQueue.poll());

        System.out.println("--------華麗的分割線--------");
        obj1 = null;
        System.gc();
        Thread.sleep(500);

        System.out.println(obj1);
        System.out.println(weakReference.get());
        System.out.println(referenceQueue.poll());
    }

}

View Code

採用弱引用的方式測試結果:

從測試結果可以看出,需要回收的對象已經進入隊列。

 採用軟引用的方式測試結果:

 從測試結果可以看出,軟引用,沒有到達回收的條件,並沒有進行回收,也不會進入隊列;

3.4.什麼是虛引用

1.虛引用需要java.lang.ref.PhantomReference類來實現。

2.與其他幾種引用都不同,虛引用並不會決定對象的生命周期。如果一個對象僅持有

虛引用,那麼它就和沒有任何引用一樣,在任何時候都可能被垃圾回收器回收,它不能單獨使用也不能通過它訪

問對象,虛引用必須和引用隊列(ReferenceQueue)聯合使用。

3.虛引用的主要作用是跟蹤對象被垃圾回收的狀態。僅僅是提供了一種確保對象被finalize以後,做某些事情的

機制。PhantomReference的get方法總是返回null,因此無法訪問對應的引用對象。其意義在於說明一個對象己

經進入俑finalization階段,可以被gc回收,用來實現比finalization機制更靈活的回收操作。

4.設置虛引用關聯的唯一目的,就是在這個對象被收集器回收的時候收到一個系統通知或者後續添加

進一步的處理。Java技術允許使用finalize()方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。

代碼:

package com.wfd360.demo03GC.referDemo;

import java.lang.ref.PhantomReference;
import java.lang.ref.ReferenceQueue;

/**
 * @author 姿勢帝-博客園
 * @address https://www.cnblogs.com/newAndHui/
 * @WeChat 851298348
 * @create 06/20 7:44
 * @description
 */
public class PhantomRefer {
    /**
     * 虛引用測試
     * @param args
     * @throws InterruptedException
     */
    public static void main(String[] args) throws InterruptedException {
        Object obj1 = new Object();
        ReferenceQueue<Object> referenceQueue = new ReferenceQueue();
        PhantomReference<Object> phantomReference = new PhantomReference<>(obj1,referenceQueue);

        System.out.println(obj1);
        System.out.println(phantomReference.get());
        System.out.println(referenceQueue.poll());

        System.out.println("--------華麗的分割線--------");

        obj1 = null;
        System.gc();
        Thread.sleep(500);

        System.out.println(obj1);
        System.out.println(phantomReference.get());
        System.out.println(referenceQueue.poll());
    }

}

View Code

測試結果:

4.重要總結

對象是否存活判斷流程:

1.可達性分析,看是否有GC Roots的引用鏈,如果沒有將做第一次標記;

2.檢查是否需要執行finalize()方法,

如果沒必要(之前執行過了),直接回收內存;

如果要執行finalize()方法,這個時候對象如果再次建立引用鏈(唯一自救機會),對象不會被回收,否則直接回收;

總結:

1.對象回收滿足兩個條件:

a.沒有引用鏈。

b.回收前會執行finalize()方法,如果執行finalize(),沒有再次建立連接(如果重新與引用鏈上的任意對象建立連接,例如給對象賦值,該對象都不會被回收)

2.在gc回收前會執行finalize()方法,只執行一次,並且是異步執行不保證執行成功,線程優先級低

代碼演示:

package com.wfd360.demo03GC.referDemo;

/**
 * @author 姿勢帝-博客園
 * @address https://www.cnblogs.com/newAndHui/
 * @WeChat 851298348
 * @create 06/20 8:34
 * @description
 */
public class FinalizeGC {
    public static FinalizeGC obj1 = null;

    /**
     * 重寫finalize方法
     * @throws Throwable
     */
    @Override
    protected void finalize() throws Throwable {
        super.finalize();
        System.out.println("執行finalize方法");
        // 自救,在回收時建立引用鏈
        FinalizeGC.obj1 = this;
    }

    public static void main(String[] args) throws InterruptedException {
        obj1  = new FinalizeGC();

        obj1 = null;
        System.gc();
        Thread.sleep(600);
        System.out.println("第一次自救成功:"+obj1);

        obj1 = null;
        System.gc();
        Thread.sleep(600);
        System.out.println("第二次自救失敗,不會再次執行finalize方法:"+obj1);
    }
}

View Code

測試結果:

 完美!

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

.NET Core Hangfire周期性作業調度問題

前言

四月中旬Hangfire團隊發布了1.7.11版本,在使用周期性作業調度過程中發現一個問題,這個問題應該一直未解決,故做此記錄,希望遇到的童鞋根據項目業務而避開這個問題。

周期性作業調度

我們依然是在控制台中進行測試,下載所需包請參考官方文檔,這裏不再敘述,首先我們在內存中存儲數據,如下:

var storageOpts = new MemoryStorageOptions();

GlobalConfiguration.Configuration.UseMemoryStorage(storageOpts);

using var server = new BackgroundJobServer();

RecurringJob.AddOrUpdate("job1", () => Print1(), "*/10 * * * * *", TimeZoneInfo.Local);

RecurringJob.AddOrUpdate("job2", () => Print2(), "*/10 * * * * *", TimeZoneInfo.Local);

RecurringJob.AddOrUpdate("job3", () => Print3(), "*/10 * * * * *", TimeZoneInfo.Local);
public static void Print1()
{
    Console.WriteLine("start1");
}

public static void Print2()
{
    Console.WriteLine("start2");
}

public static void Print3()
{
    Console.WriteLine("start3");
}

Hangfire已支持秒級(1.7+)周期作業調度,如上代碼,我們每隔10秒執行上述3個作業,打印如下:

 

基於內存存儲間隔10秒執行對應作業,根據上述打印結果來看沒有問題,接下來我們使用SQLite來存儲作業數據看看,首先下載Hangfire.SQLite包,針對控制台需進行如下配置

GlobalConfiguration.Configuration.UseSQLiteStorage("Data Source=./hangfire.db;");

當我們啟動控制台時一定會拋出如下異常,其異常旨在表明需要SQLite驅動

我們去下載微軟官方針對SQLite的驅動(Microsoft.Data.Sqlite)

 接下來我們將發現對於每一個作業都會重複執行多次,如下:

猜測只會在SQLite數據庫中才會存在問題吧,為了解決這個問題,做了一點點嘗試,但還是無法從根本上完全解決,我們知道Hangfire服務的默認工作數量為當前機器的處理器數量乘以5即(Environment.ProcessorCount * 5),那麼我們嘗試給1是不是可以規避這個問題

var options = new BackgroundJobServerOptions()
{
    WorkerCount = 1
};

using var server = new BackgroundJobServer(options);

 

上述設置后,我們可以看到貌似只執行了一次,但是這種情況還是是隨機的並不靠譜,比如多執行幾次看看,會出現如下可能情況

 

沒招了,找了下官方issue列表,發現此問題(https://github.com/mobydi/Hangfire.Sqlite/issues/2)一直處於打開狀態並未得到解決,所以要麼看看能否根據項目業務規避這個問題或者下載源碼自行調試解決

總結

本文是在使用Hangfire過程中發現SQLite數據庫出現的問題,因針對Hangfire的SQLite具體實現並不是官方團隊所提供,所以暫不能確定到底是Hangfire.SQLite包提供者的問題,根據issue描述大概率是Hangfire的一個bug,希望在SQLite存儲作業等數據存在的問題引起使用者注意。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準

咖啡渣做太陽眼鏡 暨時尚又環保

摘錄自2019年12月12日公視報導

根據估計,全球每天喝掉20到25億杯咖啡,產生的咖啡渣非常驚人。烏克蘭有位新創工作者靈機一動,把咖啡渣拿來廢物利用,做出時尚又環保的太陽眼鏡。

來自烏克蘭的嘉利藍科,原本以修眼鏡為業,為了讓鏡框也能符合環保可分解的概念,他不斷尋找可以替代塑膠的材料,從薄荷到小麥和稻米,他通通都試過。最後發現咖啡渣混合植物油和亞麻纖維,經壓縮後裁切成框,效果最好。初步成形的鏡框,再經由手工琢磨拋光,就成為質感和造型出眾的太陽眼鏡,連鏡片也採用類似的植物纖維製成。嘉利藍科說:「這不只是生產商品而已,而是改變人們的認知,讓他們喜歡使用自然材質和自然成分,養成良心消費的習慣。」

咖啡渣眼鏡不但看得出天然質感,還可以聞到咖啡的香氣。嘉利藍科為自行研發的太陽眼鏡冠上新品牌,主要在咖啡廳和網路銷售,結果自去年推出以來,消費者的反應相當不錯,主要客戶來自歐美。消費者波利亞科夫表示,「它很創新也對環境友善,就保護生態環境而言,不只是在我國,而是放眼全世界,往這個方向發展是很重要的。」

咖啡渣材質比一般鏡架更輕,而當它們不再使用,長久放置於水或泥土中,便會自動分解成天然的肥料。嘉利藍科看好咖啡渣再利用的前景,未來計畫將它製成餐盤、牙刷和手機殼等日用品,希望更多人一起加入減塑做環保的行列。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

西門子檢討澳洲煤礦案 瑞典環保少女籲做對的事

摘錄自2020年01月11日中央通訊社澳洲報導

德國西門子公司(Siemens AG)即將公布是否參與協助一項澳洲煤礦開採計畫,瑞典環保少女童貝里今天(11日)呼籲西門子做出正確的決定。

童貝里(Greta Thunberg)今天在推特(Twitter)發文:「星期一(13日),他們(西門子)將宣布決定。請幫助他們做出唯一正確的決定。」環保人士憂心,繼續使用煤炭會導致二氧化碳排放量增加,二氧化碳則是造成全球暖化的相關氣體。

西門子公司表示,他們將於13日前決定,是否參與印度阿達尼電力公司(Adani Power)興建的煤礦場計畫。

澳洲相當依賴燃煤電廠,是全球人均碳排放量最高的國家之一。澳洲政府去年批准阿達尼電力公司在昆士蘭州(Queensland)興建新的煤礦場,這座煤礦場預計每年生產800萬至1000萬噸燃料用煤。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

南極「頰紋企鵝」 半世紀數量減少七成七

摘錄自2020年2月12日公視報導

美國生物學家最近在南極調查發現,當地常見的一種「頰紋企鵝」,數量比50年前大幅銳減了七成七。科學家指出,南極溫度在過去2、30年間上升了5°C。而冰棚快速融解崩塌,讓企鵝失去原本的棲息地,食物供應也大受影響。

保育生物學家佛瑞斯特表示,「我們認為這裡基礎食物鏈的建構出了問題,有可能是浮游生物或是磷蝦減少,食物不如以往充足,導致企鵝數量不斷減少。問題在於這種情況會不會持續惡化。」

頰紋企鵝、皇帝企鵝和國王企鵝,數量都在急劇減少,這也意味著生態的多樣性與豐富性正遭遇巨大衝擊。環保團體呼籲聯合國在2030年之前,將全球30%的海域列為保護區,因為目前只有4%受到保護實在太少。而從目前企鵝數量銳減的情況看來,將南極海域列為保護區已經刻不容緩。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準

萬向收購A123未出局 但其軍工業務已剔除

美國電池生產商A123系統公司將招標出售整體資產。此前一度被認為出局的中國萬向集團,將和美國江森自控(Johnson Controls)競逐標的。日前,萬向美國公司總裁倪頻先生在接受記者採訪時證實,目前江森控股與萬向是合格的競標人。萬向競標的內容包括A123的非汽車業務,但剔除了其軍工業務。

3個月前,A123曾與萬向簽訂高達4.65億的戰略投資協定。A123在兩個月後突然宣佈,因無法完成與萬向的協議而宣佈破產,並立即與美國企業——江森自控簽訂收購其汽車業務的1.25億美元協定,使得外界猜測萬向出局。但此後不到一個月,萬向重新進入“戰局”,11月7日發出收購整體資產的保密提議。

從目前各路檔對照來看,萬向對於收購A123成竹在胸,可能早在8月份簽署第一份協議的時候,萬向已經對現在的局面有了預估,一切都在掌控之中。

A123拒絕在此時進行置評。不過其市場行銷和傳訊副總裁安迪·朱(Andy Chu)在公司博客上,連發數文澄清競標協調過程和債務人融資細節等,試圖撇清與萬向的關係。

萬向與江森自控所扮演的不同角色,使這場競標頗值得玩味。

根據相關檔,江森自控目前以“底標”身份參與競標,以1.25億美元收購A123的汽車業務。特拉華州破產法庭法官凱文·凱瑞(Kevin Carey)認定,由於享受“假馬競拍”保護(stalking horse protection),一旦江森自控沒有贏得標的,將得到大約550萬美元“分手費”和相關補償。

假馬競拍是指競標者提前競購資產,鎖定最低價格,其餘競標者則需要在此基礎之上出價。

儘管日本NEC和德國西門子表示了興趣,但目前真正走完程式的合格競標人,只有萬向與江森自控兩家。

不過,江森自控的底標是不完整的。由於目前江森自控競標的標的僅僅是A123的汽車業務,而萬向試圖收購的是其大部分業務,萬向的贏面更大。

倪頻表示:“到時候就需要看這些資產是否值這麼多錢了。如果資產價值存在的話,那麼對於我們來說,還有一些政府審批的工作要做完。”

他強調,新能源也是萬向的主要策略之一,今年萬向已經在美國投了5個新能源項目,A123這個專案從戰略上與萬向的發展計畫相符合。

此前維約曾向記者透露,大約在今年4月份,萬向主動找到了他們,開啟了談判。

不過倪頻強調:“萬向本身的投資策略比較保守,如果有其他企業進來,出了我們認為過高的價格,那麼我們可能也就不做了。”

12月11日,法庭將對競拍結果進行聽證。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

雷諾因制動器隱患在歐洲召回約8000輛Twizy電動車

雷諾日前宣佈在歐洲市場召回大約8,000輛Twizy,原因是上述車輛制動器存在問題。

雷諾表示,部分Twizy電動車的制動液存在緩慢洩露的情況,原因可能是部分該車型在工廠進行組裝時,制動液的密封部件受到損壞。

雷諾日前就此問題向歐洲地區大約8,000名Twizy電動車的車主進行了通報,並建議車主將車輛送回經銷商處進行維修。

今年3月份雷諾向法國市場推出了Twizy電動車,並隨後將該車型投放至歐洲其它國家,該車型的概念車曾在2009年法蘭克福車展中首次亮相。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

廣東省電動汽車產業標準體系建設項目正式啟動

近日,廣東省產業標準體系及公共技術創新服務平臺建設專案在深圳啟動,加快對《廣東省電動汽車產業標準體系規劃與路線圖(2011-2015)》提出的72項缺失標準的研製,以促進廣東省電動汽車業快速發展。

此次啟動的項目將充分整合廣東全省電動汽車產業在人才、技術、設備和科研等方面的優勢,破解目前面臨的難題。同時,廣東省將建立電動汽車標準與專利資訊服務平臺,提供國內外電動汽車標準體系資料庫查詢、標準資訊服務等。到2015年,廣東全省將初步建立適應電動汽車發展要求的配套設施網路,形成電動汽車地方性標準規範,實現電動汽車在城市公交系統的規模應用,讓電動轎車走入普通家庭。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準

日產汽車2015年將生產首款中國品牌電動汽車

日產汽車高管日前表示,公司到2015年將通過其中國品牌開始生產首款Venucia e30。

公司2013年還將在中國15座城市與當地政府聯合啟動試驗項目,以推廣Venucia e30。日產目前正在武漢和廣州推廣自己品牌的電動汽車Leaf。

日產在中國有多家生產廠房,並計畫2014年在大連再新增1處,但受日本“國有化”釣魚島鬧劇影響,日產在中國的銷售大幅衰退。其10月在華銷售新車6.43萬輛,同比下滑40.7%,降幅較9月的35%進一步擴大。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

廣汽首款混合動力車型傳祺亮相廣州車展

在此次廣州車展上,廣汽發佈了該品牌首款型傳祺混動版。

新車的外觀與普通版車型基本保持一致,只是車頭和車尾的LOGO採用了藍色底色以表明這款車與普通版車型的不同,另外前進氣格柵加入了更多鍍鉻裝飾條。

該車的混合動力技術為廣汽自主研發,新車已經進入國家的公務車採購目錄,預計公車採購將成為它的主要銷售份額。動力方面,混動版傳祺在驅動方式上將有兩驅和四驅可選,對應的百公里綜合油耗分別為7.5L/km和6.6L/km。汽油機方面,它搭載的1.8L發動機最大功率可達106kW(144PS),電動機方面的資訊還尚不明確。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心