八張圖徹底了解JDK8 GC調優秘籍-附PDF下載

目錄

  • 簡介
  • 分代垃圾回收器的內存結構
  • JDK8中可用的GC
  • 打印GC信息
  • 內存調整參數
  • Thread配置
  • 通用GC參數
  • CMS GC
  • G1參數
  • 總結

簡介

JVM的參數有很多很多,根據我的統計JDK8中JVM的參數總共有1853個,正式的參數也有680個。

這麼多參數帶給我們的是對JVM的細粒度的控制,但是並不是所有的參數都需要我們自己去調節的,我們需要關注的是一些最常用的,對性能影響比較大的GC參數即可。

為了更好的讓大家理解JDK8中 GC的調優的秘籍,這裏特意準備了八張圖。在本文的最後,還附帶了一個總結的PDF all in one文檔,大家把PDF下載回去,遇到問題就看兩眼,不美嗎?

分代垃圾回收器的內存結構

為了更好的提升GC的效率,現代的JVM都是採用的分代垃圾回收的策略(ZGC不是)。

java運行時內存可以分為JVM內存和非JVM內存。

JVM內存又可以分為堆內存和非堆內存。

堆內存大家都很熟悉了,YoungGen中的Eden,Survivor和OldGen。

非堆內存中存儲的有thread Stack,Code Cache, NIO Direct Buffers,Metaspace等。

注意這裏的Metaspace元空間是方法區在JDK8的實現,它是在本地內存中分配的。

JDK8中可用的GC

JDK8中到底有哪些可以使用的GC呢?

這裏我們以HotSpot JVM為例,總共可以使用4大GC方式:

其中對於ParallelGC和CMS GC又可以對年輕代和老年代分別設置GC方式。

大家看到上圖可能有一個疑問,Parallel scavenge和Parallel有什麼區別呢?

其實這兩個GC的算法是類似的,Parallel Scavenge收集器也經常稱為“吞吐量優先”收集器,Parallel Scavenge收集器提供了兩個參數用於精確控制吞吐量; -XX:MaxGCPauseMillis:控制最大垃圾收集停頓時間; -XX:GCTimeRatio:設置吞吐量大小。

同時Parallel Scavenge收集器能夠配合自適應調節策略,把內存管理的調優任務交給虛擬機去完成。

JDK8中默認開啟的是ParallelGC。

打印GC信息

如果想研究和理解GC的內部信息,GC信息打印是少不了的:

上圖提供了一些非常有用的GC日誌的控制參數。

內存調整參數

JVM分為Heap區和非Heap區,各個區又有更細的劃分,下面就是調整各個區域大小的參數:

Thread配置

TLAB大家還記得嗎?TLAB的全稱是Thread-Local Allocation Buffers。TLAB是在Eden區間分配的一個一個的連續空間。然後將這些連續的空間分配個各個線程使用。

因為每一個線程都有自己的獨立空間,所以這裏不涉及到同步的概念。

上圖就是TLAB的參數。

通用GC參數

雖然JDK8的GC這麼多,但是他們有一些通用的GC參數:

這裏講解一下Young space tenuring,怎麼翻譯我不是很清楚,這個主要就是指Young space中的對象經過多少次GC之後會被提升到Old space中。

CMS GC

CMS全稱是Concurrent mark sweep。是一個非常非常複雜的GC。

複雜到什麼程度呢?光光是CMS調優的參數都有一百多個!

下圖是常用的CMS的參數。

CMS這裏就不多講了,因為在JDK9之後,CMS就已經被廢棄了。

主要原因是CMS太過複雜,如果要向下兼容需要巨大的工作量,然後就直接被廢棄了。

在JDK9之後,默認的GC是G1。

G1參數

G1收集器是分代的和region化的,也就是整個堆內存被分為一系列大小相等的region。在啟動時,JVM設置region的大小,根據堆大小的不同,region的大小可以在1MB到32MB之間變動,region的數量最多不超過2048個。Eden區、Survivor區、老年代是這些region的邏輯集合,它們並不是連續的。

G1中的垃圾收集過程:年輕代收集和混合收集交替進行,背後有全局的併發標記周期在進行。當老年代分區佔用的空間達到或超過初始閾值,就會觸發併發標記周期。

下圖是G1的調優參數:

總結

上面總共8副圖,我把他們做成了一個PDF,預覽界面大概是這樣子的:

大家可以通過下面的鏈接直接下載PDF版本:

JDK8GC-cheatsheet.pdf

如果遇到問題可以直接拿過來參考。這種東西英文名字應該叫JDK8 GC cheatsheet,翻譯成中文應該就是JDK8 GC調優秘籍!

本文作者:flydean程序那些事

本文鏈接:http://www.flydean.com/jdk8-gc-cheatsheet/

本文來源:flydean的博客

歡迎關注我的公眾號:程序那些事,更多精彩等着您!

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

【其他文章推薦】

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

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

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

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

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

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

德國傳統電廠熱浪中掙扎 整體供電仍穩定

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

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

【其他文章推薦】

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

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

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

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

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

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

