重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
使用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數組,倆個數組的地址相同,即倆個數組都指向同一塊內存,一個數組改變,另一個自然也會改變。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創新互聯行業資訊頻道,感謝您對創新互聯的支持。