理解Java中的赋值与引用

编程入门 行业动态 更新时间:2024-10-09 16:23:14

理解Java中的<a href=https://www.elefans.com/category/jswz/34/1769111.html style=赋值与引用"/>

理解Java中的赋值与引用

Java对象和引用的关系可以说是互相关联,却又彼此独立。彼此独立主要表现在:引用是可以改变的,它可以指向别的对象。

从存储空间上来说,对象和引用也是独立的,它们存储在不同的地方,对象一般存储在堆中,而引用存储在速度更快的堆栈中。

引用可以指向不同的对象,对象也可以被多个引用操纵。如下面面说的date和date1都指向了同一个对象。既然两个引用指向同一个对象,那么不管使用哪个引用操纵对象,对象的内容都发生改变,并且只有一份,通过date和date1得到的内容自然也一样。

 

Date date1 = new Date();    引用    这个有点向c语言的指针

Date date  对象

 date =date1;  //此时便是date与date1会同时改变   、

在传参中也是如此  但是在方法中出现这种情况

public class Type {
    public int a;
    
    public void test(Date d) {
        d = new Date(1990);
        System.out.println(d);
    }
    
    public void test1(Date d) {
        d.setYear(2000);
        System.out.println(d);
    }
     public static void main(String[] args) {
        Type t = new Type();
        Type t2 = new Type();
        t.a=t2.a;  //
        Date date1 = new Date();
        Date date;
        date =date1;  //此时便是date与date1会同时改变    
        t.test(date);
    
        t.test1(date);
        System.out.println(date);
        
            
        
    }
}
 

结果:

Thu Jan 01 08:00:01 CST 1970
Sun Aug 19 14:59:09 CST 3900
Sun Aug 19 14:59:09 CST 3900


所以test中已经不是原来那个date了 ,已经有了新的引用  而后面test1中没有是原来赋值的date 还是会同时改变

更多推荐

理解Java中的赋值与引用

本文发布于:2024-02-07 06:35:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1753863.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:赋值   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!