ODBC 常見數據源配置整理

目錄

  • 1. 簡介
    • 1.1 ODBC和JDBC
    • 1.2 ODBC配置工具
    • 1.3 ODBC 數據源連接配置
  • 2. MySQL 數據源配置
    • 2.1 配置步驟
    • 2.2 鏈接參數配置
  • 3. SQLServer 數據源配置
    • 3.1 配置步驟
    • 3.2 鏈接參數配置
  • 4. ACCESS 數據源配置
    • 4.1 配置步驟
    • 4.2 鏈接參數配置

1. 簡介

我們用golang做odbc驅動開發的任務並不多,隔段時間可能會來一個。每次開發會忘記如何配置數據源和對應的數據源鏈接參數配置。這裏做一個整理。

1.1 ODBC和JDBC

ODBC(Open Database Connectivity)是一組對數據庫訪問的標準API,其最大的優點是以統一的方式處理所有的數據庫。

JDBC(Java Database Connectivity)是Java與數據庫的接口規範,允許Java程序發送SQL指令並處理結果。比較常見JdbcTemplate

1.2 ODBC配置工具

打開控制面板找到管理工具,當前目錄有兩個ODBC的配置工具。分別是:ODBC Data Sources (32-bit)、ODBC 數據源(64 位)。顧名思義一個是32位,一個是64位。在配置ACCESS數據源時需要選擇32位。

我們也可以直接在系統目錄下找到對應的可執行文件。

1)32位:%windir%\syswow64\odbcad32.exe

2)64位:%windir%\system32\odbcad32.exe

題外話:syswow64 目錄存放的是32位的程序,system32目錄存放的是64位的程序,在註冊dll的時候需要注意下。ITDragon 在接觸驅動開發之前一直都弄反了。這篇文章做了通俗易懂地解釋https://www.cnblogs.com/hbccdf/p/dllchecktoolandsyswow64.html

1.3 ODBC 數據源連接配置

網上收集整理,不保證正確性,僅供參考。

數據庫 連接參數
MySQL driver={mysql};database=數據庫;uid=賬號;pwd=密碼;
MSSQL Server driver={sql server};server=服務器;database=數據庫;uid=ITDragon;pwd=密碼;
Access driver={microsoft access driver (*.mdb)};dbq=mdb文件全路徑;uid=ITDragon;pwd=密碼;
SQLite driver={SQLite3 ODBC Driver};database=db文件全路徑
PostgreSQL driver={PostgreSQL ANSI};server=服務器;uid=賬號;pwd=密碼;database=數據庫;
DBase driver={microsoft dbase driver (*.dbf)};driverid=277;dbq=dbf文件全路徑;
Oracle driver={microsoft odbc for oracle};server=服務器;uid=ITDragon;pwd=密碼;
MS text driver={microsoft text driver (* .txt; *.csv)};dbq=文件全路徑;extensions=asc,csv,tab,txt;PersistSecurityInfo=false;
Visual Foxpro driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;

2. MySQL 數據源配置

2.1 配置步驟

第一步:雙擊ODBC 數據源(64 位),可以選擇用戶DSN(系統只對當前用戶生效),也可以選擇系統DSN(能登錄當前系統的用戶都生效)

第二步:點擊添加,選擇事先安裝好的MySQL ODBC xx Driver 驅動後點擊完成。注意不同版本之間對某些sql語法的支持略有不同(之前吃過這個虧,我的環境有問題,客戶環境沒問題)。

第三步:完善基本鏈接信息後點擊Test,提示鏈接成功後點擊OK完成配置。

2.2 鏈接參數配置

因為ODBC驅動配置已經將數據庫的連接地址、賬號、密碼、數據庫都已經配置完成,連接參數只需要指定驅動名稱即可:DSN=ITDragon_MySQL

Golang偽代碼:

import (
	"database/sql"
	_ "github.com/alexbrainman/odbc"
)

db, err := sql.Open("odbc", "DSN=ITDragon_MySQL")
if err != nil {
    panic(err)
}
defer db.Close()

3. SQLServer 數據源配置

3.1 配置步驟

第一步:雙擊ODBC 數據源(64 位),可以選擇用戶DSN(系統只對當前用戶生效),也可以選擇系統DSN(能登錄當前系統的用戶都生效)

第二步:點擊添加,選擇SQL Server。這一項我ITDragon 並沒有手動安裝,應該是安裝SQL Server數據庫的時候自動安裝上去的。

第三步:鍵盤輸入需要連接的SQLServer服務器,如果是本機,就輸入計算機名。如果是遠程主機就需要輸入IP,Port 。不要點擊下拉框,會卡死。

第四步:選擇SQL Server驗證方式

第五步:選擇默認數據庫,也可以在寫sql語句時將表名的全路徑寫全(我ITDragon 習慣用寫全)

第六步:可以考慮修改SQL Server的系統消息語言,數據的加密,執行字符數據翻譯,修改日誌保存路徑等。也可以默認。

