「java地址赋值」java对象赋值是地址吗
本篇文章给大家谈谈java地址赋值,以及java对象赋值是地址吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java 在引用类型赋值的时候怎么能不给地址?直接赋值呢?
- 2、java中 引用 和 赋值 有哪些区别?
- 3、在java中 变量之间是如何赋值的
- 4、如何通过JNI将java中的对象的地址赋值给c++指针变量
- 5、java 如何给k赋值23.56
java 在引用类型赋值的时候怎么能不给地址?直接赋值呢?
Java中的引用类型类似于指针,基本类型可以直接赋值,而引用类型是将引用指向一块内存。比如:
Person p = new Person();
我们都知道在Java中new的东西会在内存中开辟一块内存,左边是指向这块内存的引用。我理解中你说的直接赋值应该是类似于:
int i = 1;
double b = 2;
boolean a = false;
这种是因为他们是基本类型,不算是一个对象。曾经在一本书上看到过,如果Java直接舍弃这些基本类型,可能会是一门更加纯粹的OOP语言。
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是引用类型,就拷贝引用,如果是基本类型,就拷贝原始值)
如何通过JNI将java中的对象的地址赋值给c++指针变量
jni编程里, c端 只能操作部分数据类型. 比如
一般类型.int,char,float
数组类型, 比如 int数组, float 数组.
Buffer类型,比如 intbuffer
String
而你希望的在c里 操作java类...那趁早别想了.人家就没这样的设计.
java 如何给k赋值23.56
java中的赋值使用符号“=”,k=23.56。按照java编程思想的解释:它的意思是“取等号右边的值,把它复制给左边”。当然左边必须是一个明确的,已命名的变量。
基本类型:
int a=2;
int b=3;
a=b; //把b的值赋值给a
System.out.println("a="+a); //结果a=3
a=4;
System.out.println("a="+a); //结果a=4
System.out.println("b="+b); //结果b=3,对a的操作不会影响b的值
引用类型:
class Person{
int age;
}
public class Assignment{
public static void main(String[] args){
Person p1=new Person();
p1.age=20;
Person p2=new Person();
p2.age=30;
p1=p2;//将p2存储的Person对象内存地址赋值给p1,此时p1和p2变量存储的是相同的内存地址,指向同一对象
p1.age=40;
System.out.println(p2.age);//结果40;说明修改p1的值影响p2
}
}
关于java地址赋值和java对象赋值是地址吗的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-17,除非注明,否则均为
原创文章,转载请注明出处。