java变量赋值是什么(在java中 变量之间是如何赋值的)
各位老铁们,大家好,今天由我来为大家分享java变量赋值是什么,以及在java中 变量之间是如何赋值的的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
在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中 定义变量的作用是什么
1、在系统编译阶段,更具变量类型,给变量分配存储空间,用于存放数据,即存值。
2、在系统使用数据时,便于从变量的存储空间中获取数据,即取值。
3、确定变量的使用范围,即作用域。
定义和使用变量时,通常要把变量名定义为容易使用阅读和能够描述所含数据用处的名称,而不要使用一些难懂的缩写如A或B2等。例如:假定正在为水果铺编一个销售苹果的软件。我们需要两个变量来存储苹果的价格和销量。
此时,可以定义两个名为Apple_Price和Apple_Sold的变量。每次运行程序时,用户就这两个变量提供具体值,这样看起来就非常直观。具体方法是:通过用一个或多个单词组成有意义的变量名来使变量意义明确。例如,变量名SalesTaxRate就比Tax或Rate的意义明确得多。
扩展资料:
变量在使用前,必须在代码中进行声明,即创建该变量。在使用变量之前,大多数语言通常首先需要声明变量。就是说,必须事先告诉编译器在程序中使用了哪些变量,及这些变量的数据类型以及变量的长度。
这是因为在编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,这样可以优化程序的执行。声明变量有两种方式分别是隐式声明、显式声明。
请问Java中对象变量的定义是什么
你好,对象变量的定义,其实就是变量的声明。
java中使用每个变量前都必须先声明该变量,声明的语法格式:[变量类型] [变量名];
比如声明一个字符串类型的变量:String test;
声明一个Object类型的变量:Object obj;
变量名是自己任意取的,不过必须符合名称规则,变量类型可以是java自带类型,也可以是自定义的类型。
在声明以后才能使用变量,为变量赋值为做其他操作。
如何实现Java 字符串变量间的赋值
可以用new一个字符串,字符串本身就比较特殊,根据创建方式不同,占用的内存区域也不同。
如果用String str= new String("acb");那么就会再堆内存中分配一个空间。如果按你上面那种赋值,那么当a="afdf"时候,就会栈中找值等于"dfdf"的字符串,如果找到了,就将a的引用指向它,如果没有找到就开通新的内存,让后a指向它,执行到b=a;时同上,当然这个时候栈中必然有"dfdf"所以不会开辟新的内存空间,而是将b的引用直接指向"dfdf"所占的内存地址。
栈内存中的值可以共享,而堆内存不同,因为堆内存是在编译的时候才会分配的,属于动态的,因为事先也不知道,它会占用多大内存,所以不好分配。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!