第七步:點擊完成,彈出“按照以下配置創建新的ODBC數據源”,點擊測試數據源,提示測試成功。點擊確定完成創建。

3.2 鏈接參數配置

Golang偽代碼:

import (
	"database/sql"
	_ "github.com/alexbrainman/odbc"
)

db, err := sql.Open("odbc", "driver={sql server};server=DESKTOP-HKC2IA3;DSN=ODBCName;uid=xxx;pwd=xxx;")
if err != nil {
    panic(err)
}
defer db.Close()

4. ACCESS 數據源配置

4.1 配置步驟

第一步:雙擊ODBC Data Sources (32-bit),而不是64位。可以選擇用戶DSN(系統只對當前用戶生效),也可以選擇系統DSN(能登錄當前系統的用戶都生效)

第二步:選擇Microsoft Access Driver (*.mdb)。點擊數據庫下發的選擇按照,選擇mdb文件,點擊確定完成配置。

4.2 鏈接參數配置

我們其實可以不用配置Access的數據源,直接用DBQ指定mdb的文件路徑,再用pwd輸入密碼訪問。

Golang偽代碼:

import (
	"database/sql"
	_ "github.com/alexbrainman/odbc"
)

db, err := sql.Open("odbc", "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=全路徑.MDB;pwd=xx;")
if err != nil {
    panic(err)
}
defer db.Close()

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

【其他文章推薦】

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

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

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

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

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

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

用一個圖書庫實例搞懂二分搜索樹的底層原理

目錄

  • 一、背景
  • 二、概念
    • 1、定義
    • 2、 動畫示例
  • 三、圖書庫實例
    • 3.1、項目需求
    • 3.2、代碼結構
    • 3.3、圖書類
    • 3.4、二分搜索樹的底層實現
    • 3.5、圖書庫的構建
  • 四、深入理解

一、背景

二叉樹是一種常用的數據結構,更是實現眾多算法的一把利器。本文將通過建立一個圖書庫的實例對二叉樹中的常用類型:二分搜索樹(Binary Search Tree)進行底層原理的深入理解。

二、概念

1、定義

1 二分搜索樹是一顆二叉樹
2 二分搜索樹每個節點的左子樹的值都小於該節點的值,每個節點右子樹的值都大於該節點的值
3 任意一個節點的每棵子樹都滿足二分搜索樹的定義

2、 動畫示例

三、圖書庫實例

3.1、項目需求
  • 創建一個圖書類:圖書類中需包含ISBN號,書名,作者,定價,出版社、出版日期等
  • 用二分搜索樹的數據結構創建一個圖書庫,每種圖書需有當前數量
  • 圖書庫需實現添加圖書,遍歷整個圖書庫,及可根據ISBN號進行快速查找
3.2、代碼結構

3.3、圖書類
  • 在圖書類的定義中,重寫compareTo方法:通過比較ISBN(國際標準書號)的大小表示圖書在二叉樹的結點順序。
/**
 - 用二分搜索樹實現圖書庫--圖書類
 -  - @author zhuhuix
 - @date 2020-06-23
 */
public class Books implements Serializable, Comparable {
    // ISBN
    private Long bookId;
    // 作者
    private String author;
    // 分類
    private String category;
    // 書名
    private String bookName;
    // 定價
    private BigDecimal bookPrice;
    // 出版社
    private String bookPublisher;
    // 出版時間
    private LocalDate bookDate;
    // 當前數量
    private Integer bookCount;

    public Books(Long bookId, String bookName, String category, String author, BigDecimal bookPrice, String bookPublisher, LocalDate bookDate, Integer bookCount) {
        this.bookId = bookId;
        this.author = author;
        this.category = category;
        this.bookName = bookName;
        this.bookPrice = bookPrice;
        this.bookPublisher = bookPublisher;
        this.bookDate = bookDate;
        this.bookCount = bookCount;
    }

    public Books(Long bookId){
        this.bookId= bookId;
    }

    // 通過ISBN號進行比較大小
    @Override
    public int compareTo(Object o) {
        if (o instanceof Books) {
            return this.getBookId().compareTo(((Books) o).getBookId());
        } else {
            return -1;
        }
    }

    public Long getBookId() {
        return bookId;
    }


    public Integer getBookCount() {
        return bookCount;
    }

    public void setBookCount(Integer bookCount) {
        this.bookCount += bookCount;
    }

    @Override
    public String toString() {
        return "{" +
                "ISBN=" + bookId +
                ", 書名='" + bookName + '\'' +
                ", 作者='" + author + '\'' +
                ", 分類='" + category + '\'' +
                ", 價格=" + bookPrice +
                ", 出版社='" + bookPublisher + '\'' +
                ", 出版時間=" + bookDate +
                ", 當前數量=" + bookCount +
                '}';
    }
}
3.4、二分搜索樹的底層實現
  • 底層創建內部結點類(class Node):元素,左子樹,右子樹
  • add方法:使用遞歸方法增加結點:
    如果圖書種類不存在,則創建新結點。
    如果圖書種類存在,則對數量進行累加。
  • traverse方法:使用遞歸方法對所有結點進行遍歷
  • search方法:根據ISBN碼查找結點
