淘先锋技术网

首页 1 2 3 4 5 6 7

在java中 变量之间是如何赋值的

一、基本类型数据赋值

实验1 :定义一个int 类型变量a = 3,并将a 赋值给int b,然后将a ,赋值为5,那么b 的值是3 还是5 呢?

int a = 3;

int b = a ;

a = 5 ;

System.out.println(" a = " + a+" b = "+b );

运行程序 ,打印结果为 :

a = 5 b =3

我们看到,b并没有随a的改变而改变。基本数据类型是值赋值。

二、String类型数据赋值

实验2:定义一个String类型变量s1 赋值为“a”,并将s1赋值给String s2 ;然后将s1赋值为“b”,那么s2的值是 “a”还是 “b”?

String s1 = "a" ;

String s2 = s1;

s1 = "b" ;

System.out.println("s1 = "+s1+" s2 = "+ s2);

运行程序 ,打印结果为 :

s1 = b s2 =a

我们看到,s2并没有随s1的改变而改变。

三、自定义数据类型赋值

实验3: 创建一个TUser u1 ,并将u1赋值给TUser u2 ,将 u1重新赋值 ,u2会随着u1改变而改变吗 ?

TUser u1 = new TUser();

u1.setId(1);

TUser u2 = u1 ;

u1 = new TUser();

u1.setId(2);

System.out.println("ui :"+u1 + "\t\n" +"u2 : "+ u2);

运行程序,打印结果为:

u1 :TUser(id=2)

u2 : TUser(id=1)

我们看到u2并没有随着u1的改变而改变。

如果我们不改变u1指向的地址,而是改变u1指向地址所对应的数据(即将 u1 = new TUser(); 注释掉)。那么u1,u2 打印的记过将都会是 TUser(id=2)

通过以上三个实验我们发现:

变量之间的赋值,可以说没有所谓的值赋值和地址赋值。

简而言之,将一个变量a赋值给另一个变量b,是将这个变量a的值,拷贝一份给变量b(如果a是引用类型,就拷贝引用,如果是基本类型,就拷贝原始值)

java 循环对变量赋值

你好!你提的问题只能用JDK5.0才能实现!或者用数组或者集合的方式可以实现!public static void main(String[] args) { String[] b=new String[9];

String value="035814265";

for(int i=0;ivalue.length();i++){

b[i]=value.substring(i, i+1);

System.out.println(b[i]);

}

}

java 字符串变量赋值例如 String a="abc"; String b; b=a; b="

String a = "abc";  // 定义了一个 "abc" 字符串 ,a 指向 这个字符串

String b;

b = a;             // 使b也指向 a现在指向的那个字符串("abc")

b = "abcd";        // 定义了一个"abcd" 字符串,b 指向 这个新的字符串

在内存中大致的示意图如下:

所以最后 a =“abc”,b=“abcd”

java中字符串是一个较为特殊的存在,如果感兴趣可以找资料详细了解

Java中字符串内存位置浅析

触摸java常量池

JAVA中静态变量如何动态赋值?

Java赋值:

1、赋初值:定义变量的同时赋值

例如: int a = 5;

2、先定义后赋值

例如:

  int a;

   a = 5+5;

这两种都是可以的,你选择的是第二种,先定义后赋值。

你在val类中创建Demo类的实例,只是获得了t1的初值,而给t1赋值的部分放在了main()方法里,方法需要调用才能执行的(构造方法除外),因为你没有调用t1的赋值方法main(),所以t1未赋值,int 默认值为0 ,所以打印的结果是0;

你要在Val类中实例化后调用main()方法,

Demo demo = new Demo();

demo.main(args);

这样就t1就会被赋值了,不过java开发中不建议调用main()这种方式,

建议你单独给t1变量加个赋值方法或者构造方法

例如:

package test20210104;

public class Demo {

static int t1;

public void setT1(int t2){

t1 = t2+5;

}

}

调用的时候给t1赋值

package test20210104;

public class Val {

public static void main(String[] args) {

Demo demo = new Demo();

demo.setT1(1325);

System.out.println(demo.t1);

}

}