关于Java的引用

原创 2004年04月20日 12:05:00
 

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

关于Java的引用

 

看了几篇介绍Java引用的文章,好象都没有用图形来说明,有些读者(包括刚开始的我)越看越糊涂。现发一篇数型结合的文章,希望大家多提意见。

 

  本篇文章用的程序:

public class example {

       private static void swap(StringBuffer s1, StringBuffer s2) {

              s1.append(“append”);

              StringBuffer t;

t = s1;

              s1 = s2;

              s2 = t;

       }

 

       public static void main(String[] args) {

              StringBuffer sb1 = new StringBuffer();

              StringBuffer sb2 = new StringBuffer();

              sb1.append(“sb1”);

              sb2.append(“sb2”);

              swap(sb1,sb2);

              System.out.println(sb1);

              System.out.println(sb2);

       }

}

 

输出为:

sb1append

sb2

 

sb1的值在方法swap()中改变了,说明传递的参数是sb1的引用。那为什么sb1sb2没有交换呢?下面将用图形来解释。

 

1)见图1。还没调用方法swap()前的堆和栈,堆和栈之间的连线表示引用(或指向)

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />CSDN_Dev_Image_2004-4-201125540.png

                          1

 

2)调用方法swap(),但还没有执行方法swap()中的指令。见图2

CSDN_Dev_Image_2004-4-201125542.png

                          2

 

3)执行了s1.append(“ append”)StringBuffer t;后。见图3

CSDN_Dev_Image_2004-4-201125544.gif

                          3

 

4)执行了t = s1; 后。见图4

CSDN_Dev_Image_2004-4-201125546.gif

                          4

 

5)执行了s1 = s2 后。见图5

CSDN_Dev_Image_2004-4-201125548.gif

                           5

 

6)执行了s2 = t; 后。见图6

                          ;

CSDN_Dev_Image_2004-4-2011255410.gif

                           6

 

7)方法swap()调用完,回到方法main()后。见图7

CSDN_Dev_Image_2004-4-2011255412.gif

                           7

 

 

从上面可以看出方法交换的是s1s2,并没有交换sb1sb2.

java里面的"指针"——索引

一般学习编程语言都是从c语言开始,c语言里面有个gaim
  • qq525099302
  • qq525099302
  • 2014年05月02日 14:10
  • 142482

数据库索引的作用和优点缺点以及索引的11中用法

数据库索引的作用和优点缺点以及索引的11中用法
  • baidu_37107022
  • baidu_37107022
  • 2017年08月08日 21:12
  • 1072

Java中的new关键字和引用传参

先看看Java中如何使用new关键字创建一个对象的。
  • ten_sory
  • ten_sory
  • 2016年10月28日 23:37
  • 1199

MLDN魔乐JAVA_08字符串题目、引用传递.rar

  • 2012年08月08日 13:43
  • 15.54MB
  • 下载

Java 非标准标签库,可直接引用常量定义

  • 2015年03月17日 16:04
  • 102KB
  • 下载

java web推送引用包

  • 2017年11月14日 09:23
  • 98KB
  • 下载

Java引用变量传递诡异之处

  • 2017年04月17日 21:48
  • 31KB
  • 下载

Java的按值传递和按引用传递分析.rar

  • 2012年06月07日 22:42
  • 82KB
  • 下载

Java基础复习笔记02对象状态、引用种类、垃圾回收形式

  • 2013年04月24日 22:53
  • 55KB
  • 下载

SSDB-java引用jar包源码

  • 2015年03月05日 17:56
  • 6KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Java的引用
举报原因:
原因补充:

(最多只允许输入30个字)