/**
 * 用二分搜索樹實現圖書庫--二分搜索樹
 *
 * @author zhuhuix
 * @date 2020-06-23
 */
public class BinarySearchTree {

    // 結點
    private Node root;
    // 書的種類
    private int bookSize;
    // 書的總數量
    private int bookCount;

    public BinarySearchTree() {
        this.root = null;
        this.bookSize = 0;
        this.bookCount = 0;
    }

    // 增加元素
    public void add(Books data) {
        this.root = addNode(this.root, data);
    }

    // 用遞歸方法實現結點的添加
    private Node addNode(Node node, Books data) {
        // 遞歸退出條件 書不存在拉加結點,並將結點數量加1
        if (node == null) {
            this.bookSize++;
            this.bookCount += data.getBookCount();
            return new Node(data);
        }

        if (node.data.compareTo(data) < 0) {
            node.right = addNode(node.right, data);
        } else if (node.data.compareTo(data) > 0) {
            node.left = addNode(node.left, data);
        } else if (node.data.compareTo(data) == 0) {
            // 如果結點已存在,則將書的數量累加
            this.bookCount += data.getBookCount();
            node.getData().setBookCount(data.getBookCount());
        }
        return node;
    }

    // 用遞歸方法實現結點前序遍歷
    public void traverse(Node node) {
        if (node == null) {
            return;
        }
        System.out.println(node.getData().toString());
        traverse(node.left);
        traverse(node.right);
    }

    // 用遞歸方法實現通過isbn查找圖書
    public Books search(Long isbn) {
        Node node = nodeSearch(this.root, new Books(isbn));
        if (node != null) {
            return node.getData();
        } else {
            return null;
        }
    }

    private Node nodeSearch(Node node, Books books) {
        if (node == null) {
            return null;
        }
        if (books.compareTo(node.getData()) == 0) {
            return node;
        } else if (books.compareTo(node.getData()) < 0) {
            return nodeSearch(node.left, books);
        } else {
            return nodeSearch(node.right, books);
        }
    }

    public Node getRoot() {
        return root;
    }

    // 返回書的種類數
    public int getBookSize() {
        return bookSize;
    }

    // 返回書的總數量
    public int getBookCount() {
        return bookCount;
    }

    // 私有內部類-樹結點
    private class Node {
        Books data;
        Node left, right;

        Node(Books data) {
            this.data = data;
            this.left = null;
            this.right = null;
        }

        Books getData() {
            return data;
        }
    }
}

3.5、圖書庫的構建
  1. 構建一棵二分搜索樹;
  2. 將京東十大暢銷圖書加入二分搜索樹;
  3. 統計圖書種類及數量,並遍歷輸出;
  4. 加入3種已經進入圖書庫的圖書;
  5. 再次統計圖書種類及數量,並遍歷輸出;
  6. 根據某個ISBN號查找圖書。
/**
 * 用二分搜索樹實現圖書庫
 *
 * @author zhuhuix
 * @date 2020-06-23
 */
