使用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数组,俩个数组的地址相同,即俩个数组都指向同一块内存,一个数组改变,另一个自然也会改变。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。