java Arrays.copyOf實現淺複製
為了不對原有的資料進行變動,我們通常會選用複製的方法,來建一個與之前資料一樣的模型。Arrays.copyOf是用來對陣列實現複製的,在複製的型別上屬於淺複製。這裡有人對複製的知識點有所遺忘,下面我們先簡單複習淺複製的概念,然後就Arrays.copyOf()複製和例項方法帶來講解。
1.淺複製說明
把原型物件中成員變數為值型別的屬性都複製給克隆物件,把原型物件中成員變數為引用型別的引用地址也複製給克隆物件,也就是原型物件中如果有成員變數為引用物件,則此引用物件的地址是共享給原型物件和克隆物件的。簡單來說就是淺複製只會複製原型物件,但不會複製它所引用的物件。
2.Arrays.copyOf()複製
是建立一個新的陣列(也就是分配了一個新的記憶體空間),然後呼叫System.arraycopy()複製內容,賦值給新陣列,然後返回新陣列。
3.例項
public static byte[] copyOfRange(byte[] original, int from, int to) { int newLength = to - from; if (newLength < 0) throw new IllegalArgumentException(from + " > " + to); byte[] copy = new byte[newLength]; System.arraycopy(original, from, copy, 0,Math.min(original.length - from, newLength)); return copy; }
實際上它呼叫的就是System.arraycopy,所以肯定也是淺複製。
以上就是java Arrays.copyOf實現淺複製的方法,在講解用法的同時,我們會發現它只複製了原型物件,所以是屬於淺複製的型別。更多Java學習指路:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4822/viewspace-2830935/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java引用複製、淺複製、深複製Java
- 淺複製與深複製
- Java 中的深複製和淺複製你瞭解嗎?Java
- JS物件複製:深複製和淺複製JS物件
- 【JavaScript】聊一聊js中的淺複製與深複製與手寫實現JavaScriptJS
- js 實現深複製/深複製JS
- python 淺複製、深複製坑Python
- python 深複製和淺複製Python
- JavaScript 淺複製和深複製JavaScript
- 淺複製和深複製的概念與值複製和指標複製(引用複製)有關 淺複製 “指標複製 深複製 值複製指標
- go的深複製跟淺複製Go
- go slice深複製和淺複製Go
- 淺談JS中物件的淺複製和深複製JS物件
- 淺複製、深複製與序列化【初級Java必需理解的概念】Java
- 整明白 Golang slice 宣告方式、淺複製現象、深複製、append操作GolangAPP
- js 淺拷貝(淺複製、淺克隆)、深拷貝(深複製、深克隆)JS
- JavaScript中的淺複製與深複製JavaScript
- JS實現複製大法JS
- 前端實現複製功能前端
- 探索Redis設計與實現12:淺析Redis主從複製Redis
- python深複製和淺複製的區別Python
- 淺顯直白的Python深複製與淺複製區別說明Python
- 對於複製普通物件 深複製和淺複製是否一樣物件
- Day 7.5 資料型別總結 + 複製 淺複製 深複製資料型別
- 【Java】Arrays.copyOf & System.arraycopyJava
- python 的深淺複製Python
- 25. 深淺複製
- mysql實現主從複製MySql
- js實現複製連結JS
- vue實現物件的複製Vue物件
- redis 主從複製實現Redis
- C#中的物件深複製和淺複製C#物件
- 詳談Javascript中的深複製和淺複製JavaScript
- Java淺複製大揭秘:如何輕鬆複製兩個不同物件的某些相同屬性Java物件
- 尾遞迴實現深複製遞迴
- vue 中實現複製貼上Vue
- mysql過濾複製的實現MySql
- JS 物件如何實現深複製JS物件