public class BookStore {
    public static void main(String[] args) {

        // 構建一棵二分搜索樹
        BinarySearchTree bst = new BinarySearchTree();

        // 將十大暢銷圖書加入二分搜索樹
        bst.add(new Books(9787115428028L,"Python編程 從入門到實踐",
                "編程語言與程序設計","埃里克·馬瑟斯",
                BigDecimal.valueOf(61.40),"人民郵電出版社",
                LocalDate.of(2017,07,01),1));

        bst.add(new Books(9787115525963L,"說服力 工作型PPT該這樣做",
                "辦公軟件","秦陽",
                BigDecimal.valueOf(66.30),"人民郵電出版社",
                LocalDate.of(2020,05,01),1));

        bst.add(new Books(9787569222258L,"零基礎學Python(全彩版)",
                "編程語言與程序設計","明日科技",
                BigDecimal.valueOf(67.00),"吉林大學出版社",
                LocalDate.of(2018,04,01),1));

        bst.add(new Books(9787121388361L,"PS之光:一看就懂的Photoshop攻略(全彩)",
                "圖形圖像/多媒體","馮注龍",
                BigDecimal.valueOf(60.70),"电子工業出版社",
                LocalDate.of(2020,06,01),1));

        bst.add(new Books(9787302423287L,"機器學習",
                "人工智能","周志華",
                BigDecimal.valueOf(64.80),"清華大學出版社",
                LocalDate.of(2016,01,01),1));

        bst.add(new Books(9787111641247L,"深入理解Java虛擬機:JVM高級特性與最佳實踐(第3版)",
                "編程語言與程序設計","周志明",
                BigDecimal.valueOf(106.40),"机械工業出版社",
                LocalDate.of(2019,12,01),1));

        bst.add(new Books(9787115472588L,"鳥哥的Linux私房菜 基礎學習篇 第四版",
                "操作系統","鳥哥",
                BigDecimal.valueOf(93.00),"人民郵電出版社",
                LocalDate.of(2018,10,01),1));

        bst.add(new Books(9787115293800L,"算法(第4版)",
                "編程語言與程序設計","Robert Sedgewick,Kevin Wayne",
                BigDecimal.valueOf(66.30),"人民郵電出版社",
                LocalDate.of(2012,10,01),1));

        bst.add(new Books(9787115537973L,"數學之美 第三版",
                "計算機理論、基礎知識","吳軍",
                BigDecimal.valueOf(54.40),"人民郵電出版社",
                LocalDate.of(2020,05,01),1));

        bst.add(new Books(9787302255659L,"大話數據結構",
                "編程語言與程序設計","程傑",
                BigDecimal.valueOf(47.20),"清華大學出版社",
                LocalDate.of(2011,06,01),1));

        // 遍歷圖書庫
        System.out.println("圖書庫新建:");
        System.out.println("書的種類數:"+bst.getBookSize());
        System.out.println("書的總數量:"+bst.getBookCount());
        bst.traverse(bst.getRoot());

        // 再次增加相同的書
        bst.add(new Books(9787302255659L,"大話數據結構",
                "編程語言與程序設計","程傑",
                BigDecimal.valueOf(47.20),"清華大學出版社",
                LocalDate.of(2011,06,01),1));

        bst.add(new Books(9787115472588L,"鳥哥的Linux私房菜 基礎學習篇 第四版",
                "操作系統","鳥哥",
                BigDecimal.valueOf(93.00),"人民郵電出版社",
                LocalDate.of(2018,10,01),1));

        bst.add(new Books(9787115293800L,"算法(第4版)",
                "編程語言與程序設計","Robert Sedgewick,Kevin Wayne",
                BigDecimal.valueOf(66.30),"人民郵電出版社",
                LocalDate.of(2012,10,01),1));

        // 再次遍歷圖書庫
        System.out.println("圖書庫同種圖書加入:");
        System.out.println("書的種類數:"+bst.getBookSize());
        System.out.println("書的總數量:"+bst.getBookCount());
        bst.traverse(bst.getRoot());

        // 根據ISBN號查找圖書
        Books books =bst.search(9787115472588L);
        if (books!=null) {
            System.out.println("已找到該圖書:");
            System.out.println(books.toString());
        }
    }
}

程序輸出如下:

圖書庫新建:
書的種類數:10
書的總數量:10
{ISBN=9787115428028, 書名='Python編程 從入門到實踐', 作者='埃里克·馬瑟斯', 分類='編程語言與程序設計', 價格=61.4, 出版社='人民郵電出版社', 出版時間=2017-07-01, 當前數量=1}
{ISBN=9787111641247, 書名='深入理解Java虛擬機:JVM高級特性與最佳實踐(第3版)', 作者='周志明', 分類='編程語言與程序設計', 價格=106.4, 出版社='机械工業出版社', 出版時間=2019-12-01, 當前數量=1}
{ISBN=9787115293800, 書名='算法(第4版)', 作者='Robert Sedgewick,Kevin Wayne', 分類='編程語言與程序設計', 價格=66.3, 出版社='人民郵電出版社', 出版時間=2012-10-01, 當前數量=1}
{ISBN=9787115525963, 書名='說服力 工作型PPT該這樣做', 作者='秦陽', 分類='辦公軟件', 價格=66.3, 出版社='人民郵電出版社', 出版時間=2020-05-01, 當前數量=1}
{ISBN=9787115472588, 書名='鳥哥的Linux私房菜 基礎學習篇 第四版', 作者='鳥哥', 分類='操作系統', 價格=93.0, 出版社='人民郵電出版社', 出版時間=2018-10-01, 當前數量=1}
{ISBN=9787569222258, 書名='零基礎學Python(全彩版)', 作者='明日科技', 分類='編程語言與程序設計', 價格=67.0, 出版社='吉林大學出版社', 出版時間=2018-04-01, 當前數量=1}
{ISBN=9787121388361, 書名='PS之光:一看就懂的Photoshop攻略(全彩)', 作者='馮注龍', 分類='圖形圖像/多媒體', 價格=60.7, 出版社='电子工業出版社', 出版時間=2020-06-01, 當前數量=1}
{ISBN=9787115537973, 書名='數學之美 第三版', 作者='吳軍', 分類='計算機理論、基礎知識', 價格=54.4, 出版社='人民郵電出版社', 出版時間=2020-05-01, 當前數量=1}
{ISBN=9787302423287, 書名='機器學習', 作者='周志華', 分類='人工智能', 價格=64.8, 出版社='清華大學出版社', 出版時間=2016-01-01, 當前數量=1}
{ISBN=9787302255659, 書名='大話數據結構', 作者='程傑', 分類='編程語言與程序設計', 價格=47.2, 出版社='清華大學出版社', 出版時間=2011-06-01, 當前數量=1}
圖書庫同種圖書加入:
書的種類數:10
書的總數量:13
{ISBN=9787115428028, 書名='Python編程 從入門到實踐', 作者='埃里克·馬瑟斯', 分類='編程語言與程序設計', 價格=61.4, 出版社='人民郵電出版社', 出版時間=2017-07-01, 當前數量=1}
{ISBN=9787111641247, 書名='深入理解Java虛擬機:JVM高級特性與最佳實踐(第3版)', 作者='周志明', 分類='編程語言與程序設計', 價格=106.4, 出版社='机械工業出版社', 出版時間=2019-12-01, 當前數量=1}
{ISBN=9787115293800, 書名='算法(第4版)', 作者='Robert Sedgewick,Kevin Wayne', 分類='編程語言與程序設計', 價格=66.3, 出版社='人民郵電出版社', 出版時間=2012-10-01, 當前數量=2}
{ISBN=9787115525963, 書名='說服力 工作型PPT該這樣做', 作者='秦陽', 分類='辦公軟件', 價格=66.3, 出版社='人民郵電出版社', 出版時間=2020-05-01, 當前數量=1}
{ISBN=9787115472588, 書名='鳥哥的Linux私房菜 基礎學習篇 第四版', 作者='鳥哥', 分類='操作系統', 價格=93.0, 出版社='人民郵電出版社', 出版時間=2018-10-01, 當前數量=2}
{ISBN=9787569222258, 書名='零基礎學Python(全彩版)', 作者='明日科技', 分類='編程語言與程序設計', 價格=67.0, 出版社='吉林大學出版社', 出版時間=2018-04-01, 當前數量=1}
{ISBN=9787121388361, 書名='PS之光:一看就懂的Photoshop攻略(全彩)', 作者='馮注龍', 分類='圖形圖像/多媒體', 價格=60.7, 出版社='电子工業出版社', 出版時間=2020-06-01, 當前數量=1}
{ISBN=9787115537973, 書名='數學之美 第三版', 作者='吳軍', 分類='計算機理論、基礎知識', 價格=54.4, 出版社='人民郵電出版社', 出版時間=2020-05-01, 當前數量=1}
{ISBN=9787302423287, 書名='機器學習', 作者='周志華', 分類='人工智能', 價格=64.8, 出版社='清華大學出版社', 出版時間=2016-01-01, 當前數量=1}
{ISBN=9787302255659, 書名='大話數據結構', 作者='程傑', 分類='編程語言與程序設計', 價格=47.2, 出版社='清華大學出版社', 出版時間=2011-06-01, 當前數量=2}
已找到該圖書:
{ISBN=9787115472588, 書名='鳥哥的Linux私房菜 基礎學習篇 第四版', 作者='鳥哥', 分類='操作系統', 價格=93.0, 出版社='人民郵電出版社', 出版時間=2018-10-01, 當前數量=2}

