區(qū)別:System.arraycopy()必須先建立一個(gè)數(shù)組對(duì)象,而Arrays.copyOf()返回一個(gè)數(shù)組對(duì)象集歇,不用事先new一個(gè)數(shù)組。Arrays.copyOf里面調(diào)用了System.arraycopy方法
Arrays.copyOf()測(cè)試:
Arrays類中的copyOf方法:
若newLength的大小大于original數(shù)組的大小,則后面的初始化為默認(rèn)值物遇,即 0
System.arraycopy()的實(shí)現(xiàn):
這是一個(gè)native method ,這個(gè)方法是System類中的一個(gè)JNI實(shí)現(xiàn)
(JNI嫂丙,Java Native Interface 故名思意娘赴,就是java語(yǔ)言調(diào)其它語(yǔ)言的一個(gè)接口)
這個(gè)JNI的底層在不同的平臺(tái)上不一樣。
打個(gè)比方windows 其實(shí)java的JNI就是調(diào)了dll奢入。
Unix 其實(shí)就是調(diào)了.so 共享庫(kù)