您好,登錄后才能下訂單哦!
使用java怎么淺拷貝和深拷貝二維數組?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1.SpringMVC,Spring Web MVC是一種基于Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架。2.Shiro,Apache Shiro是Java的一個安全框架。3.Mybatis,MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優秀持久層框架。4.Dubbo,Dubbo是一個分布式服務框架。5.Maven,Maven是個項目管理和構建自動化工具。6.RabbitMQ,RabbitMQ是用Erlang實現的一個高并發高可靠AMQP消息隊列服務器。7.Ehcache,EhCache 是一個純Java的進程內緩存框架。
1.數組的深淺拷貝
深拷貝: 新的數組拷貝了舊的數組,當新的數組值發生改變時,不會影響舊數組的值,即新數組新開辟了內存空間,兩者互不影響。
淺拷貝: 新數組拷貝了舊的數組,但是只是復制了原數組的引用地址,即兩個數組指向同一個內存地址,所以修改一個的值另一個數組的值也會隨之改變。
2.深拷貝
int[][] array = {{1,2,3},{4,5,6}}; int[][] array2 = new int[2][3]; for(int i = 0;i < array.length;i++){ for(int j = 0;j < array[i].length;j++){ array2[i][j] = array[i][j]; } }
這種拷貝是深拷貝,即把array數組的每一個元素都賦值給了array2數組,其中一個數組改變,另一個數組并不會改變。
3.淺拷貝
TestArray[][] t1 = new TestArray[2][3]; for(int i = 0;i < t1.length;i++){ for(int j = 0;j < t1[i].length;j++){ t1[i][j] = new TestArray(); } } TestArray[][] t2 = new TestArray[2][3]; for(int i = 0;i < t1.length;i++){ for(int j = 0;j < t1[i].length;j++){ t2[i][j] = t1[i][j]; } }
這種拷貝是淺拷貝,即他只是把array數組內的地址賦給了array2數組,倆個數組的地址相同,即倆個數組都指向同一塊內存,一個數組改變,另一個自然也會改變。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。