四、深入理解

  1. 二分搜索樹的底層是一個鏈點,可以實現高效地插入,刪除以及動態維護。
  2. 二分搜索樹的結點是有序的,可以很快地求出最大,最小之類的關係值。
  3. 也正是因為二分搜索樹的結點是有序的,在極端情況下,二分搜索樹會褪化成一個鏈表

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

【其他文章推薦】

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

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

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

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

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

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

綠色和平組織指雲頂集團涉燒芭 解決林火非僅印尼責任

轉載自達邦樹;文:烏舜安咿

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

【其他文章推薦】

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

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

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

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

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

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

2014中國國際汽車新能源及技術應用展覽會-節能與新能源汽車產業發展規劃成果展覽會

選擇•行動——未來從現在開始

時間:2014年10月17-21日
地點:北京•國家會議中心

支援單位:
中華人民共和國工業和資訊化部 

主辦單位:
中國國際貿易促進委員會機械行業分會
中國電工技術學會
寰球時代汽車投資管理(北京)有限公司
汽車知識雜誌社

承辦單位:
中國國際貿易促進委員會機械行業分會
中國電工技術學會
汽車知識雜誌社
北京亞細亞國際展覽公司
北京寰球通達會展有限公司

合作單位:
北京盛大超越國際展覽有限公司

協辦單位:
中國品質認證中心

行業支援單位:
中國汽車工業諮詢委員會

展出面積:28,600平方米(2013年),中國規模最大的專業新能源汽車展。

觀眾數目:31,800人次(2013年)

展覽週期:每年一屆,2013年首屆

同期展會:中國國際節能汽車展覽會

參展範圍:
節能汽車、純電動車,混合動力車,燃料電池車,輕型電動車,天然氣(液化氣)車,醇類燃料車及其他代用燃料車;
先進內燃機、高效變速器、整車優化設計等節能技術和產品;
電池,燃料電池,電池管理系統,電池的回收和包裝;
電力電容器,飛輪,能源管理系統;
電機,電機保護與控制技術;
充電器及充電站設備及相關配套專案企業、機構;
電動車及其他替代能源汽車的零部件及零部件總成;
加氣設備,儲運設備及技術;
網路管理,可再生能源發電,新型元器件和材料,輕量化;
智慧社區和電網,汽車共用和通訊服務;
檢測,維修,監控,實驗,安全防護裝備;
城市推廣應用示範展示、製造設備、工具及媒體等.

