1. 程式人生 > >【java performance】使用'System.arraycopy ()'代替通過來迴圈複製陣列

【java performance】使用'System.arraycopy ()'代替通過來迴圈複製陣列

'System.arraycopy ()' 要比通過迴圈來複制陣列快的多。

例子:

public class IRB

{

   void method () {

       int[] array1 = new int [100];

       for (int i = 0; i < array1.length; i++) {

           array1 [i] = i;

       }

       int[] array2 = new int [100];

       for (int i = 0; i < array2.length; i++) {

           array2 [i] = array1 [i];                 // Violation

       }

    }

}

更正:

public class IRB

{

   void method () {

       int[] array1 = new int [100];

       for (int i = 0; i < array1.length; i++) {

           array1 [i] = i;

       }

       int[] array2 = new int [100];

       System.arraycopy(array1, 0, array2, 0, 100);

    }

}

參考資料:

http://www.cs.cmu.edu/~jch/java/speed.html

相關推薦

java performance使用'System.arraycopy ()'代替通過迴圈複製陣列

'System.arraycopy ()' 要比通過迴圈來複制陣列快的多。 例子: public class IRB {    void method () {        int[] array1 = new int [100];        for (int i

Java筆記IO流中四種檔案複製方式效率比較

位元組流檔案複製方式: (1)位元組流讀寫單個位元組 (2)位元組流讀寫位元組陣列 (3)位元組緩衝流讀寫單個位元組 (4)位元組緩衝流讀寫位元組陣列 import java.io.BufferedInputStream; import java.io.BufferedOutpu

Java筆記通過反射配置檔案執行類中的方法

要求:在一個Test類中呼叫不同類中的方法,不改動Test原始碼,如何做到? 實現方法:將要執行的類名和方法名,以鍵值對的形式卸儲存在文字中,執行哪個類就讀取配置檔案即可。 實現步驟:1.準備配置檔案,鍵值對           &nbs

Java 資料庫java工程通過JDBC連線到資料庫

(在原博文上有改動) 下面請一字一句地看,一遍就設定成功,比你設定幾十遍失敗,費時會少得多。 首先,在連線資料庫之前必須保證SQL Server 2012是採用SQL Server身份驗證方式而不是windows身份驗證方式。如果在安裝時選用了後者,則重新設定如下:

Java必修課通過Value獲取Map中的鍵值Key的四種方法

1 簡介 我們都知道Map是存放鍵值對<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速獲取Value值。然而,有的時候我們需要反過來獲取,知道Value值,求Key值。 本文將用例項介紹四種方法,通過傳入Value值,獲取得到Key值。 2 四種方法 2.1 迴

Java基礎RTTI與反射之Java

start auth try dword star sse from tac sed 1 ; Example assembly language program -- 2 ; Author: Karllen 3 ; Date: revised 05/2014

轉載:Java基礎InputStream 、 InputStreamReader和BufferedReader

gen 結果 取字符 sys try eight string font buffer 來源:http://blog.csdn.net/zgljl2012/article/details/47267609 在Java中,上述三個類經常用於處理數據流,下面介紹一下三個類的

Java集合試讀LinkedList源碼

是否 包含成員 sta pub tex .com 生成 否則 class LinkedList的本質是雙向鏈表。(01) LinkedList繼承於AbstractSequentialList,並且實現了Dequeue接口。 (02) LinkedList包含兩個重要

java反射Class類型的相關操作演練

div gif display 演練 esp arguments 接口 hid col 【一】獲取範型接口的實現類的範型類型 (1)範型接口 package org.springframework.context; import java.util.EventList

Java/AndroidToast使用方法大全

runnable public 顯示 ssa setview nbsp efault 使用方法 let Toast 是一個 View 視圖,快速的為用戶顯示少量的信息。 Toast 在應用程序上浮動顯示信息給用戶,它永遠不會獲得焦點,不影響用戶的輸入等操作,主要用於 一些幫

java測試Junit、Mock+代碼覆蓋率

tput 活性 插件 報告 tsa println doc 彈出 exe 原文見此處 單元測試是編寫測試代碼,用來檢測特定的、明確的、細顆粒的功能。單元測試並不一定保證程序功能是正確的,更不保證整體業務是準備的。 單元測試不僅僅用來保證當前代碼的正確性,更重要的是用來保證代

總結各種排序算法Java實現

main style 發現 第一個 tin 查找 ins lai 歸並排序 一、插入類排序 1.直接插入排序 思想:將第i個插入到前i-1個中的適當位置 時間復雜度:T(n) = O(n2)。 空間復雜度:S(n) = O(1)。 穩定性:穩定排序。 如果碰見一個和插入元

Java系列基礎版多線程基礎

java多線程基礎1.1 認識進程和線程1.1.1 什麽是進程 1.1.1.1 進程是正在進項的程序,是資源分配的一個基本單位,有內存分配;1.1.2 什麽是線程 1.1.2.1 線程是進程的一個執行單位,也是進程的執行順序; 1.1.2.2 一個進程至少有一個線程,可以由兩個或以上的線程

Java基礎Java常見的異常

java exception Java常見的異常1. java.lang.NullPointerException (空指針異常)調用了未經初始化的對象或者是不存在的對象2. java.lang.ClassNotFoundException 指定的類不存在3. java.lang.NumberForm

Java基礎Java基本數據類型與位運算

右移 數據 bits 類型 span 網上 height 使用 常數 1.賦值運算符 賦值使用操作符“=”。它的意思是“取右邊的值(即右值),把它復制給左邊(即左值)”。右值可以是任何 常數、變量或者表達式 (只要它能 生成

Java基礎Java運算符優先級

() logs 分享 body rowspan 單元 ima idt string 序列號 符號 名稱 結合性(與操作數) 目數 說明 1 . 點 從左到右

java提高---HashMap解析(一)

最終 fin 大牛 原理 pan 初始 com oid math HashMap解析(一) 平時一直再用hashmap並沒有稍微深入的去了解它,自己花點時間想往裏面在深入一點,發現它比arraylist難理解很多,好多東西目前還不太能理解等以後自己知識更加豐

java學習spring mvc 公共dao的實現,定義基本的增刪改查

pri 代碼 部分 lec sse encoding del epo repos 接口類:    package com.blog.db.dao; import com.blog.util.Pagination; import java.util.Lis

搜狐實習現場面試JAVA工程師2018.03.14

難受 來看 結束 但是 不想 不同 aik 面試 電梯 13:30-16:30 從學校出發到返回學校,一共3小時 今年實習第一面,面完估計要涼 先簡單說一下經歷: 中午賴在床上不想起來,發現自己還是在逃避,逃避面試、逃避現實,磨嘰著磨嘰著最後遲到了,HR給我打了2個電話,

JAVA學習02.Tomcat配置

參考 pro 放置 目的 classpath JD 路徑 spa tomcat配置 【步驟】 【說明】 1、為什麽配置PATH?   為了方便調用程序,例如你把一個目錄的路徑加到系統默認環境變量PATH裏,那麽你可以直接在運行裏輸入該目錄下的程序名,就可以直接運