「java赋值本身」java赋值变量

博主:adminadmin 2023-03-23 00:30:08 567

今天给各位分享java赋值本身的知识,其中也会对java赋值变量进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

JAVA 给数组赋值

int[] b;

int[] a ={1,2,3,4};

b=a;

答:可以这样对数组进行赋值。

      但是这种方式对数组进行赋值,  实际上是一种浅层复制.

 也就是说,b实际上就是a,它们的内存地址值都是一样的, 当a发生改变,那么b也会跟着改变 。

为了真正意义上实现赋值,那么我们应该对数组进行深层复制。

深层复制后,无论a怎么改变,都不会影响到b。

具体代码如下

package core.com;

import java.util.Arrays;

public class DemoCopy {

 public static void main(String[] args) {

  //---------浅层复制--------

  int[] a;

  int[] b = {1,2,3,4};

  a=b;//浅层复制. 当b改变的时候,a会跟着改变

  System.out.println(Arrays.toString(a));//输出数组a,[1,2,3,4]

  b[0] = 5;//改变数组b , 数组a也会跟着改变

  System.out.println(Arrays.toString(a));//输出数组a,[5,2,3,4]

  System.out.println(a==b);//输出true  a就是b

  //-----------分割线--------

  //深层复制方法一:

  String[] c ;

  String[] d = {"a","b","c"};

  c = new String[d.length]; // 需要初始化数组长度

  for (int i = 0; i  d.length; i++) {//循环复制,

   c[i] = d[i];

  }

  d[0]="y";//改变数组d, 不会影响c

  System.out.println(Arrays.toString(c));//

  System.out.println(c==d);

  

  //-------------分割线---------

  //深层复制方法二:

  int[] ary1;

  int[] ary2 = {8,8,8};

  ary1 = new int[ary2.length];

  System.arraycopy(ary2, 0, ary1, 0, ary2.length);//调用函数进行深层复制

  ary2[0]=6;//改变数组ary2,并不会影响ary1

  System.out.println(Arrays.toString(ary1));

  System.out.println(ary1==ary2);

 }

}

控制台输出

[1, 2, 3, 4]

[5, 2, 3, 4]

true

[a, b, c]

false

[8, 8, 8]

false

java iterator赋值问题

能将一个iterator赋值给另一个,为什么不能呢?

public static void main(String[] args) {

ListString test = new ArrayListString();

test.add("aaa");

test.add("bbb");

test.add("ccc");

Iterator it = test.iterator();

Iterator it2 = it;

while(it2.hasNext()){

System.out.println(it2.next());

}

}

aaa

bbb

ccc

Java将信息赋值给传入的参数

定义数据类,全局属性即可

public class Tester{

    int weight;

    String name;

    public void setImage(){

        this.weight = getweight();

        this.name = getname(); 

    }

    // TODO

}

java赋值本身的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java赋值变量、java赋值本身的信息别忘了在本站进行查找喔。