上屆回顧
10月17日,2013中國國際汽車新能源及技術應用展覽會\節能與新能源汽車產業發展規劃成果展覽會(簡稱:節能與新能源汽車展)在北京•國家會議中心隆重舉行,此次車展持續4天,展出面積2.86萬平方米,觀眾達31,826人次,國內外主流車企和零部件、充電企業參展,刷新亞洲節能與新能源車展記錄,為國內外汽車愛好者帶來一輪綠色節能衝擊波,也是一次推廣普及節能與新能源汽車理念的盛會。

一汽集團、東風集團、上汽集團、長安集團、北汽集團、一汽大眾、上海通用、上海大眾、富豪、豐田中國、一汽豐田、廣汽豐田、廣汽吉奧、北京現代、長城、江淮等國內外主流車企集體參展。是國內乃至亞洲參展主流企業最多、展覽面積最大、展品最豐富的節能與新能源汽車展。

除乘用車展區之外,宇通、五洲龍、沂星客車、上海神舟、宏發、八達、科力遠、沃特瑪和國電通等商用車和零部件及充電設施企業也同台亮相。首屆節能與新能源汽車成果展同期還舉辦了一系列形式多樣、主題鮮明的配套活動。2013年10月17-18日在北京會議中心舉辦的中國節能與新能源汽車產業發展高峰論壇是目前國內規格最高、影響力最大的節能與新能源汽車論壇。

2014展會展望 為持續推進國務院發佈實施的《節能與新能源汽車產業發展規劃(2012-2020年)》目標的落實,“2014節能與新能源汽車展”將於10月17-21日在北京國家會議中心舉辦。展會得到了工業和資訊化部的大力支持。在上一屆展會成功舉辦基礎上,2014年展會規模和影響力將進一步提升。 展會將圍繞節能汽車、新能源汽車整車、電池、電機、電控和充電設施等領域,通過“整車展區”、“核心零部件展區、“示範推廣城市成果體驗區”、“駕乘體驗區”四個部分,全面展示節能汽車、新能源汽車發展的最新成果。  
排程

搭建期:2014年10月14-16日 展覽期:2014年10月17-21日 撤展期:2014年10月21日14:00-24:00

觀眾組織
專業觀眾:主辦方以自身的優勢和資源以及行業影響力,將傾力邀請和組織從事汽車行業相關研究、各示範城市節能與新能源汽車產業推廣的政府部門以及相關機構從業人員。如:汽車廠商、汽車零部件商、研發、設計工作者、採購人員、汽車專業院校的專家、研究人員、經銷商、各地政府主管汽車產業的官員、相關行業協會人員和媒體記者等專業人士蒞臨參觀。

普通觀眾:為讓更多的普通觀眾瞭解本屆展會,更好地為參展商進行宣傳,展會期間,組委會將邀請節能環保形象大使蒞臨現場,讓更多的人們參與到節能環保的隊伍當中。此外,觀眾與展臺互動、觀眾與展商之間的互動以及不間斷的抽獎環節等活動形式使展會達到最理想的效果。

展會宣傳:展會將聯合電視臺、報紙、雜誌、門戶網站、汽車行業垂直網站、電臺等主流媒體,在業界及社會上對參展企業和產品亮點進行廣泛連續的報導和宣傳;主辦方利用自己的平臺和優勢組織邀請專業人士蒞臨展會;展會宣傳將深入到使用者領域,組織有採購意向的消費者前來參觀;展會還將舉辦多項現場活動,讓更多的觀眾參與到車展活動中來。

收穫

參加我們的展會,你將收穫:

  1. 提升品牌認知度    
    打造品牌形象,提高產品知名度,培養消費者的品牌忠誠度。
  2. 覆蓋整個中國汽車市場 
    覆蓋整個中國地區的終端消費者和管道商,增加市場佔有率。
  3. 低成本、高效率的市場推廣
    獲得眾多國內外強勢媒體的密集型報導和社會的廣泛關注,為您的推廣開源節流,降低成本
  4. 推出新品的絕佳機會

    一流的展示環境和氛圍,高品質的媒體曝光,使你的新品發佈獲得最佳的效果和最及時的市場回饋。

  5. 精良的展會組織
    在工業和資訊化部的大力支持下,主辦方充分發揮在汽車展覽方面的綜合實力、在國內外汽車企業中的影響力和凝聚力,給您帶來優質、高效、個性化、國際化的展會策劃、組織、管理和服務。

 

展覽辦公室聯繫方式: 北京盛大超越國際展覽有限公司 連絡人:嶽巍

電  話: +86 10 5979 3500 
手  機:+86 1850 119 3393
傳  真: +86 10 5141 8155
E-mail:

 

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

【其他文章推薦】

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

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

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

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

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

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

談海洋污染 安倍:用技術創新解決而非敵視塑膠

摘錄自2019年10月06日中央通訊社日本報導

