好久没有编程了,今天突然想写点程序,谁知道这个数组的赋值问题给难住了,忘了以前老师说过的,测试程序调用处理类时候,在主程序运行的空间之外又开辟了一块空间,等处理类处理完了后,在返回到主程序的运行空间。

问题是这样滴:我在测试程序中定义了一个int型的数组并给数组每个元素赋了值,然后调用处理类把数组给倒置过来,这个问题是相当简单的。在处理类中第一种方法是:直接写个类成员函数,调用方便,传进去要处理的数组,弄个temp缓冲空间,把数组的头尾开始交换,程序运行很正常

static void reversel(int[] a){

int n=a.length;

int m=n/2;

int temp;

for(int

i=0;i

temp=a[i];

a[i]=a[n-1-i];

a[n-1-i]=temp;

}

}

第二种方法用了一个新的int型数组b,把要处理的数组从尾到头地依次赋值给b数组,再把数组不中的值倒到a数组中,这种方法的空间就要比上一个大多了。但是当把b数组再给a数组赋值时,出现了问题:用1语句还是用2语句,实践出来了,还是用2语句。如果用1语句,当在测试程序中依次打印倒置后的a数组的值时,还是和没有处理过的一样,这是为什么呢~~想了好久……

public void reversel1(){

int n=a.length;

int[] b=new int[n];

for(int

i=0;i

b[i]=a[n-1-i];

} a=b; 1 for(int

i=0;i

a[i]=b[i];

} 2 }

测试主程序开辟空间运行时候,调用了处理类,此时主程序要给处理类开辟新空间,等处理类运行完后又回到主程序刚才调用处理类的缺口,接着运行主程序。在调用处理类时,用1语句时候只是把引用给赋了值,a和b同时指向处理过的这段空间,但是,还没有把处理的结果给真正地返回给主程序中的a数组。所以,当处理程序执行完后,这段空间就给清掉了,所以a数组等于没有什么影响,给没有处理是一样的。

但用2语句就不同了,它直接把b数组的处理结果一个一个给主程序的a数组赋值,影响到了主程序。所以得到了想要的倒置结果。

经过这么一折腾,在写程序时候注意了,数组的赋值、程序运行时候主程序和子程序的空间分配问题。呵呵,加油

java 数组批量赋值_JAVA中数组赋值问题相关推荐

  1. java 数组 初始化 个数_Java中数组的初始化

    一.什么是初始化 在Java程序开发中,使用数组之前都会对其进行初始化,这是因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用 ...

  2. java 数组 length 减少_java中数组有没有length()方法?string没有lenght()方法?

    java中数组有没有length()方法,求数组的长度可以使用数组的length属性. int length=arr.length;//求数组的长度 ------------------------- ...

  3. 对象数组的初始化_JAVA中数组是什么?

    Java中数组是相同类型数据的有序集合.数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们.数组的三个基本特点: ...

  4. java数组的调用_java中数组的应用及方法

    1.数组反转 import java.util.Arrays; public class ArrayReverse { public static void main(String[] args){ ...

  5. java求数组的平均值_Java中数组求平均值,最大值,最小值。

    //从控制台任意输入六个数字,然后输出六个数字的平均值,最大值以及最小值. import java.util.Scanner; public class Text2 { public static v ...

  6. java数组编译后_Java中数组和集合的foreach操作编译后究竟是啥

    [本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 今天和同事在关于 ...

  7. java中给变量赋值_java中变量赋值的理解

    1.当赋值的值超出声明变量的范围时候,会报错! byte a =200 //会报错,因超出范围. byte a =(byte)200;//进行一个强制转换,就不会报错,不过会超出范围,超出部分会从头开 ...

  8. java mongodb批量更新_java中mongoTemplate批量更新

    方法:mongoTemplate.getDb().getCollection(tableName).bulkWrite(requests); public BulkWriteResult bulkWr ...

  9. jfinal ajax传值,JFINAL+Ajax传参 array 数组方法 获取request中数组操作

    前台代码js var _list =[]; for (var i = 0; i < array.length; i++) { _list[i] = array[i]; } $.ajax({ ty ...

最新文章

  1. 动态设置 GridView Web 服务器控件列宽
  2. 石川es6课程---3、变量let和常量const
  3. synamic-datasource-spring-boot-starter实现动态数据源Mysql和Sqlserver
  4. ie bug(如果不足,留言大家一起分享)
  5. Python项目之我的第一个爬虫----爬取豆瓣图书网,统计图书数量
  6. leetcode 978. Longest Turbulent Subarray | 978. 最长湍流子数组(Java)
  7. 信道容量受哪三个要素_影响信道容量的主要因素有哪些
  8. 创造型模式——建造者模式
  9. 同时支持mp4/ogg/webm/flv格式的视频播放
  10. 挖掘频繁项集之FP-Growth算法
  11. 信号数据EMD分解+IMF时序数据LSTM预测建模实践
  12. win10提升性能的服务器,win10专业版设置优化提高系统性能图解
  13. 图像处理(一)bicubic解释推导
  14. Java中implement和extend
  15. java caller_java中callee获取caller
  16. php活动倒计时代码,JavaScript实现活动倒计时效果的代码分享
  17. stm32f103r6最小系统原理图_PCB stm32的最小系统原理图 基于STM32F103VBT6的最小系统板 - 下载 - 搜珍网...
  18. java 字节流 字符流 的详细介绍
  19. win10系统分区方案教程
  20. 提升代码覆盖率的经验

热门文章

  1. wpscan获取免费的API及用法
  2. GD32F303使用笔记——SPI0(一)
  3. 编写程序:有92号和95号汽油可以选择,选择你需要的汽油,并输入需要加油的升数,点击按钮“`计算总价钱`“在div中可以得到你所需要支付的价格
  4. 职场小人 就在你背后
  5. 分布式事务框架-TCC
  6. 2021-08-06 leetcode每日一题 BFS+状态压缩,无向图的
  7. 人机交互的控制及失误
  8. 51单片机DS18B20温度传感器使用及数码管温度计、LCD1602温度显示代码详解
  9. 点云数据格式PCD(Point Cloud Data) 数据格式解析
  10. 滴滴回应抽成超过30%的订单占2.7%,网友:抽成规则呢?