日本首相安倍晉三今天談到海洋塑膠垃圾時說,20世紀有幾項令人驕傲的偉大發明,塑膠就是其中之一,重點在於利用技術創新來解決,「不應該敵視塑膠及排斥使用塑膠的人」。

日本放送協會(NHK)報導,安倍今天在京都市出席一場有關科學技術的國際會議時,以英語進行演講。

談到海洋塑膠垃圾問題,安倍說,日前落幕的20國集團(G20)大阪峰會所做成的領袖宣言中,各國領袖對到2050年達成零污染的目標達成共識,但也明確記載塑膠在社會上扮演的重要角色。

他說:「我們應該為20世紀誕生的幾項偉大發明感到驕傲,塑膠就是其中之一。塑膠在未來仍有其必要,不應該敵視塑膠及排斥使用塑膠的人。」

安倍強調,有必要對垃圾進行適當管理,用技術創新來尋求解決;日本也開始思考協助開發中國家進行有關包括海洋垃圾在內的廢棄物管理,及致力於重視技術創新面向的支援。

日本共同社報導,安倍也介紹日本企業正致力研發的「生物可分解塑膠」說,創新正為解決污染問題開創一條道路。

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

【其他文章推薦】

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

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

※別再煩惱如何寫文案,掌握八大原則!

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

※超省錢租車方案

搶食電動車大餅 LG Chem 和 LSIS 垂直整合以擴大市占率

LG Chem 瞄準電動車市場,擴大與韓國電動設備供應商 LSIS 合作,搶攻中國、歐美的環保車市場。韓國時報 (Korea Times)17 日報導,LG 高層表示,電池是 LG 未來的搖錢樹,LG Chem 和 LSIS 人力合作是營運的雙贏策略,LG Chem 不需耗費巨資召募人才,LSIS 也能透過 LG Chem 的客戶管道開拓新商機。   這名高層宣稱,LG 客戶多,比 Samsung SDI 或是日本、中國業者更有競爭優勢。LG 電池客戶包括通用汽車 (General Motors)、福特 (Ford)、雷諾 (Renault )等 20 多家大型車廠。他也表示,LG 計畫垂直整合企業架構,包含電池、電動車零件等。他說,結盟才能擴大市占率。   LSIS 是多年前從 LG 集團獨立的企業,目前正與賓士 (Mercedes-Benz) 洽談電動車繼電器供應事宜。該公司也和中國車商合作,共同研發電動車零件和能源系統。  

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

【其他文章推薦】

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

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

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

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

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

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

澳大學生研發電動車 續航力超越 Tesla

    電動車廠特斯拉遇到了新對手,但這並不是寶馬也不是通用汽車,而是來自澳洲大學的一群學生。這些學生研發 eVe 電動車,單次充電後以每小時 100 公里的時速行駛了 500 公里,這也打破了塵封已久的電動車續航世界紀錄。此前,這項記錄為單次充電後,以 72 公里每小時速度跑滿 500 公里。   一直以來,續航能力是電動車推廣普及的最大難題,而 eVe 打破記錄外也表明,電動車可以在合理高速下行駛數百公里。eVe 由澳洲新南威爾士大學 Sunswift 團隊學生研發,到如今已是第五代版本。Sunswift 團隊早前曾以打造太陽能汽車名聲大噪,其推出的 IVy 太陽能動力車在 2011 年跑出了時速達 88 公里/小時,創造了該領域車輛的最快時速記錄。   eVe 電動車配有傳統電池,可以採用使用常規充電樁進行電力補充,其也可以通過覆蓋車身的太陽能電池板充電,車身重量為 317公斤(700磅),使用重量 59 公斤的松下電池,用常規家用插座可在 8 小時內充滿電,若接入工業用電插口,可在 5 小時內充滿。Sunswift 團隊表示,如果 eVe 停在太陽下 8 個小時,搭載的 800 瓦太陽能電池組可以提供 2 小時行駛里程,且太陽能面板還可在車輛行駛過程中收集能量。   Sunswift 團隊負責人Hayden Smith 表示,eVe 證明太陽能電動車是傳統石化燃料汽車可行性替代方案。該團隊希望以此激勵商業公司進入這一技術領域,並促使 eVe 成為澳洲首個合法上路的太陽能電動車。     (圖片來源:)

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

【其他文章推薦】

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

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

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

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

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

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

越南揪違規廢料貨櫃 杜絕洋垃圾夾藏入境

摘錄自2019年10月8日中央社報導

快訊新聞網站8日報導,越南資源與環境部最近完成制定各港口存放逾90天的6456個裝有廢料貨櫃的處理方案。當地機關將針對存放逾90天廢料貨櫃進行分類,並且清查貨櫃數量、貨主、運輸公司和來源國,然後要求貨主或運輸公司將不符環保標準的貨物運出越南。

報導指出,裝有廢料貨櫃主要存放在北部海防市(Hai Phong)、南部胡志明市和頭頓省(Vung Tau)港口,其中逾2300個貨櫃裝有舊物,其餘是塑膠和紙類等廢料。

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

【其他文章推薦】

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

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

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

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

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

※回頭車貨運收費標準